From 42ee130952b4c9010bf69b88a78f188aba6d33bc Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Wed, 23 May 2018 21:29:14 -0700 Subject: [PATCH 001/371] add v2 schema to setup.py, remove id field from schema --- openapi_spec_validator/resources/schemas/v2.0/schema.json | 1 - setup.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/resources/schemas/v2.0/schema.json b/openapi_spec_validator/resources/schemas/v2.0/schema.json index ebe10ed..3aa08a1 100644 --- a/openapi_spec_validator/resources/schemas/v2.0/schema.json +++ b/openapi_spec_validator/resources/schemas/v2.0/schema.json @@ -1,6 +1,5 @@ { "title": "A JSON Schema for Swagger 2.0 API.", - "id": "http://swagger.io/v2/schema.json#", "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "required": [ diff --git a/setup.py b/setup.py index 05fe85b..89cdafb 100644 --- a/setup.py +++ b/setup.py @@ -58,6 +58,7 @@ def run_tests(self): package_data={ 'openapi_spec_validator': [ 'openapi_spec_validator/resources/schemas/v3.0.0/*', + 'openapi_spec_validator/resources/schemas/v2.0/*', ], }, include_package_data=True, From 2d213ff578342762f0d86576bbe5f2e69047da76 Mon Sep 17 00:00:00 2001 From: Jens Finkhaeuser Date: Thu, 24 May 2018 14:58:38 +0200 Subject: [PATCH 002/371] According to https://swagger.io/specification/#fixed-fields-51 towards the end of the section, a Parameter Object MUST contain either a 'schema' property or a 'content' property (but not both). --- .../resources/schemas/v3.0.0/schema.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/openapi_spec_validator/resources/schemas/v3.0.0/schema.json b/openapi_spec_validator/resources/schemas/v3.0.0/schema.json index b199631..11b7e0d 100644 --- a/openapi_spec_validator/resources/schemas/v3.0.0/schema.json +++ b/openapi_spec_validator/resources/schemas/v3.0.0/schema.json @@ -433,7 +433,15 @@ "content": { "$ref": "#/definitions/mediaTypes" } - } + }, + "oneOf": [ + { + "required": [ "schema" ] + }, + { + "required": [ "content" ] + } + ] }, "requestBody": { "type": "object", @@ -1250,4 +1258,4 @@ ] } } - } \ No newline at end of file + } From fec63944c7fc9416c06671137910ff96f49dc243 Mon Sep 17 00:00:00 2001 From: Jens Finkhaeuser Date: Thu, 24 May 2018 15:17:13 +0200 Subject: [PATCH 003/371] Fix tests to deal with the requirement that parameter objects must contain one of 'content' or 'schema'. --- tests/integration/test_validators.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index a1e5acd..1eee91b 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -61,10 +61,16 @@ def test_same_parameters_names(self, validator): { 'name': 'param1', 'in': 'query', + 'schema': { + 'type': 'integer', + }, }, { 'name': 'param1', 'in': 'path', + 'schema': { + 'type': 'integer', + }, }, ], }, @@ -120,6 +126,9 @@ def test_undocumented_parameter(self, validator): { 'name': 'param1', 'in': 'path', + 'schema': { + 'type': 'integer', + }, }, ], }, From 1c25ece5bbbba31094e16255fc38727e92182eac Mon Sep 17 00:00:00 2001 From: Jens Finkhaeuser Date: Thu, 24 May 2018 15:25:28 +0200 Subject: [PATCH 004/371] Fix #25 for Header Objects --- .../resources/schemas/v3.0.0/schema.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openapi_spec_validator/resources/schemas/v3.0.0/schema.json b/openapi_spec_validator/resources/schemas/v3.0.0/schema.json index 11b7e0d..7b414d8 100644 --- a/openapi_spec_validator/resources/schemas/v3.0.0/schema.json +++ b/openapi_spec_validator/resources/schemas/v3.0.0/schema.json @@ -673,7 +673,15 @@ "content": { "$ref": "#/definitions/mediaTypes" } - } + }, + "oneOf": [ + { + "required": [ "schema" ] + }, + { + "required": [ "content" ] + } + ] }, "tag": { "type": "object", From 61b6839bcde37f513f523163670f9748f379e3f3 Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Mon, 4 Jun 2018 21:28:58 -0700 Subject: [PATCH 005/371] drop python3.3 support (EOL) --- .travis.yml | 4 +++- setup.py | 1 - tox.ini | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 39ac693..ff3a1f9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,10 +10,12 @@ matrix: - python: nightly - python: pypy3 allow_failures: - - python: 3.2 + - python: 3.2 # EOL + - python: 3.3 # EOL - python: nightly before_install: - if [[ $TRAVIS_PYTHON_VERSION == '3.2' ]]; then pip install 'coverage<4.0.0'; fi +- if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]]; then pip install 'pyflakes<2.0.0'; fi - pip install codecov install: - pip install -r requirements.txt diff --git a/setup.py b/setup.py index 89cdafb..576efc6 100644 --- a/setup.py +++ b/setup.py @@ -86,7 +86,6 @@ def run_tests(self): "Intended Audience :: Developers", "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: OS Independent", - "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", diff --git a/tox.ini b/tox.ini index 1ace75b..953c6a9 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {py33,py34,py35,py36}-{default,simplejson} +envlist = {py34,py35,py36}-{default,simplejson} [testenv] deps = From 70f5731d80da88405df6945fcdd0cb4ee0612698 Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Wed, 16 May 2018 00:00:48 -0700 Subject: [PATCH 006/371] syntax changes for python2.7 compatability --- .gitignore | 3 ++ .travis.yml | 1 + openapi_spec_validator/decorators.py | 6 ++-- openapi_spec_validator/validators.py | 42 +++++++++++++++++----------- setup.py | 1 + tox.ini | 2 +- 6 files changed, 36 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 7bbc71c..f3d03de 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,6 @@ ENV/ # mypy .mypy_cache/ + +# pytest +.pytest_cache/ diff --git a/.travis.yml b/.travis.yml index ff3a1f9..34b9de6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: python sudo: false matrix: include: + - python: 2.7 - python: 3.2 - python: 3.3 - python: 3.4 diff --git a/openapi_spec_validator/decorators.py b/openapi_spec_validator/decorators.py index 353ec23..7e31c55 100644 --- a/openapi_spec_validator/decorators.py +++ b/openapi_spec_validator/decorators.py @@ -18,7 +18,8 @@ def __init__(self, instance_resolver): def __call__(self, func): def wrapped(validator, schema_element, instance, schema): if not isinstance(instance, dict) or '$ref' not in instance: - yield from func(validator, schema_element, instance, schema) + for res in func(validator, schema_element, instance, schema): + yield res return ref = instance['$ref'] @@ -30,7 +31,8 @@ def wrapped(validator, schema_element, instance, schema): self._attach_scope(instance) with self.visiting.visit(ref): with self.instance_resolver.resolving(ref) as target: - yield from func(validator, schema_element, target, schema) + for res in func(validator, schema_element, target, schema): + yield res return wrapped diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index 3733ced..cdd00cc 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -39,21 +39,24 @@ def __init__(self, validator_factory, resolver_handlers): self.resolver_handlers = resolver_handlers def validate(self, spec, spec_url=''): - for error in self.iter_errors(spec, spec_url=spec_url): - raise error + for err in self.iter_errors(spec, spec_url=spec_url): + raise err def iter_errors(self, spec, spec_url=''): spec_resolver = self._get_resolver(spec_url, spec) dereferencer = self._get_dereferencer(spec_resolver) validator = self._get_validator(spec_resolver) - yield from validator.iter_errors(spec) + for err in validator.iter_errors(spec): + yield err paths = spec.get('paths', {}) - yield from self._iter_paths_errors(paths, dereferencer) + for err in self._iter_paths_errors(paths, dereferencer): + yield err components = spec.get('components', {}) - yield from self._iter_components_errors(components, dereferencer) + for err in self._iter_components_errors(components, dereferencer): + yield err def _get_resolver(self, base_uri, referrer): return RefResolver( @@ -81,7 +84,8 @@ def iter_errors(self, components): components_deref = self.dereferencer.dereference(components) schemas = components_deref.get('schemas', {}) - yield from self._iter_schemas_errors(schemas) + for err in self._iter_schemas_errors(schemas): + yield err def _iter_schemas_errors(self, schemas): return SchemasValidator(self.dereferencer).iter_errors(schemas) @@ -95,7 +99,8 @@ def __init__(self, dereferencer): def iter_errors(self, schemas): schemas_deref = self.dereferencer.dereference(schemas) for name, schema in iteritems(schemas_deref): - yield from self._iter_schem_errors(schema) + for err in self._iter_schem_errors(schema): + yield err def _iter_schem_errors(self, schema): return SchemaValidator(self.dereferencer).iter_errors(schema) @@ -111,7 +116,8 @@ def iter_errors(self, schema): if 'allOf' in schema_deref: for inner_schema in schema_deref['allOf']: - yield from self.iter_errors(inner_schema) + for err in self.iter_errors(inner_schema): + yield err required = schema_deref.get('required', []) properties = schema_deref.get('properties', {}).keys() @@ -132,7 +138,8 @@ def __init__(self, dereferencer): def iter_errors(self, paths): paths_deref = self.dereferencer.dereference(paths) for url, path_item in iteritems(paths_deref): - yield from self._iter_path_errors(url, path_item) + for err in self._iter_path_errors(url, path_item): + yield err def _iter_path_errors(self, url, path_item): return PathValidator(self.dereferencer).iter_errors(url, path_item) @@ -146,7 +153,8 @@ def __init__(self, dereferencer): def iter_errors(self, url, path_item): path_item_deref = self.dereferencer.dereference(path_item) - yield from self._iter_path_item_errors(url, path_item_deref) + for err in self._iter_path_item_errors(url, path_item_deref): + yield err def _iter_path_item_errors(self, url, path_item): return PathItemValidator(self.dereferencer).iter_errors(url, path_item) @@ -165,14 +173,16 @@ def iter_errors(self, url, path_item): path_item_deref = self.dereferencer.dereference(path_item) parameters = path_item_deref.get('parameters', []) - yield from self._iter_parameters_errors(parameters) + for err in self._iter_parameters_errors(parameters): + yield err for field_name, operation in iteritems(path_item): if field_name not in self.OPERATIONS: continue - yield from self._iter_operation_errors( - url, field_name, operation, parameters) + for err in self._iter_operation_errors( + url, field_name, operation, parameters): + yield err def _iter_operation_errors(self, url, name, operation, path_parameters): return OperationValidator(self.dereferencer).iter_errors( @@ -192,7 +202,8 @@ def iter_errors(self, url, name, operation, path_parameters=None): operation_deref = self.dereferencer.dereference(operation) parameters = operation_deref.get('parameters', []) - yield from self._iter_parameters_errors(parameters) + for err in self._iter_parameters_errors(parameters): + yield err all_params = list(set( list(self._get_path_param_names(path_parameters)) + @@ -205,8 +216,7 @@ def iter_errors(self, url, name, operation, path_parameters=None): "Path parameter '{0}' for '{1}' operation in '{2}' " "was not resolved".format(path, name, url) ) - - return [] + return def _get_path_param_names(self, params): for param in params: diff --git a/setup.py b/setup.py index 576efc6..29ba778 100644 --- a/setup.py +++ b/setup.py @@ -86,6 +86,7 @@ def run_tests(self): "Intended Audience :: Developers", "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: OS Independent", + "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", diff --git a/tox.ini b/tox.ini index 953c6a9..53559e4 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {py34,py35,py36}-{default,simplejson} +envlist = {py27,py34,py35,py36}-{default,simplejson} [testenv] deps = From 89f5452a2ec061bd004588e2586bfb45815b5fcd Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Tue, 5 Jun 2018 12:01:07 +0100 Subject: [PATCH 007/371] Version 0.2.1 --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 1e139c1..c123bc7 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciąg' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.0' +__version__ = '0.2.1' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From eb82d7432ca9f1ddf7b3f0fbbe35a488b841f9da Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Tue, 19 Jun 2018 19:48:24 -0700 Subject: [PATCH 008/371] disable required properties checks in allOf blocks --- openapi_spec_validator/validators.py | 9 +++++--- tests/integration/test_validators.py | 34 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index cdd00cc..004ac36 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -111,18 +111,21 @@ class SchemaValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer - def iter_errors(self, schema): + def iter_errors(self, schema, require_properties=True): schema_deref = self.dereferencer.dereference(schema) if 'allOf' in schema_deref: for inner_schema in schema_deref['allOf']: - for err in self.iter_errors(inner_schema): + for err in self.iter_errors( + inner_schema, + require_properties=False + ): yield err required = schema_deref.get('required', []) properties = schema_deref.get('properties', {}).keys() extra_properties = list(set(required) - set(properties)) - if extra_properties: + if extra_properties and require_properties: yield ExtraParametersError( "Required list has not defined properties: {0}".format( extra_properties diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 1eee91b..4858fcc 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -82,6 +82,40 @@ def test_same_parameters_names(self, validator): errors_list = list(errors) assert errors_list == [] + def test_allow_allof_required_no_properties(self, validator): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + 'components': { + 'schemas': { + 'Credit': { + 'type': 'object', + 'properties': { + 'clientId': {'type': 'string'}, + } + }, + 'CreditCreate': { + 'allOf': [ + { + '$ref': '#/components/schemas/Credit' + }, + { + 'required': ['clientId'] + } + ] + } + }, + }, + } + + errors = validator.iter_errors(spec) + errors_list = list(errors) + assert errors_list == [] + def test_extra_parameters_in_required(self, validator): spec = { 'openapi': '3.0.0', From fb7e879d69b98dbdcc6b8ed0c6c6bbfc3474d07b Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 20 Jun 2018 19:53:42 +0100 Subject: [PATCH 009/371] Allow integer response code --- openapi_spec_validator/constructors.py | 17 +++++++++++++++++ openapi_spec_validator/handlers.py | 13 ++++++++++--- openapi_spec_validator/loaders.py | 19 +++++++++++++++++++ openapi_spec_validator/schemas.py | 8 +++++--- tests/integration/conftest.py | 4 ++-- tests/integration/data/v2.0/petstore.yaml | 6 +++--- tests/integration/data/v3.0/petstore.yaml | 2 +- 7 files changed, 57 insertions(+), 12 deletions(-) create mode 100644 openapi_spec_validator/constructors.py create mode 100644 openapi_spec_validator/loaders.py diff --git a/openapi_spec_validator/constructors.py b/openapi_spec_validator/constructors.py new file mode 100644 index 0000000..f47e264 --- /dev/null +++ b/openapi_spec_validator/constructors.py @@ -0,0 +1,17 @@ +from yaml.constructor import SafeConstructor + + +class ExtendedSafeConstructor(SafeConstructor): + + def construct_mapping(self, node, deep=False): + """While yaml supports integer keys, these are not valid in + json, and will break jsonschema. This method coerces all keys + to strings. + """ + mapping = super(ExtendedSafeConstructor, self).construct_mapping( + node, deep) + + return { + (str(key) if isinstance(key, int) else key): mapping[key] + for key in mapping + } diff --git a/openapi_spec_validator/handlers.py b/openapi_spec_validator/handlers.py index a0aaf28..f4db845 100644 --- a/openapi_spec_validator/handlers.py +++ b/openapi_spec_validator/handlers.py @@ -3,17 +3,24 @@ from six.moves.urllib.parse import urlparse from six.moves.urllib.request import urlopen -from yaml import safe_load +from yaml import load + +from openapi_spec_validator.loaders import ExtendedSafeLoader class UrlHandler: """OpenAPI spec validator URL scheme handler.""" - def __init__(self, *allowed_schemes): + def __init__(self, *allowed_schemes, **options): self.allowed_schemes = allowed_schemes + self.options = options + + @property + def loader(self): + return self.options.get('loader', ExtendedSafeLoader) def __call__(self, url, timeout=1): assert urlparse(url).scheme in self.allowed_schemes with contextlib.closing(urlopen(url, timeout=timeout)) as fh: - return safe_load(fh) + return load(fh, self.loader) diff --git a/openapi_spec_validator/loaders.py b/openapi_spec_validator/loaders.py new file mode 100644 index 0000000..3786ce0 --- /dev/null +++ b/openapi_spec_validator/loaders.py @@ -0,0 +1,19 @@ +from yaml.composer import Composer +from yaml.parser import Parser +from yaml.reader import Reader +from yaml.resolver import Resolver +from yaml.scanner import Scanner + +from openapi_spec_validator.constructors import ExtendedSafeConstructor + + +class ExtendedSafeLoader( + Reader, Scanner, Parser, Composer, ExtendedSafeConstructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + ExtendedSafeConstructor.__init__(self) + Resolver.__init__(self) diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas.py index 470d88d..c2857c0 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas.py @@ -3,7 +3,9 @@ from pkg_resources import resource_filename from six.moves.urllib import parse, request -from yaml import safe_load +from yaml import load + +from openapi_spec_validator.loaders import ExtendedSafeLoader def get_openapi_schema(version): @@ -15,7 +17,7 @@ def get_openapi_schema(version): return schema, schema_url -def read_yaml_file(path): +def read_yaml_file(path, loader=ExtendedSafeLoader): """Open a file, read it and return its contents.""" with open(path) as fh: - return safe_load(fh) + return load(fh, loader) diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index da04bc9..aa327b9 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -6,6 +6,7 @@ from yaml import safe_load from openapi_spec_validator import openapi_v3_spec_validator +from openapi_spec_validator.schemas import read_yaml_file def spec_url(spec_file, schema='file'): @@ -17,8 +18,7 @@ def spec_url(spec_file, schema='file'): def spec_from_file(spec_file): directory = path.abspath(path.dirname(__file__)) path_full = path.join(directory, spec_file) - with open(path_full) as fh: - return safe_load(fh) + return read_yaml_file(path_full) def spec_from_url(spec_url): diff --git a/tests/integration/data/v2.0/petstore.yaml b/tests/integration/data/v2.0/petstore.yaml index 4003794..46657ef 100644 --- a/tests/integration/data/v2.0/petstore.yaml +++ b/tests/integration/data/v2.0/petstore.yaml @@ -27,7 +27,7 @@ paths: type: integer format: int32 responses: - "200": + 200: description: A paged array of pets headers: x-next: @@ -45,7 +45,7 @@ paths: tags: - pets responses: - "201": + '201': description: Null response default: description: unexpected error @@ -64,7 +64,7 @@ paths: description: The id of the pet to retrieve type: string responses: - "200": + '200': description: Expected response to a valid request schema: $ref: '#/definitions/Pets' diff --git a/tests/integration/data/v3.0/petstore.yaml b/tests/integration/data/v3.0/petstore.yaml index 88099f1..51c6273 100644 --- a/tests/integration/data/v3.0/petstore.yaml +++ b/tests/integration/data/v3.0/petstore.yaml @@ -22,7 +22,7 @@ paths: type: integer format: int32 responses: - '200': + 200: description: An paged array of pets headers: x-next: From 6dda545a05cfc223b728cf9dba036a85f54319af Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Thu, 21 Jun 2018 11:51:30 +0100 Subject: [PATCH 010/371] Version 0.2.2 --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index c123bc7..2fe1bac 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciąg' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.1' +__version__ = '0.2.2' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From e5ea807cfffc589ee83a8853a7b8744a06199fa1 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Tue, 10 Jul 2018 14:59:10 +0100 Subject: [PATCH 011/371] pyaml dependecy drop off --- requirements.txt | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 44a0724..eac89a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ jsonschema==2.6.0 -pyaml==17.12.1 +PyYAML==3.13 six==1.11.0 diff --git a/setup.py b/setup.py index 29ba778..78e5865 100644 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ def run_tests(self): }, install_requires=[ "jsonschema", - "pyaml", + "PyYAML", "six", ], tests_require=[ From 2d7a32c36fbfafcb1c04bc4eb52ac1fbc895b2e9 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Thu, 12 Jul 2018 12:30:02 +0100 Subject: [PATCH 012/371] Validate default values --- openapi_spec_validator/validators.py | 40 +++++++++++++++++- tests/integration/test_validators.py | 62 ++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 2 deletions(-) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index 004ac36..d597dc7 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -7,6 +7,7 @@ from openapi_spec_validator.exceptions import ( ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, ) +from openapi_spec_validator.factories import Draft4ExtendedValidatorFactory from openapi_spec_validator.managers import ResolverManager log = logging.getLogger(__name__) @@ -99,10 +100,10 @@ def __init__(self, dereferencer): def iter_errors(self, schemas): schemas_deref = self.dereferencer.dereference(schemas) for name, schema in iteritems(schemas_deref): - for err in self._iter_schem_errors(schema): + for err in self._iter_schema_errors(schema): yield err - def _iter_schem_errors(self, schema): + def _iter_schema_errors(self, schema): return SchemaValidator(self.dereferencer).iter_errors(schema) @@ -132,6 +133,19 @@ def iter_errors(self, schema, require_properties=True): ) ) + if 'default' in schema_deref: + default = schema_deref['default'] + nullable = schema_deref.get('nullable', False) + if default is not None or nullable is not True: + for err in self._iter_value_errors(schema_deref, default): + yield err + + def _iter_value_errors(self, schema, value): + resolver = RefResolver.from_schema(schema) + validator = Draft4ExtendedValidatorFactory.from_resolver(resolver) + for err in validator(schema, resolver=resolver).iter_errors(value): + yield err + class PathsValidator(object): @@ -245,9 +259,31 @@ def iter_errors(self, parameters): seen = set() for parameter in parameters: parameter_deref = self.dereferencer.dereference(parameter) + for err in self._iter_parameter_errors(parameter_deref): + yield err + key = (parameter_deref['name'], parameter_deref['in']) if key in seen: yield ParameterDuplicateError( "Duplicate parameter `{0}`".format(parameter_deref['name']) ) seen.add(key) + + def _iter_parameter_errors(self, parameter): + return ParameterValidator(self.dereferencer).iter_errors(parameter) + + +class ParameterValidator(object): + + def __init__(self, dereferencer): + self.dereferencer = dereferencer + + def iter_errors(self, parameter): + if 'schema' in parameter: + schema = parameter['schema'] + schema_deref = self.dereferencer.dereference(schema) + for err in self._iter_schema_errors(schema_deref): + yield err + + def _iter_schema_errors(self, schema): + return SchemaValidator(self.dereferencer).iter_errors(schema) diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 4858fcc..04a4035 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -177,3 +177,65 @@ def test_undocumented_parameter(self, validator): "Path parameter 'param2' for 'get' operation in " "'/test/{param1}/{param2}' was not resolved" ) + + def test_default_value_wrong_type(self, validator): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + 'components': { + 'schemas': { + 'test': { + 'type': 'integer', + 'default': 'invaldtype', + }, + }, + }, + } + + errors = validator.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == ValidationError + assert errors_list[0].message == ( + "'invaldtype' is not of type 'integer'" + ) + + def test_parameter_default_value_wrong_type(self, validator): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/{param1}': { + 'get': { + 'responses': {}, + }, + 'parameters': [ + { + 'name': 'param1', + 'in': 'path', + 'schema': { + 'type': 'integer', + 'default': 'invaldtype', + }, + }, + ], + }, + }, + } + + errors = validator.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == ValidationError + assert errors_list[0].message == ( + "'invaldtype' is not of type 'integer'" + ) From 764214660c3b0bc5dd7453cf976d42ebe729625f Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 23 Jul 2018 19:46:31 +0100 Subject: [PATCH 013/371] Version 0.2.3 --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 2fe1bac..372cf1d 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciąg' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.2' +__version__ = '0.2.3' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From 4f25162ed268c7c3d3d2db3da59dca05a9ea8161 Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Wed, 25 Jul 2018 18:43:41 -0700 Subject: [PATCH 014/371] validate parameter defaults in swagger 2.0 specs --- openapi_spec_validator/validators.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index d597dc7..02592f2 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -285,5 +285,18 @@ def iter_errors(self, parameter): for err in self._iter_schema_errors(schema_deref): yield err + if 'default' in parameter: + # only possible in swagger 2.0 + default = parameter['default'] + if default is not None: + for err in self._iter_value_errors(parameter, default): + yield err + + def _iter_value_errors(self, schema, value): + resolver = RefResolver.from_schema(schema) + validator = Draft4ExtendedValidatorFactory.from_resolver(resolver) + for err in validator(schema, resolver=resolver).iter_errors(value): + yield err + def _iter_schema_errors(self, schema): return SchemaValidator(self.dereferencer).iter_errors(schema) From 58e06a371fcc59ce9faa99857997ca6cfab0451d Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Wed, 25 Jul 2018 19:01:13 -0700 Subject: [PATCH 015/371] wrap jsonschema exceptions with OpenAPIValidationError --- openapi_spec_validator/validators.py | 5 +++-- tests/integration/test_shortcuts.py | 11 +++++------ tests/integration/test_validate.py | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index d597dc7..e2d1a9d 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -2,10 +2,11 @@ import string from jsonschema.validators import RefResolver -from six import iteritems +from six import iteritems, raise_from from openapi_spec_validator.exceptions import ( ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, + OpenAPIValidationError ) from openapi_spec_validator.factories import Draft4ExtendedValidatorFactory from openapi_spec_validator.managers import ResolverManager @@ -41,7 +42,7 @@ def __init__(self, validator_factory, resolver_handlers): def validate(self, spec, spec_url=''): for err in self.iter_errors(spec, spec_url=spec_url): - raise err + raise_from(OpenAPIValidationError(repr(err)), err) def iter_errors(self, spec, spec_url=''): spec_resolver = self._get_resolver(spec_url, spec) diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index ca0159e..4682fea 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -1,9 +1,8 @@ import pytest -from jsonschema.exceptions import ValidationError - from openapi_spec_validator import validate_spec, validate_spec_url from openapi_spec_validator import validate_v2_spec, validate_v2_spec_url +from openapi_spec_validator.exceptions import OpenAPIValidationError class BaseTestValidValidteV2Spec: @@ -15,7 +14,7 @@ def test_valid(self, spec): class BaseTestFaliedValidateV2Spec: def test_failed(self, spec): - with pytest.raises(ValidationError): + with pytest.raises(OpenAPIValidationError): validate_v2_spec(spec) @@ -28,7 +27,7 @@ def test_valid(self, spec): class BaseTestFaliedValidateSpec: def test_failed(self, spec): - with pytest.raises(ValidationError): + with pytest.raises(OpenAPIValidationError): validate_spec(spec) @@ -41,7 +40,7 @@ def test_valid(self, spec_url): class BaseTestFaliedValidateV2SpecUrl: def test_failed(self, spec_url): - with pytest.raises(ValidationError): + with pytest.raises(OpenAPIValidationError): validate_v2_spec_url(spec_url) @@ -54,7 +53,7 @@ def test_valid(self, spec_url): class BaseTestFaliedValidateSpecUrl: def test_failed(self, spec_url): - with pytest.raises(ValidationError): + with pytest.raises(OpenAPIValidationError): validate_spec_url(spec_url) diff --git a/tests/integration/test_validate.py b/tests/integration/test_validate.py index 6d2f13f..9bb3e08 100644 --- a/tests/integration/test_validate.py +++ b/tests/integration/test_validate.py @@ -1,6 +1,6 @@ import pytest -from jsonschema.exceptions import ValidationError +from openapi_spec_validator.exceptions import OpenAPIValidationError class BaseTestValidOpeAPIv3Validator(object): @@ -20,7 +20,7 @@ def spec_url(self): return '' def test_failed(self, validator, spec, spec_url): - with pytest.raises(ValidationError): + with pytest.raises(OpenAPIValidationError): validator.validate(spec, spec_url=spec_url) From 7fd1a72d3ca11ba2dc8ff9ddac1838a6af39abc2 Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Wed, 25 Jul 2018 19:15:21 -0700 Subject: [PATCH 016/371] only wrap jsonschema ValidationErrors --- openapi_spec_validator/validators.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index e2d1a9d..bd325de 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -2,6 +2,7 @@ import string from jsonschema.validators import RefResolver +from jsonschema.exceptions import ValidationError from six import iteritems, raise_from from openapi_spec_validator.exceptions import ( @@ -42,7 +43,11 @@ def __init__(self, validator_factory, resolver_handlers): def validate(self, spec, spec_url=''): for err in self.iter_errors(spec, spec_url=spec_url): - raise_from(OpenAPIValidationError(repr(err)), err) + if isinstance(err, ValidationError): + # wrap jsonschema exceptions with library specific version + raise raise_from(OpenAPIValidationError.create_from(err), err) + else: + raise err def iter_errors(self, spec, spec_url=''): spec_resolver = self._get_resolver(spec_url, spec) From 499f38a7141e9c16dd4f5da5db25005c40b261ef Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Wed, 25 Jul 2018 19:54:31 -0700 Subject: [PATCH 017/371] add test for swagger2.0 parameter default --- tests/integration/conftest.py | 8 +++++- tests/integration/test_validators.py | 39 ++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index aa327b9..a83ced1 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -5,7 +5,8 @@ from six.moves.urllib.parse import urlunparse from yaml import safe_load -from openapi_spec_validator import openapi_v3_spec_validator +from openapi_spec_validator import (openapi_v3_spec_validator, + openapi_v2_spec_validator) from openapi_spec_validator.schemas import read_yaml_file @@ -43,3 +44,8 @@ def factory(): @pytest.fixture def validator(): return openapi_v3_spec_validator + + +@pytest.fixture +def swagger_validator(): + return openapi_v2_spec_validator diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 04a4035..6f6b53d 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -239,3 +239,42 @@ def test_parameter_default_value_wrong_type(self, validator): assert errors_list[0].message == ( "'invaldtype' is not of type 'integer'" ) + + def test_parameter_default_value_wrong_type_swagger(self, + swagger_validator): + spec = { + 'swagger': '2.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/': { + 'get': { + 'responses': { + '200': { + 'description': 'OK', + 'schema': {'type': 'object'}, + }, + }, + 'parameters': [ + { + 'name': 'param1', + 'in': 'query', + 'type': 'integer', + 'default': 'invaldtype', + }, + ], + }, + }, + }, + } + + errors = swagger_validator.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == ValidationError + assert errors_list[0].message == ( + "'invaldtype' is not of type 'integer'" + ) From aae4963e32cc2f605e0e1bbfffdb58b70cdf176a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 27 Jul 2018 22:30:55 +0100 Subject: [PATCH 018/371] ValidationErrorWrapper wrapper --- openapi_spec_validator/decorators.py | 19 +++++++++++++++++++ openapi_spec_validator/validators.py | 22 +++++++++++++++------- tests/integration/test_validators.py | 16 +++++++--------- 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/openapi_spec_validator/decorators.py b/openapi_spec_validator/decorators.py index 7e31c55..27eba96 100644 --- a/openapi_spec_validator/decorators.py +++ b/openapi_spec_validator/decorators.py @@ -1,4 +1,5 @@ """OpenAPI spec validator decorators module.""" +from functools import wraps import logging from openapi_spec_validator.managers import VisitingManager @@ -43,3 +44,21 @@ def _attach_scope(self, instance): return instance['x-scope'] = list(self.instance_resolver._scopes_stack) + + +class ValidationErrorWrapper(object): + + def __init__(self, error_class): + self.error_class = error_class + + def __call__(self, f): + @wraps(f) + def wrapper(*args, **kwds): + errors = f(*args, **kwds) + for err in errors: + if not isinstance(err, self.error_class): + # wrap other exceptions with library specific version + yield self.error_class.create_from(err) + else: + yield err + return wrapper diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index bd325de..d0838c8 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -2,18 +2,20 @@ import string from jsonschema.validators import RefResolver -from jsonschema.exceptions import ValidationError -from six import iteritems, raise_from +from six import iteritems from openapi_spec_validator.exceptions import ( ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError ) +from openapi_spec_validator.decorators import ValidationErrorWrapper from openapi_spec_validator.factories import Draft4ExtendedValidatorFactory from openapi_spec_validator.managers import ResolverManager log = logging.getLogger(__name__) +wraps_errors = ValidationErrorWrapper(OpenAPIValidationError) + def is_ref(spec): return isinstance(spec, dict) and '$ref' in spec @@ -43,12 +45,9 @@ def __init__(self, validator_factory, resolver_handlers): def validate(self, spec, spec_url=''): for err in self.iter_errors(spec, spec_url=spec_url): - if isinstance(err, ValidationError): - # wrap jsonschema exceptions with library specific version - raise raise_from(OpenAPIValidationError.create_from(err), err) - else: - raise err + raise err + @wraps_errors def iter_errors(self, spec, spec_url=''): spec_resolver = self._get_resolver(spec_url, spec) dereferencer = self._get_dereferencer(spec_resolver) @@ -87,6 +86,7 @@ class ComponentsValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, components): components_deref = self.dereferencer.dereference(components) @@ -103,6 +103,7 @@ class SchemasValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, schemas): schemas_deref = self.dereferencer.dereference(schemas) for name, schema in iteritems(schemas_deref): @@ -118,6 +119,7 @@ class SchemaValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, schema, require_properties=True): schema_deref = self.dereferencer.dereference(schema) @@ -158,6 +160,7 @@ class PathsValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, paths): paths_deref = self.dereferencer.dereference(paths) for url, path_item in iteritems(paths_deref): @@ -173,6 +176,7 @@ class PathValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, url, path_item): path_item_deref = self.dereferencer.dereference(path_item) @@ -192,6 +196,7 @@ class PathItemValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, url, path_item): path_item_deref = self.dereferencer.dereference(path_item) @@ -220,6 +225,7 @@ class OperationValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, url, name, operation, path_parameters=None): path_parameters = path_parameters or [] operation_deref = self.dereferencer.dereference(operation) @@ -261,6 +267,7 @@ class ParametersValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, parameters): seen = set() for parameter in parameters: @@ -284,6 +291,7 @@ class ParameterValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + @wraps_errors def iter_errors(self, parameter): if 'schema' in parameter: schema = parameter['schema'] diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 04a4035..cfa2a51 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -1,7 +1,5 @@ -from jsonschema.exceptions import ValidationError - from openapi_spec_validator.exceptions import ( - ExtraParametersError, UnresolvableParameterError, + ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError, ) @@ -13,11 +11,11 @@ def test_empty(self, validator): errors = validator.iter_errors(spec) errors_list = list(errors) - assert errors_list[0].__class__ == ValidationError + assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == "'openapi' is a required property" - assert errors_list[1].__class__ == ValidationError + assert errors_list[1].__class__ == OpenAPIValidationError assert errors_list[1].message == "'info' is a required property" - assert errors_list[2].__class__ == ValidationError + assert errors_list[2].__class__ == OpenAPIValidationError assert errors_list[2].message == "'paths' is a required property" def test_info_empty(self, validator): @@ -30,7 +28,7 @@ def test_info_empty(self, validator): errors = validator.iter_errors(spec) errors_list = list(errors) - assert errors_list[0].__class__ == ValidationError + assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == "'title' is a required property" def test_minimalistic(self, validator): @@ -200,7 +198,7 @@ def test_default_value_wrong_type(self, validator): errors_list = list(errors) assert len(errors_list) == 1 - assert errors_list[0].__class__ == ValidationError + assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( "'invaldtype' is not of type 'integer'" ) @@ -235,7 +233,7 @@ def test_parameter_default_value_wrong_type(self, validator): errors_list = list(errors) assert len(errors_list) == 1 - assert errors_list[0].__class__ == ValidationError + assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( "'invaldtype' is not of type 'integer'" ) From f933839ff256b1d2306aeebd2914cd008e5669fd Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Sun, 29 Jul 2018 23:12:52 -0700 Subject: [PATCH 019/371] Version 0.2.4 --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 372cf1d..ec0a1e1 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciąg' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.3' +__version__ = '0.2.4' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From 1b7d612a0a85568b4ab8afbd6ccb777841cc2d35 Mon Sep 17 00:00:00 2001 From: Sean Marlow Date: Mon, 30 Jul 2018 13:27:36 -0600 Subject: [PATCH 020/371] Add license to manifest for sdist. --- MANIFEST.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 7dc7152..33b678f 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,5 @@ include README.md include requirements.txt include requirements_dev.txt -include openapi_spec_validator/resources/schemas/*/* \ No newline at end of file +include openapi_spec_validator/resources/schemas/*/* +include LICENSE From dadb7fb4fc87f4bca205bfcea7ac6474efeed546 Mon Sep 17 00:00:00 2001 From: Sean Marlow Date: Mon, 30 Jul 2018 13:31:16 -0600 Subject: [PATCH 021/371] Replace unicode character for RPM build. To make building RPMs of package easier when using ascii by default. --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 372cf1d..0d52845 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -7,7 +7,7 @@ from openapi_spec_validator.factories import JSONSpecValidatorFactory from openapi_spec_validator.validators import SpecValidator -__author__ = 'Artur Maciąg' +__author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' __version__ = '0.2.3' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' From 4de931e197a3687bdcbca6d2145063dc89e5a068 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 30 Jul 2018 22:42:39 +0100 Subject: [PATCH 022/371] validation error fix --- tests/integration/test_validators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 32b5209..db4a273 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -272,7 +272,7 @@ def test_parameter_default_value_wrong_type_swagger(self, errors_list = list(errors) assert len(errors_list) == 1 - assert errors_list[0].__class__ == ValidationError + assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( "'invaldtype' is not of type 'integer'" ) From 426e24cbe6f354e4e58435bef012ae49810f9b94 Mon Sep 17 00:00:00 2001 From: Sean Marlow Date: Tue, 7 Aug 2018 10:38:38 -0600 Subject: [PATCH 023/371] Flake8 runs both pyflakes and pycodestyle. Pep8 is deprecated and renamed to pycodestyle. --- requirements_dev.txt | 3 +-- setup.py | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/requirements_dev.txt b/requirements_dev.txt index 92b0650..a5290e5 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,6 +1,5 @@ mock==2.0.0 pytest==3.5.0 -pytest-pep8==1.0.6 -pytest-flakes==2.0.0 +pytest-flake8 pytest-cov==2.5.1 tox==3.0.0rc4 diff --git a/setup.py b/setup.py index 78e5865..34181ac 100644 --- a/setup.py +++ b/setup.py @@ -27,8 +27,7 @@ def finalize_options(self): TestCommand.finalize_options(self) self.test_args = [ '-sv', - '--pep8', - '--flakes', + '--flake8', '--cov', 'openapi_spec_validator', '--cov-report', 'term-missing', ] @@ -75,8 +74,7 @@ def run_tests(self): tests_require=[ "mock", "pytest", - "pytest-pep8", - "pytest-flakes", + "pytest-flake8", "pytest-cov", "tox", ], From 74e42547b6253d7d420ab52f8d574f952437e819 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Thu, 23 Aug 2018 09:50:03 +0100 Subject: [PATCH 024/371] Python 3.7 support --- .travis.yml | 3 +++ setup.py | 1 + 2 files changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 34b9de6..79c3d83 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,9 @@ matrix: - python: 3.4 - python: 3.5 - python: 3.6 + - python: 3.7 + dist: xenial + sudo: true - python: nightly - python: pypy3 allow_failures: diff --git a/setup.py b/setup.py index 34181ac..7ee1c75 100644 --- a/setup.py +++ b/setup.py @@ -88,5 +88,6 @@ def run_tests(self): "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", ], ) From a7a6950b7e7e0ae69a52c87b1ca034eaf3f89743 Mon Sep 17 00:00:00 2001 From: Nick Timkovich Date: Tue, 25 Sep 2018 10:37:05 -0500 Subject: [PATCH 025/371] Signal PyPI to format the long_description as Markdown Should make the page at https://pypi.org/project/openapi-spec-validator/ render as Markdown. See: https://packaging.python.org/guides/making-a-pypi-friendly-readme/#including-your-readme-in-your-package-s-metadata --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 34181ac..a71bf32 100644 --- a/setup.py +++ b/setup.py @@ -53,6 +53,7 @@ def run_tests(self): url=metadata['url'], license=metadata['license'], long_description=read_file('README.md'), + long_description_content_type='text/markdown', packages=find_packages(include=('openapi_spec_validator*',)), package_data={ 'openapi_spec_validator': [ From 3515b77a69d64bf003c540c48942f0eb44a231b2 Mon Sep 17 00:00:00 2001 From: jpthiery Date: Tue, 8 Jan 2019 17:03:43 +0100 Subject: [PATCH 026/371] :bug: Fixing URI forge for Windows In order to allow Windows user to use this smart tool, this PR provide a solution proposed by @kearnh in Issuer #50. --- openapi_spec_validator/__main__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 2ba7005..febaab1 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -1,8 +1,10 @@ import logging import argparse import os +import pathlib import sys + from openapi_spec_validator import validate_spec_url, validate_v2_spec_url from openapi_spec_validator.exceptions import ValidationError @@ -33,7 +35,7 @@ def main(args=None): validate_url = validate_spec_url # validate try: - validate_url('file://'+filename) + validate_url(pathlib.Path(filename).as_uri()) except ValidationError as e: print(e) sys.exit(1) From e12ad5d6d3fc62505e36a2a3ff480de6bedd0f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Maci=C4=85g?= Date: Sat, 23 Feb 2019 23:29:25 +0000 Subject: [PATCH 027/371] Requirements update --- requirements.txt | 4 ++-- setup.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index eac89a3..52877c6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ jsonschema==2.6.0 -PyYAML==3.13 -six==1.11.0 +PyYAML==4.2b4 +six==1.12.0 diff --git a/setup.py b/setup.py index 1d61c1e..d3f60ef 100644 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ def run_tests(self): }, install_requires=[ "jsonschema", - "PyYAML", + "PyYAML>=4.2b1", "six", ], tests_require=[ From e1301878749772fe053108417650d40dcbcc6899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Maci=C4=85g?= Date: Sun, 24 Feb 2019 00:21:17 +0000 Subject: [PATCH 028/371] pathlib requirement for python2 --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 1d61c1e..7e8aa84 100644 --- a/setup.py +++ b/setup.py @@ -71,6 +71,7 @@ def run_tests(self): "jsonschema", "PyYAML", "six", + 'pathlib;python_version=="2.7"', ], tests_require=[ "mock", From 3174e0d6360cc87913e852efe4af550264593fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Maci=C4=85g?= Date: Sun, 24 Feb 2019 02:42:07 +0000 Subject: [PATCH 029/371] jsonschema requirement fix --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e1676a1..3692c56 100644 --- a/setup.py +++ b/setup.py @@ -68,7 +68,7 @@ def run_tests(self): ] }, install_requires=[ - "jsonschema", + "jsonschema<3", "PyYAML>=4.2b1", "six", 'pathlib;python_version=="2.7"', From 7e24392ef8853ee1affee7b6125d1d0d8960836a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Maci=C4=85g?= Date: Sun, 24 Feb 2019 02:54:11 +0000 Subject: [PATCH 030/371] Version 0.2.5 --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index f22fcc7..f622d12 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.4' +__version__ = '0.2.5' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From 9aca116d0dcc0a82c0c2e17fdc2b9ab49bcc129d Mon Sep 17 00:00:00 2001 From: Joshua Reed Date: Tue, 26 Feb 2019 08:39:04 -0500 Subject: [PATCH 031/371] revert pyyaml requirement version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3692c56..1652e96 100644 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ def run_tests(self): }, install_requires=[ "jsonschema<3", - "PyYAML>=4.2b1", + "PyYAML>=3.13", "six", 'pathlib;python_version=="2.7"', ], From dcd0c2a447be43bb06020f76f166438b812e47df Mon Sep 17 00:00:00 2001 From: Joshua Reed Date: Tue, 26 Feb 2019 08:57:52 -0500 Subject: [PATCH 032/371] add security note --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index ef7a9ca..d570a36 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,21 @@ from openapi_spec_validator import openapi_v3_spec_validator errors_iterator = openapi_v3_spec_validator.iter_errors(spec) ``` +## Security Note + +PyYAML, a requirement of this project, has a +[security vulnerability](https://nvd.nist.gov/vuln/detail/CVE-2017-18342) +in the default implementation of `yaml.load()`, which allows execution +of arbitrary code while loading a target file or stream. OpenAPI Spec +Validator uses a safe loader to ensure that only Python objects +marked as safe can be executed. Thus, you are not exposed to this +vulnerability by using this package. + +If you use `PyYAML` directly, be sure to use `yaml.safe_load()` to +avoid inadvertantly exposing youself to potentially malicous data. The +[PyYAML docs](https://pyyaml.org/wiki/PyYAMLDocumentation#loading-yaml) +describe this issue in detail. + ## Related projects * [openapi-core](https://github.com/p1c2u/openapi-core) is a Python library that adds client-side and server-side support for the OpenAPI. From 65fd6e6fc4295f3365012e4e90cbace8685ed4b6 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Thu, 28 Feb 2019 13:53:02 +0000 Subject: [PATCH 033/371] Version 0.2.6 --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index f622d12..4dc997b 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.5' +__version__ = '0.2.6' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From aab9b2c088132c786d090dcb3e1e2779fc1b7fb6 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Thu, 28 Feb 2019 14:27:43 +0000 Subject: [PATCH 034/371] travis pypi creds update --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 79c3d83..691c4e1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,7 @@ deploy: provider: pypi user: p1c2u password: - secure: iZWZuDMIWyFtJf5cLDPwA82d7DVi+/8yBQJVowctJwkioz4PEZBrf4N7cKyFc7JlhsS0/gqPJ9nw1FBqHwlTFwikpCYjudcfVijzibwKBbTbYTbTY1xEYiv+2/Q2UGoGjGmf2qdqM9SBaQwvax+KgMO6e4I4vrX4cm3kMx4LHt0Z2ArORlhZ0oKxyi6azcFiZYwlOlp31PuV0iNpBkroBf+gQ20S35hD+GIm1U6D4zqkN0HmZ0LxlpZLXsHZ0FrEE57KU06RowWfkAFBkGjMBjr+phiZ/XRe88SFaiB3HVZaJm+ZPTJKnxryuGt5th54Q10DKLZ3KUien33saBYVziamHZ8ZYS01ztahEhqLKlQVB1e+p1M8mYXKVodqLgytOsddixIBmibq2rDJmLSPwro8RBwLhLdGZdRsH2kii06OQxPrzlUrOwtErozxvdNjS47hwjJ4ZVm4ZGcnOXZut4qwkiEEUMWUd54V+zDNnRxOf+hi/mEx3u8CmkV26XFJ7WHpr/E1T9XHuRh7YVP8MXrM3gjoL86g1swalpH/QBjf0UaF2BlTvWJ3j52uThH7MFUlCBgpYer1giJayyNjFw4+qUVMCyByD87V7x6/3glA7t4Kh0LiMq0Zo23PPbhuJOmJmDy6GTtjkXZEJ6XnNPV9+VR8LApmppevBDKafgA= + secure: mQCKjaqTpkDhTRCSZtdt5d3tOs/d1vc8PDAna5Gr5prMbosq5stG3HdTK3qK5AbfNghclFYZH726zD2i4LdBWmHoA50TJn6mud3k0Byt+fEpnFIHgb8B2hhOQiiG/LxO1X+oRQI+2NL6TQagxJZzSArqaY4p83RAoLNjlf8LpgQu6qjERFkxMaSCrDfDWJ8MBFINMiZ5ZCq3NF8Rclaesv7HKAaYc8591grjouR8FBoVIPG7EWCZP8lp4CVEz6XlBZV8DDmUuhIhqWRkf6jS1zMbd0fUB7iKh2vHDHSWx9kGsxSRCqISDy3ywVUcee6O5M06RwzlpDSML+vuBHYvr8KX5LWSoaOcZfRNjGYIv437t+81Bl1d34GogI/Abm8WxG92KYt5+//6bKk7byck76ZLvuxV/lPtLjg0Caya9zVk/SE0GEa5N+Da04SHJqML88dS9ImbKchOnP1nUb/oUFA8SADFaMonxLbqe2k+PTLymZVTv0apPpiDXKpUF0K1+1WdggDRyr9WFhoBB7KYme6uQLLi78vmDo4gZzG+NvPYoux/VVsbm+upZdqRFL1jX8GGYMu/VbFwN3EHCAH3b6kFZFijZuTgCsIGvMfU2j/tJpLGUJLN8uLJlN88PqPxU4iz7lVKRU29hLwnCWY9yjPdTCZn0gdcZuosv6leNlc= distributions: sdist bdist_wheel on: tags: true From 37e38eb0656b42349761f697f05e4d11562a2fb1 Mon Sep 17 00:00:00 2001 From: strongbugman Date: Fri, 8 Mar 2019 11:10:25 +0800 Subject: [PATCH 035/371] Replace pathlib with pathlib2 --- openapi_spec_validator/__main__.py | 5 ++++- setup.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index febaab1..3ee10e3 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -1,7 +1,10 @@ import logging import argparse import os -import pathlib +try: + import pathlib +except ImportError: + import pathlib2 as pathlib import sys diff --git a/setup.py b/setup.py index 1652e96..ff805bd 100644 --- a/setup.py +++ b/setup.py @@ -71,7 +71,7 @@ def run_tests(self): "jsonschema<3", "PyYAML>=3.13", "six", - 'pathlib;python_version=="2.7"', + 'pathlib2;python_version=="2.7"', ], tests_require=[ "mock", From 97ef57e3074bdca92a6ede6271b8c912a32e26d4 Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Fri, 15 Mar 2019 21:29:34 +1100 Subject: [PATCH 036/371] bump PyYAML to 5.1 for CVE-2017-18342 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ff805bd..eb0b987 100644 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ def run_tests(self): }, install_requires=[ "jsonschema<3", - "PyYAML>=3.13", + "PyYAML>=5.1", "six", 'pathlib2;python_version=="2.7"', ], From f21bd0e2f78ecc97d1eb6d2cc5c22de0f70b0968 Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Fri, 15 Mar 2019 21:43:27 +1100 Subject: [PATCH 037/371] Revert "add security note" This reverts commit dcd0c2a447be43bb06020f76f166438b812e47df. --- README.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/README.md b/README.md index d570a36..ef7a9ca 100644 --- a/README.md +++ b/README.md @@ -69,21 +69,6 @@ from openapi_spec_validator import openapi_v3_spec_validator errors_iterator = openapi_v3_spec_validator.iter_errors(spec) ``` -## Security Note - -PyYAML, a requirement of this project, has a -[security vulnerability](https://nvd.nist.gov/vuln/detail/CVE-2017-18342) -in the default implementation of `yaml.load()`, which allows execution -of arbitrary code while loading a target file or stream. OpenAPI Spec -Validator uses a safe loader to ensure that only Python objects -marked as safe can be executed. Thus, you are not exposed to this -vulnerability by using this package. - -If you use `PyYAML` directly, be sure to use `yaml.safe_load()` to -avoid inadvertantly exposing youself to potentially malicous data. The -[PyYAML docs](https://pyyaml.org/wiki/PyYAMLDocumentation#loading-yaml) -describe this issue in detail. - ## Related projects * [openapi-core](https://github.com/p1c2u/openapi-core) is a Python library that adds client-side and server-side support for the OpenAPI. From 796b1915a7c69d21ac811f6049d51e2dfd1966fb Mon Sep 17 00:00:00 2001 From: Peter Date: Wed, 10 Apr 2019 09:45:09 -0700 Subject: [PATCH 038/371] Support jsonschema 3 Avoid hard coding the validator functions in SpecValidatorsGeneratorFactory and just use the defaults in Draft4Validator. This allows us to work with both > and < jsonschema 3. --- openapi_spec_validator/generators.py | 34 ++++++++++++++-------------- requirements.txt | 2 +- setup.py | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/openapi_spec_validator/generators.py b/openapi_spec_validator/generators.py index c8adb52..74c3143 100644 --- a/openapi_spec_validator/generators.py +++ b/openapi_spec_validator/generators.py @@ -2,7 +2,7 @@ import logging from six import iteritems -from jsonschema import _validators +from jsonschema.validators import Draft4Validator from openapi_spec_validator.decorators import DerefValidatorDecorator @@ -13,21 +13,20 @@ class SpecValidatorsGeneratorFactory: """Generator factory for customized validators that follows $refs in the schema being validated. """ - validators = { - '$ref': _validators.ref, - 'properties': _validators.properties_draft4, - 'additionalProperties': _validators.additionalProperties, - 'patternProperties': _validators.patternProperties, - 'type': _validators.type_draft4, - 'dependencies': _validators.dependencies, - 'required': _validators.required_draft4, - 'minProperties': _validators.minProperties_draft4, - 'maxProperties': _validators.maxProperties_draft4, - 'allOf': _validators.allOf_draft4, - 'oneOf': _validators.oneOf_draft4, - 'anyOf': _validators.anyOf_draft4, - 'not': _validators.not_draft4, + '$ref', + 'properties', + 'additionalProperties', + 'patternProperties', + 'type', + 'dependencies', + 'required', + 'minProperties', + 'maxProperties', + 'allOf', + 'oneOf', + 'anyOf', + 'not', } @classmethod @@ -38,5 +37,6 @@ def from_spec_resolver(cls, spec_resolver): :type instance_resolver: :class:`jsonschema.RefResolver` """ deref = DerefValidatorDecorator(spec_resolver) - for key, validator_callable in iteritems(cls.validators): - yield key, deref(validator_callable) + for key, validator_callable in iteritems(Draft4Validator.VALIDATORS): + if key in cls.validators: + yield key, deref(validator_callable) diff --git a/requirements.txt b/requirements.txt index 52877c6..39aa4a7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -jsonschema==2.6.0 +jsonschema PyYAML==4.2b4 six==1.12.0 diff --git a/setup.py b/setup.py index eb0b987..5455793 100644 --- a/setup.py +++ b/setup.py @@ -68,7 +68,7 @@ def run_tests(self): ] }, install_requires=[ - "jsonschema<3", + "jsonschema", "PyYAML>=5.1", "six", 'pathlib2;python_version=="2.7"', From 827b49c7b3f3fb67b7022ab44b586bd67d28886c Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Mon, 20 May 2019 10:36:21 +0100 Subject: [PATCH 039/371] Version 0.2.7 --- openapi_spec_validator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 4dc997b..f7f4610 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.6' +__version__ = '0.2.7' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From d92d785db8510cd63b2ff5af00f18f6ca5273df0 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Mon, 20 May 2019 16:34:54 +0100 Subject: [PATCH 040/371] STDIO spec support --- openapi_spec_validator/__init__.py | 6 ++-- openapi_spec_validator/__main__.py | 54 +++++++++++++++++++++++------- openapi_spec_validator/handlers.py | 23 +++++++++---- tests/integration/test_main.py | 27 +++++++++++++++ 4 files changed, 89 insertions(+), 21 deletions(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index f7f4610..7c15d6e 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -2,7 +2,7 @@ from openapi_spec_validator.shortcuts import ( validate_spec_factory, validate_spec_url_factory, ) -from openapi_spec_validator.handlers import UrlHandler +from openapi_spec_validator.handlers import UrlHandler, FileObjectHandler from openapi_spec_validator.schemas import get_openapi_schema from openapi_spec_validator.factories import JSONSpecValidatorFactory from openapi_spec_validator.validators import SpecValidator @@ -19,8 +19,10 @@ 'validate_v2_spec_url', 'validate_v3_spec_url', 'validate_spec_url', ] +file_object_handler = FileObjectHandler() +all_urls_handler = UrlHandler('http', 'https', 'file') default_handlers = { - '': UrlHandler('http', 'https', 'file'), + '': all_urls_handler, 'http': UrlHandler('http'), 'https': UrlHandler('https'), 'file': UrlHandler('file'), diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 3ee10e3..0c798fe 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -7,8 +7,10 @@ import pathlib2 as pathlib import sys - -from openapi_spec_validator import validate_spec_url, validate_v2_spec_url +from openapi_spec_validator import ( + openapi_v2_spec_validator, openapi_v3_spec_validator, all_urls_handler, + file_object_handler, +) from openapi_spec_validator.exceptions import ValidationError logger = logging.getLogger(__name__) @@ -18,6 +20,19 @@ ) +def read_from_stdin(filename): + return file_object_handler(sys.stdin), '' + + +def read_from_filename(filename): + if not os.path.isfile(filename): + raise SystemError("No such file {0}".format(filename)) + + filename = os.path.abspath(filename) + uri = pathlib.Path(filename).as_uri() + return all_urls_handler(uri), uri + + def main(args=None): parser = argparse.ArgumentParser() parser.add_argument('filename', help="Absolute or relative path to file") @@ -29,21 +44,34 @@ def main(args=None): default='3.0.0' ) args = parser.parse_args(args) - filename = args.filename - filename = os.path.abspath(filename) + + # choose source + reader = read_from_filename + if args.filename == '-': + reader = read_from_stdin + + # read source + try: + spec, spec_url = reader(args.filename) + except Exception as exc: + print(exc) + sys.exit(1) + # choose the validator - if args.schema == '2.0': - validate_url = validate_v2_spec_url - elif args.schema == '3.0.0': - validate_url = validate_spec_url + validators = { + '2.0': openapi_v2_spec_validator, + '3.0.0': openapi_v3_spec_validator, + } + validator = validators[args.schema] + # validate try: - validate_url(pathlib.Path(filename).as_uri()) - except ValidationError as e: - print(e) + validator.validate(spec, spec_url=spec_url) + except ValidationError as exc: + print(exc) sys.exit(1) - except Exception as e: - print(e) + except Exception as exc: + print(exc) sys.exit(2) else: print('OK') diff --git a/openapi_spec_validator/handlers.py b/openapi_spec_validator/handlers.py index f4db845..177c007 100644 --- a/openapi_spec_validator/handlers.py +++ b/openapi_spec_validator/handlers.py @@ -8,19 +8,30 @@ from openapi_spec_validator.loaders import ExtendedSafeLoader -class UrlHandler: - """OpenAPI spec validator URL scheme handler.""" +class FileObjectHandler(object): + """OpenAPI spec validator file-like object handler.""" - def __init__(self, *allowed_schemes, **options): - self.allowed_schemes = allowed_schemes + def __init__(self, **options): self.options = options @property def loader(self): return self.options.get('loader', ExtendedSafeLoader) + def __call__(self, f): + return load(f, self.loader) + + +class UrlHandler(FileObjectHandler): + """OpenAPI spec validator URL scheme handler.""" + + def __init__(self, *allowed_schemes, **options): + super(UrlHandler, self).__init__(**options) + self.allowed_schemes = allowed_schemes + def __call__(self, url, timeout=1): assert urlparse(url).scheme in self.allowed_schemes - with contextlib.closing(urlopen(url, timeout=timeout)) as fh: - return load(fh, self.loader) + f = urlopen(url, timeout=timeout) + with contextlib.closing(f) as fh: + return super(UrlHandler, self).__call__(fh) diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index 6d890be..bbc1e1f 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -1,4 +1,7 @@ +import mock + import pytest +from six import StringIO from openapi_spec_validator.__main__ import main @@ -39,8 +42,32 @@ def test_validation_error(): main(testargs) +@mock.patch( + 'openapi_spec_validator.__main__.openapi_v3_spec_validator.validate', + side_effect=Exception, +) +def test_unknown_error(m_validate): + """SystemExit on running with unknown error.""" + testargs = ['--schema', '3.0.0', + './tests/integration/data/v2.0/petstore.yaml'] + with pytest.raises(SystemExit): + main(testargs) + + def test_nonexisting_file(): """Calling with non-existing file should sys.exit.""" testargs = ['i_dont_exist.yaml'] with pytest.raises(SystemExit): main(testargs) + + +def test_schema_stdin(): + """Test schema from STDIN""" + spes_path = './tests/integration/data/v3.0/petstore.yaml' + with open(spes_path, 'r') as spec_file: + spec_lines = spec_file.readlines() + spec_io = StringIO("".join(spec_lines)) + + testargs = ['-'] + with mock.patch('openapi_spec_validator.__main__.sys.stdin', spec_io): + main(testargs) From ed893d53d7162f9ddd48b4e7d448e26011d7bc67 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Tue, 21 May 2019 10:57:57 +0100 Subject: [PATCH 041/371] README update --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index ef7a9ca..ae2a725 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,12 @@ Straight forward way: $ openapi-spec-validator some.yaml ``` +pipes way: + +```bash +$ cat some.yaml | openapi-spec-validator - +``` + or more pythonic way: ```bash From a1092b798e917742019faa5451c3a049b7909f20 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Wed, 22 May 2019 09:12:21 +0100 Subject: [PATCH 042/371] End of Python 3.4 support --- .travis.yml | 1 + setup.py | 1 - tox.ini | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 691c4e1..52e9140 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,7 @@ matrix: allow_failures: - python: 3.2 # EOL - python: 3.3 # EOL + - python: 3.4 # EOL - python: nightly before_install: - if [[ $TRAVIS_PYTHON_VERSION == '3.2' ]]; then pip install 'coverage<4.0.0'; fi diff --git a/setup.py b/setup.py index 5455793..bc0247f 100644 --- a/setup.py +++ b/setup.py @@ -87,7 +87,6 @@ def run_tests(self): "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", diff --git a/tox.ini b/tox.ini index 53559e4..e582da4 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {py27,py34,py35,py36}-{default,simplejson} +envlist = {py27,py35,py36}-{default,simplejson} [testenv] deps = From f6e074e73de9dc06f0f160718f92590d4f833917 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 15:08:08 +0100 Subject: [PATCH 043/371] Makefile added --- Makefile | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..701eaaf --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +.EXPORT_ALL_VARIABLES: + +PROJECT_NAME=openapi-spec-validator +PACKAGE_NAME=$(subst -,_,${PROJECT_NAME}) +VERSION=`git describe --abbrev=0` + +params: + @echo "Project name: ${PROJECT_NAME}" + @echo "Package name: ${PACKAGE_NAME}" + @echo "Version: ${VERSION}" + +dist-build: + @python setup.py bdist_wheel + +dist-cleanup: + @rm -rf build dist ${PACKAGE_NAME}.egg-info + +dist-upload: + @twine upload dist/*.whl + +test-python: + @python setup.py test + +test-cache-cleanup: + @rm -rf .pytest_cache + +reports-cleanup: + @rm -rf reports + +test-cleanup: test-cache-cleanup reports-cleanup + +cleanup: dist-cleanup test-cleanup From aaa11c2914e112eaadea599df8ccdbb0fe602827 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 15:08:40 +0100 Subject: [PATCH 044/371] Reports added --- setup.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.py b/setup.py index bc0247f..c7fde72 100644 --- a/setup.py +++ b/setup.py @@ -28,8 +28,10 @@ def finalize_options(self): self.test_args = [ '-sv', '--flake8', + '--junitxml', 'reports/junit.xml', '--cov', 'openapi_spec_validator', '--cov-report', 'term-missing', + '--cov-report', 'xml:reports/coverage.xml', ] self.test_suite = True From bcc2f5ad856d96ac1eb8a576a7e0e2af90548d47 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 15:06:10 +0100 Subject: [PATCH 045/371] Dockerfile added --- .bumpversion.cfg | 11 +++++++++++ Dockerfile | 7 +++++++ Makefile | 11 +++++++++++ 3 files changed, 29 insertions(+) create mode 100644 .bumpversion.cfg create mode 100644 Dockerfile diff --git a/.bumpversion.cfg b/.bumpversion.cfg new file mode 100644 index 0000000..0a35b54 --- /dev/null +++ b/.bumpversion.cfg @@ -0,0 +1,11 @@ +[bumpversion] +current_version = 0.2.7 +commit = True +tag = True +parse = (?P\d+)\.(?P\d+)\.(?P\d+) +serialize = + {major}.{minor}.{patch} + +[bumpversion:file:openapi_spec_validator/__init__.py] + +[bumpversion:file:Dockerfile] diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7e0a647 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.7-alpine + +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.7 + +RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} + +ENTRYPOINT ["openapi-spec-validator"] diff --git a/Makefile b/Makefile index 701eaaf..02a5497 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,8 @@ PROJECT_NAME=openapi-spec-validator PACKAGE_NAME=$(subst -,_,${PROJECT_NAME}) VERSION=`git describe --abbrev=0` +DOCKER_REGISTRY=p1c2u + params: @echo "Project name: ${PROJECT_NAME}" @echo "Package name: ${PACKAGE_NAME}" @@ -30,3 +32,12 @@ reports-cleanup: test-cleanup: test-cache-cleanup reports-cleanup cleanup: dist-cleanup test-cleanup + +docker-build: + @docker build --no-cache --build-arg OPENAPI_SPEC_VALIDATOR_VERSION=${VERSION} -t ${PROJECT_NAME}:${VERSION} . + +docker-tag: + @docker tag ${PROJECT_NAME}:${VERSION} ${DOCKER_REGISTRY}/${PROJECT_NAME}:${VERSION} + +docker-push: + @docker push ${DOCKER_REGISTRY}/${PROJECT_NAME}:${VERSION} From 14b081f485c572f94b4d649506fd223f5c83ab65 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 15:47:16 +0100 Subject: [PATCH 046/371] Docker pipe fix --- openapi_spec_validator/__main__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 0c798fe..5a5d909 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -47,7 +47,7 @@ def main(args=None): # choose source reader = read_from_filename - if args.filename == '-': + if args.filename in ['-', '/-']: reader = read_from_stdin # read source From c9f1eeb470efa6f69c6a561a71b2efe17c4955cb Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 16:02:21 +0100 Subject: [PATCH 047/371] Bumpversion new commit message --- .bumpversion.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 0a35b54..8d71840 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -5,6 +5,7 @@ tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) serialize = {major}.{minor}.{patch} +message = Version {new_version} [bumpversion:file:openapi_spec_validator/__init__.py] From 90de871c4301256bffb23712a2e9bbd3cb553487 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 16:03:04 +0100 Subject: [PATCH 048/371] Avoid bytecode --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 02a5497..71d8348 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,8 @@ VERSION=`git describe --abbrev=0` DOCKER_REGISTRY=p1c2u +PYTHONDONTWRITEBYTECODE=1 + params: @echo "Project name: ${PROJECT_NAME}" @echo "Package name: ${PACKAGE_NAME}" From eb80927f245496a0a91573e31aeed19e9169ce2c Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 16:06:53 +0100 Subject: [PATCH 049/371] Bumpversion tag name --- .bumpversion.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 8d71840..09118fa 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -5,6 +5,7 @@ tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) serialize = {major}.{minor}.{patch} +tag_name = {new_version} message = Version {new_version} [bumpversion:file:openapi_spec_validator/__init__.py] From cf85f7c77af63a3d32a193e42083085d53b58fb5 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 16:07:11 +0100 Subject: [PATCH 050/371] Version 0.2.8 --- .bumpversion.cfg | 3 ++- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 09118fa..485f529 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.2.7 +current_version = 0.2.8 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) @@ -11,3 +11,4 @@ message = Version {new_version} [bumpversion:file:openapi_spec_validator/__init__.py] [bumpversion:file:Dockerfile] + diff --git a/Dockerfile b/Dockerfile index 7e0a647..53b8172 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.7 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.8 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 7c15d6e..6dfb613 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.7' +__version__ = '0.2.8' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From f13bd8c4e05f8c2ab1c54c6021897d8ad99f29f9 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 22 Jul 2019 16:26:40 +0100 Subject: [PATCH 051/371] README updated with docker way --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index ae2a725..317f8cb 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,12 @@ pipes way: $ cat some.yaml | openapi-spec-validator - ``` +docker way: + +```bash +$ docker run -v path/to/some.yaml:/some.yaml --rm p1c2u/openapi-spec-validator /some.yaml +``` + or more pythonic way: ```bash From 3b8e435d71fa30d3b6c8c83a45ba5a1a84151701 Mon Sep 17 00:00:00 2001 From: Adam Watson Date: Fri, 27 Sep 2019 12:33:16 +0100 Subject: [PATCH 052/371] Adds support for pre-commit --- .pre-commit-hooks.yaml | 6 ++++++ hooks.yaml | 6 ++++++ setup.py | 5 +++++ 3 files changed, 17 insertions(+) create mode 100644 .pre-commit-hooks.yaml create mode 100644 hooks.yaml diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml new file mode 100644 index 0000000..5e7ce0e --- /dev/null +++ b/.pre-commit-hooks.yaml @@ -0,0 +1,6 @@ +- id: openapi-spec-validator + name: openapi-spec-validator + entry: openapi-spec-validator + description: Hook to validate Open API specs. + language: python + files: .*openapi.*\.(json|yaml|yml) \ No newline at end of file diff --git a/hooks.yaml b/hooks.yaml new file mode 100644 index 0000000..5e7ce0e --- /dev/null +++ b/hooks.yaml @@ -0,0 +1,6 @@ +- id: openapi-spec-validator + name: openapi-spec-validator + entry: openapi-spec-validator + description: Hook to validate Open API specs. + language: python + files: .*openapi.*\.(json|yaml|yml) \ No newline at end of file diff --git a/setup.py b/setup.py index c7fde72..a621b64 100644 --- a/setup.py +++ b/setup.py @@ -75,6 +75,11 @@ def run_tests(self): "six", 'pathlib2;python_version=="2.7"', ], + extras_require={ + 'dev': [ + 'pre-commit' + ] + }, tests_require=[ "mock", "pytest", From 3cb90033c66d4def7ce4871cbad8326a6e77493b Mon Sep 17 00:00:00 2001 From: Julien Lecomte Date: Sat, 19 Oct 2019 21:14:49 +0200 Subject: [PATCH 053/371] Add a short description to setup.py --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index c7fde72..d5d7916 100644 --- a/setup.py +++ b/setup.py @@ -54,6 +54,7 @@ def run_tests(self): author_email=metadata['email'], url=metadata['url'], license=metadata['license'], + description='OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0.0 spec validator', long_description=read_file('README.md'), long_description_content_type='text/markdown', packages=find_packages(include=('openapi_spec_validator*',)), From e9fc0438fac83cdedb0ba7567244c7d9a731bcc8 Mon Sep 17 00:00:00 2001 From: "Miguel G. Flores" Date: Thu, 19 Mar 2020 08:11:54 +0100 Subject: [PATCH 054/371] Add Python 3.8 to Travis matrix --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 52e9140..9dae3d9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ matrix: - python: 3.5 - python: 3.6 - python: 3.7 + - python: 3.8 dist: xenial sudo: true - python: nightly From 3f53e957812a9c545d71226e3a4d696240e2cee6 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 27 Jul 2020 12:52:53 +0100 Subject: [PATCH 055/371] Version 0.2.9 --- .bumpversion.cfg | 3 +-- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 485f529..ca4206a 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.2.8 +current_version = 0.2.9 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) @@ -11,4 +11,3 @@ message = Version {new_version} [bumpversion:file:openapi_spec_validator/__init__.py] [bumpversion:file:Dockerfile] - diff --git a/Dockerfile b/Dockerfile index 53b8172..3268ea4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.8 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.9 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 6dfb613..b2581e6 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.8' +__version__ = '0.2.9' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From 5a13d6068c42e8ced741e48dbafb5f53b82f0866 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 17 Feb 2021 20:55:04 +0000 Subject: [PATCH 056/371] License NOTICE --- NOTICE | 14 ++++++++++++++ README.md | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 NOTICE diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..36a105c --- /dev/null +++ b/NOTICE @@ -0,0 +1,14 @@ +openapi-spec-validator +Copyright 2017-2021 Artur Maciag + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md index 317f8cb..308273b 100644 --- a/README.md +++ b/README.md @@ -87,5 +87,5 @@ errors_iterator = openapi_v3_spec_validator.iter_errors(spec) ## License -Copyright (c) 2017, Artur Maciag, All rights reserved. +Copyright (c) 2017-2021, Artur Maciag, All rights reserved. Apache v2 From 0b9001b5354ce096e7f2d87f31e7d8ca6b5bc6c7 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 17 Feb 2021 21:07:29 +0000 Subject: [PATCH 057/371] Python 3.8 3.9 support --- .travis.yml | 3 +-- setup.py | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9dae3d9..c793ca0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,8 +10,7 @@ matrix: - python: 3.6 - python: 3.7 - python: 3.8 - dist: xenial - sudo: true + - python: 3.9 - python: nightly - python: pypy3 allow_failures: diff --git a/setup.py b/setup.py index 05fe6eb..2aea917 100644 --- a/setup.py +++ b/setup.py @@ -98,5 +98,7 @@ def run_tests(self): "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", ], ) From db196c99832f7c50ed878a97771d5980d35522d9 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 17 Feb 2021 21:26:29 +0000 Subject: [PATCH 058/371] README related projects update --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 308273b..dbcd017 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ errors_iterator = openapi_v3_spec_validator.iter_errors(spec) ## Related projects * [openapi-core](https://github.com/p1c2u/openapi-core) is a Python library that adds client-side and server-side support for the OpenAPI. +* [openapi-schema-validator](https://github.com/p1c2u/openapi-schema-validator) is a Python library that validates schema against the OpenAPI Schema Specification v3.0. ## License From 010f8540baad8a26401ab5dbf122c4b1d0c14b33 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 17 Feb 2021 21:30:43 +0000 Subject: [PATCH 059/371] Github actions --- .github/FUNDING.yml | 1 + .github/workflows/python-publish.yml | 39 ++++++++++++++++++++++++++++ .github/workflows/python-test.yml | 33 +++++++++++++++++++++++ .travis.yml | 8 ------ 4 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/python-publish.yml create mode 100644 .github/workflows/python-test.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..7e3a3d2 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: [p1c2u] diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml new file mode 100644 index 0000000..b608221 --- /dev/null +++ b/.github/workflows/python-publish.yml @@ -0,0 +1,39 @@ +# This workflow will upload a Python Package using Twine when a release is created +# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries + +name: Publish python packages + +on: + workflow_dispatch: + release: + types: + - created + +jobs: + publish: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [2.7, 3.6] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + - name: Build + run: python setup.py sdist bdist_wheel + - name: Publish wheel + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: twine upload dist/*.whl + - name: Publish source + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: twine upload dist/*.tar.gz || true diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml new file mode 100644 index 0000000..9d22fb3 --- /dev/null +++ b/.github/workflows/python-test.yml @@ -0,0 +1,33 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Test python code + +on: + push: + pull_request: + types: [opened, synchronize] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9] + fail-fast: false + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install -r requirements_dev.txt + pip install -e . + - name: Test + run: python setup.py test + - name: Upload coverage + uses: codecov/codecov-action@v1 diff --git a/.travis.yml b/.travis.yml index c793ca0..b8800f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,11 +30,3 @@ script: - python setup.py test after_success: - codecov -deploy: - provider: pypi - user: p1c2u - password: - secure: mQCKjaqTpkDhTRCSZtdt5d3tOs/d1vc8PDAna5Gr5prMbosq5stG3HdTK3qK5AbfNghclFYZH726zD2i4LdBWmHoA50TJn6mud3k0Byt+fEpnFIHgb8B2hhOQiiG/LxO1X+oRQI+2NL6TQagxJZzSArqaY4p83RAoLNjlf8LpgQu6qjERFkxMaSCrDfDWJ8MBFINMiZ5ZCq3NF8Rclaesv7HKAaYc8591grjouR8FBoVIPG7EWCZP8lp4CVEz6XlBZV8DDmUuhIhqWRkf6jS1zMbd0fUB7iKh2vHDHSWx9kGsxSRCqISDy3ywVUcee6O5M06RwzlpDSML+vuBHYvr8KX5LWSoaOcZfRNjGYIv437t+81Bl1d34GogI/Abm8WxG92KYt5+//6bKk7byck76ZLvuxV/lPtLjg0Caya9zVk/SE0GEa5N+Da04SHJqML88dS9ImbKchOnP1nUb/oUFA8SADFaMonxLbqe2k+PTLymZVTv0apPpiDXKpUF0K1+1WdggDRyr9WFhoBB7KYme6uQLLi78vmDo4gZzG+NvPYoux/VVsbm+upZdqRFL1jX8GGYMu/VbFwN3EHCAH3b6kFZFijZuTgCsIGvMfU2j/tJpLGUJLN8uLJlN88PqPxU4iz7lVKRU29hLwnCWY9yjPdTCZn0gdcZuosv6leNlc= - distributions: sdist bdist_wheel - on: - tags: true From 4170be784730be60a85ffcab81f20aa26a45842c Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 17 Feb 2021 21:38:54 +0000 Subject: [PATCH 060/371] Drop python 3.2 3.3 3.4 testing --- .travis.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index b8800f7..7d647df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,9 +3,6 @@ sudo: false matrix: include: - python: 2.7 - - python: 3.2 - - python: 3.3 - - python: 3.4 - python: 3.5 - python: 3.6 - python: 3.7 @@ -14,13 +11,8 @@ matrix: - python: nightly - python: pypy3 allow_failures: - - python: 3.2 # EOL - - python: 3.3 # EOL - - python: 3.4 # EOL - python: nightly before_install: -- if [[ $TRAVIS_PYTHON_VERSION == '3.2' ]]; then pip install 'coverage<4.0.0'; fi -- if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]]; then pip install 'pyflakes<2.0.0'; fi - pip install codecov install: - pip install -r requirements.txt From 0c77f85a597d95970345aa38b9a8b37a6004e064 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 17 Feb 2021 22:23:50 +0000 Subject: [PATCH 061/371] move to rst and setup.cfg --- README.md | 92 ------------------------------------------ README.rst | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++ setup.cfg | 51 +++++++++++++++++++++++ setup.py | 91 ++++++++++------------------------------- 4 files changed, 188 insertions(+), 162 deletions(-) delete mode 100644 README.md create mode 100644 README.rst create mode 100644 setup.cfg diff --git a/README.md b/README.md deleted file mode 100644 index dbcd017..0000000 --- a/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# OpenAPI Spec validator - -[![Package Version](https://img.shields.io/pypi/v/openapi-spec-validator.svg)](https://pypi.python.org/pypi/openapi-spec-validator) -[![Build Status](https://travis-ci.org/p1c2u/openapi-spec-validator.svg?branch=master)](https://travis-ci.org/p1c2u/openapi-spec-validator) -[![Code Coverage](https://img.shields.io/codecov/c/github/p1c2u/openapi-spec-validator/master.svg?style=flat)](https://codecov.io/github/p1c2u/openapi-spec-validator?branch=master) -[![PyPI Version](https://img.shields.io/pypi/pyversions/openapi-spec-validator.svg)](https://pypi.python.org/pypi/openapi-spec-validator) -[![PyPI Format](https://img.shields.io/pypi/format/openapi-spec-validator.svg)](https://pypi.python.org/pypi/openapi-spec-validator) -[![PyPI Status](https://img.shields.io/pypi/status/openapi-spec-validator.svg)](https://pypi.python.org/pypi/openapi-spec-validator) - -## About - -OpenAPI Spec Validator is a Python library that validates OpenAPI Specs against the [OpenAPI 2.0 (aka Swagger)](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md) and [OpenAPI 3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md) specification. The validator aims to check for full compliance with the Specification. - -## Installation - - $ pip install openapi-spec-validator - -## Usage - -### Command Line Interface - -Straight forward way: - -```bash -$ openapi-spec-validator some.yaml -``` - -pipes way: - -```bash -$ cat some.yaml | openapi-spec-validator - -``` - -docker way: - -```bash -$ docker run -v path/to/some.yaml:/some.yaml --rm p1c2u/openapi-spec-validator /some.yaml -``` - -or more pythonic way: - -```bash -$ python -m openapi_spec_validator some.yaml -``` - -### Examples - -Validate spec: - -```python - -from openapi_spec_validator import validate_spec - -validate_spec(spec_dict) -``` - -Add `spec_url` to validate spec with relative files: - -```python - -from openapi_spec_validator import validate_spec - -validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml') -``` - -You can also validate spec from url: - -```python - -from openapi_spec_validator import validate_spec_url - -validate_spec_url('http://example.com/openapi.json') -``` - -If you want to iterate through validation errors: - -```python - -from openapi_spec_validator import openapi_v3_spec_validator - -errors_iterator = openapi_v3_spec_validator.iter_errors(spec) -``` - -## Related projects - -* [openapi-core](https://github.com/p1c2u/openapi-core) is a Python library that adds client-side and server-side support for the OpenAPI. -* [openapi-schema-validator](https://github.com/p1c2u/openapi-schema-validator) is a Python library that validates schema against the OpenAPI Schema Specification v3.0. - -## License - -Copyright (c) 2017-2021, Artur Maciag, All rights reserved. -Apache v2 diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..6511830 --- /dev/null +++ b/README.rst @@ -0,0 +1,116 @@ +********************** +OpenAPI Spec validator +********************** + +.. image:: https://img.shields.io/pypi/v/openapi-spec-validator.svg + :target: https://pypi.python.org/pypi/openapi-spec-validator +.. image:: https://travis-ci.org/p1c2u/openapi-spec-validator.svg?branch=master + :target: https://travis-ci.org/p1c2u/openapi-spec-validator +.. image:: https://img.shields.io/codecov/c/github/p1c2u/openapi-spec-validator/master.svg?style=flat + :target: https://codecov.io/github/p1c2u/openapi-spec-validator?branch=master +.. image:: https://img.shields.io/pypi/pyversions/openapi-spec-validator.svg + :target: https://pypi.python.org/pypi/openapi-spec-validator +.. image:: https://img.shields.io/pypi/format/openapi-spec-validator.svg + :target: https://pypi.python.org/pypi/openapi-spec-validator +.. image:: https://img.shields.io/pypi/status/openapi-spec-validator.svg + :target: https://pypi.python.org/pypi/openapi-spec-validator + +About +##### + +OpenAPI Spec Validator is a Python library that validates OpenAPI Specs +against the `OpenAPI 2.0 (aka +Swagger) `__ +and `OpenAPI +3.0.0 `__ +specification. The validator aims to check for full compliance with the +Specification. + +Installation +############ + +:: + + $ pip install openapi-spec-validator + +Usage +##### + +Command Line Interface +********************** + +Straight forward way: + +.. code:: bash + + $ openapi-spec-validator some.yaml + +pipes way: + +.. code:: bash + + $ cat some.yaml | openapi-spec-validator - + +docker way: + +.. code:: bash + + $ docker run -v path/to/some.yaml:/some.yaml --rm p1c2u/openapi-spec-validator /some.yaml + +or more pythonic way: + +.. code:: bash + + $ python -m openapi_spec_validator some.yaml + +Examples +******** + +Validate spec: + +.. code:: python + + + from openapi_spec_validator import validate_spec + + validate_spec(spec_dict) + +Add ``spec_url`` to validate spec with relative files: + +.. code:: python + + + from openapi_spec_validator import validate_spec + + validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml') + +You can also validate spec from url: + +.. code:: python + + + from openapi_spec_validator import validate_spec_url + + validate_spec_url('http://example.com/openapi.json') + +If you want to iterate through validation errors: + +.. code:: python + + + from openapi_spec_validator import openapi_v3_spec_validator + + errors_iterator = openapi_v3_spec_validator.iter_errors(spec) + +Related projects +################ + +* `openapi-core `__ + Python library that adds client-side and server-side support for the OpenAPI. +* `openapi-schema-validator `__ + Python library that validates schema against the OpenAPI Schema Specification v3.0. + +License +####### + +Copyright (c) 2017-2021, Artur Maciag, All rights reserved. Apache v2 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..a7491df --- /dev/null +++ b/setup.cfg @@ -0,0 +1,51 @@ +[metadata] +name = openapi-spec-validator +description = OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0.0 spec validator +long_description = file: README.rst +long-description-content-type = text/x-rst; charset=UTF-8 +keywords = openapi, swagger, schema +classifiers = + Development Status :: 4 - Beta + Intended Audience :: Developers + Topic :: Software Development :: Libraries :: Python Modules + Operating System :: OS Independent + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + +[options] +include_package_data = True +packages = find: +zip_safe = False +test_suite = tests +python_requires = >= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.* +setup_requires = + setuptools +install_requires = + jsonschema + PyYAML>=5.1 + six + pathlib2; python_version<"3.0" +tests_require = + mock; python_version<"3.0" + pytest + pytest-flake8 + pytest-cov + tox + +[options.entry_points] +console_scripts = + openapi-spec-validator = openapi_spec_validator.__main__:main + +[options.packages.find] +exclude = + tests + +[options.extras_require] +dev = pre-commit + +[tool:pytest] +addopts = -sv --flake8 --junitxml reports/junit.xml --cov openapi_spec_validator --cov-report term-missing --cov-report xml:reports/coverage.xml diff --git a/setup.py b/setup.py index 2aea917..268dea8 100644 --- a/setup.py +++ b/setup.py @@ -1,10 +1,16 @@ # -*- coding: utf-8 -*- +"""OpenAPI spec validator setup module""" import os import re import sys - -from setuptools import find_packages, setup -from setuptools.command.test import test as TestCommand +try: + from setuptools import setup +except ImportError: + from ez_setup import use_setuptools + use_setuptools() + from setuptools import setup +finally: + from setuptools.command.test import test as TestCommand def read_file(filename): @@ -20,25 +26,16 @@ def get_metadata(init_file): class PyTest(TestCommand): - """Command to run unit tests after in-place build.""" def finalize_options(self): TestCommand.finalize_options(self) - self.test_args = [ - '-sv', - '--flake8', - '--junitxml', 'reports/junit.xml', - '--cov', 'openapi_spec_validator', - '--cov-report', 'term-missing', - '--cov-report', 'xml:reports/coverage.xml', - ] - self.test_suite = True + self.pytest_args = [] def run_tests(self): # Importing here, `cause outside the eggs aren't loaded. import pytest - errno = pytest.main(self.test_args) + errno = pytest.main(self.pytest_args) sys.exit(errno) @@ -46,59 +43,13 @@ def run_tests(self): init_py = read_file(init_path) metadata = get_metadata(init_py) - -setup( - name='openapi-spec-validator', - version=metadata['version'], - author=metadata['author'], - author_email=metadata['email'], - url=metadata['url'], - license=metadata['license'], - description='OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0.0 spec validator', - long_description=read_file('README.md'), - long_description_content_type='text/markdown', - packages=find_packages(include=('openapi_spec_validator*',)), - package_data={ - 'openapi_spec_validator': [ - 'openapi_spec_validator/resources/schemas/v3.0.0/*', - 'openapi_spec_validator/resources/schemas/v2.0/*', - ], - }, - include_package_data=True, - entry_points={ - 'console_scripts': [ - 'openapi-spec-validator = openapi_spec_validator.__main__:main' - ] - }, - install_requires=[ - "jsonschema", - "PyYAML>=5.1", - "six", - 'pathlib2;python_version=="2.7"', - ], - extras_require={ - 'dev': [ - 'pre-commit' - ] - }, - tests_require=[ - "mock", - "pytest", - "pytest-flake8", - "pytest-cov", - "tox", - ], - cmdclass={'test': PyTest}, - classifiers=[ - "Development Status :: 4 - Beta", - "Intended Audience :: Developers", - "Topic :: Software Development :: Libraries :: Python Modules", - "Operating System :: OS Independent", - "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3.5", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - ], -) +if __name__ == '__main__': + setup( + version=metadata['version'], + author=metadata['author'], + author_email=metadata['email'], + url=metadata['url'], + license=metadata['license'], + cmdclass={'test': PyTest}, + setup_cfg=True, + ) From 4e93f2b6b6e9ab74a4e10083843fa82a3494d48c Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 17 Feb 2021 23:12:59 +0000 Subject: [PATCH 062/371] Readers and README update --- README.rst | 32 ++++++++++++++++++++---------- openapi_spec_validator/__main__.py | 22 ++------------------ openapi_spec_validator/readers.py | 21 ++++++++++++++++++++ 3 files changed, 45 insertions(+), 30 deletions(-) create mode 100644 openapi_spec_validator/readers.py diff --git a/README.rst b/README.rst index 6511830..773a323 100644 --- a/README.rst +++ b/README.rst @@ -33,6 +33,13 @@ Installation $ pip install openapi-spec-validator +Alternatively you can download the code and install from the repository: + +.. code-block:: bash + + $ pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator + + Usage ##### @@ -43,25 +50,25 @@ Straight forward way: .. code:: bash - $ openapi-spec-validator some.yaml + $ openapi-spec-validator openapi.yaml pipes way: .. code:: bash - $ cat some.yaml | openapi-spec-validator - + $ cat openapi.yaml | openapi-spec-validator - docker way: .. code:: bash - $ docker run -v path/to/some.yaml:/some.yaml --rm p1c2u/openapi-spec-validator /some.yaml + $ docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml or more pythonic way: .. code:: bash - $ python -m openapi_spec_validator some.yaml + $ python -m openapi_spec_validator openapi.yaml Examples ******** @@ -70,17 +77,23 @@ Validate spec: .. code:: python - from openapi_spec_validator import validate_spec + from openapi_spec_validator.readers import read_from_filename + + spec_dict, spec_url = read_from_filename('openapi.yaml') + # If no exception is raised by validate_spec(), the spec is valid. validate_spec(spec_dict) -Add ``spec_url`` to validate spec with relative files: + validate_spec({}) -.. code:: python + Traceback (most recent call last): + ... + OpenAPIValidationError: 'openapi' is a required property +Add ``spec_url`` to validate spec with relative files: - from openapi_spec_validator import validate_spec +.. code:: python validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml') @@ -88,16 +101,15 @@ You can also validate spec from url: .. code:: python - from openapi_spec_validator import validate_spec_url + # If no exception is raised by validate_spec_url(), the spec is valid. validate_spec_url('http://example.com/openapi.json') If you want to iterate through validation errors: .. code:: python - from openapi_spec_validator import openapi_v3_spec_validator errors_iterator = openapi_v3_spec_validator.iter_errors(spec) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 5a5d909..eb2884a 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -1,17 +1,12 @@ import logging import argparse -import os -try: - import pathlib -except ImportError: - import pathlib2 as pathlib import sys from openapi_spec_validator import ( - openapi_v2_spec_validator, openapi_v3_spec_validator, all_urls_handler, - file_object_handler, + openapi_v2_spec_validator, openapi_v3_spec_validator, ) from openapi_spec_validator.exceptions import ValidationError +from openapi_spec_validator.readers import read_from_stdin, read_from_filename logger = logging.getLogger(__name__) logging.basicConfig( @@ -20,19 +15,6 @@ ) -def read_from_stdin(filename): - return file_object_handler(sys.stdin), '' - - -def read_from_filename(filename): - if not os.path.isfile(filename): - raise SystemError("No such file {0}".format(filename)) - - filename = os.path.abspath(filename) - uri = pathlib.Path(filename).as_uri() - return all_urls_handler(uri), uri - - def main(args=None): parser = argparse.ArgumentParser() parser.add_argument('filename', help="Absolute or relative path to file") diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py new file mode 100644 index 0000000..5fb5f80 --- /dev/null +++ b/openapi_spec_validator/readers.py @@ -0,0 +1,21 @@ +import os +try: + import pathlib +except ImportError: + import pathlib2 as pathlib +import sys + +from openapi_spec_validator import all_urls_handler, file_object_handler + + +def read_from_stdin(filename): + return file_object_handler(sys.stdin), '' + + +def read_from_filename(filename): + if not os.path.isfile(filename): + raise IOError("No such file: {0}".format(filename)) + + filename = os.path.abspath(filename) + uri = pathlib.Path(filename).as_uri() + return all_urls_handler(uri), uri From 667fb017f77db705b083008a1c74366ff4c9a922 Mon Sep 17 00:00:00 2001 From: Gavin Hurlbut Date: Sat, 18 Apr 2020 20:42:47 -0700 Subject: [PATCH 063/371] Switched to using requests rather than direct use of urllib3 - Use a StringIO buffer as YAML is stupid and won't use a Byte Stream --- openapi_spec_validator/handlers.py | 19 ++++++++++++++----- requirements.txt | 1 + setup.cfg | 1 + 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/openapi_spec_validator/handlers.py b/openapi_spec_validator/handlers.py index 177c007..f7c3d3f 100644 --- a/openapi_spec_validator/handlers.py +++ b/openapi_spec_validator/handlers.py @@ -1,9 +1,10 @@ """OpenAPI spec validator handlers module.""" import contextlib +from io import StringIO from six.moves.urllib.parse import urlparse -from six.moves.urllib.request import urlopen from yaml import load +import requests from openapi_spec_validator.loaders import ExtendedSafeLoader @@ -30,8 +31,16 @@ def __init__(self, *allowed_schemes, **options): self.allowed_schemes = allowed_schemes def __call__(self, url, timeout=1): - assert urlparse(url).scheme in self.allowed_schemes - - f = urlopen(url, timeout=timeout) - with contextlib.closing(f) as fh: + scheme = urlparse(url).scheme + assert scheme in self.allowed_schemes + + if scheme == "file": + filename = url[7:] + with open(filename) as fh: + return super(UrlHandler, self).__call__(fh) + + response = requests.get(url, timeout=timeout) + response.raise_for_status() + data = response.text + with contextlib.closing(StringIO(data)) as fh: return super(UrlHandler, self).__call__(fh) diff --git a/requirements.txt b/requirements.txt index 39aa4a7..5435183 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ jsonschema PyYAML==4.2b4 six==1.12.0 +requests diff --git a/setup.cfg b/setup.cfg index a7491df..52fc9fd 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,6 +29,7 @@ install_requires = PyYAML>=5.1 six pathlib2; python_version<"3.0" + requests tests_require = mock; python_version<"3.0" pytest From 0499fd7d70084cdf2a89dfeed481578914572441 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 2 Nov 2020 23:44:48 +0000 Subject: [PATCH 064/371] Move handlers to separate package --- openapi_spec_validator/handlers.py | 46 --------------------- openapi_spec_validator/handlers/__init__.py | 11 +++++ openapi_spec_validator/handlers/base.py | 13 ++++++ openapi_spec_validator/handlers/file.py | 26 ++++++++++++ openapi_spec_validator/handlers/requests.py | 31 ++++++++++++++ openapi_spec_validator/handlers/urllib.py | 23 +++++++++++ setup.cfg | 2 +- 7 files changed, 105 insertions(+), 47 deletions(-) delete mode 100644 openapi_spec_validator/handlers.py create mode 100644 openapi_spec_validator/handlers/__init__.py create mode 100644 openapi_spec_validator/handlers/base.py create mode 100644 openapi_spec_validator/handlers/file.py create mode 100644 openapi_spec_validator/handlers/requests.py create mode 100644 openapi_spec_validator/handlers/urllib.py diff --git a/openapi_spec_validator/handlers.py b/openapi_spec_validator/handlers.py deleted file mode 100644 index f7c3d3f..0000000 --- a/openapi_spec_validator/handlers.py +++ /dev/null @@ -1,46 +0,0 @@ -"""OpenAPI spec validator handlers module.""" -import contextlib -from io import StringIO - -from six.moves.urllib.parse import urlparse -from yaml import load -import requests - -from openapi_spec_validator.loaders import ExtendedSafeLoader - - -class FileObjectHandler(object): - """OpenAPI spec validator file-like object handler.""" - - def __init__(self, **options): - self.options = options - - @property - def loader(self): - return self.options.get('loader', ExtendedSafeLoader) - - def __call__(self, f): - return load(f, self.loader) - - -class UrlHandler(FileObjectHandler): - """OpenAPI spec validator URL scheme handler.""" - - def __init__(self, *allowed_schemes, **options): - super(UrlHandler, self).__init__(**options) - self.allowed_schemes = allowed_schemes - - def __call__(self, url, timeout=1): - scheme = urlparse(url).scheme - assert scheme in self.allowed_schemes - - if scheme == "file": - filename = url[7:] - with open(filename) as fh: - return super(UrlHandler, self).__call__(fh) - - response = requests.get(url, timeout=timeout) - response.raise_for_status() - data = response.text - with contextlib.closing(StringIO(data)) as fh: - return super(UrlHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/__init__.py b/openapi_spec_validator/handlers/__init__.py new file mode 100644 index 0000000..b357f8d --- /dev/null +++ b/openapi_spec_validator/handlers/__init__.py @@ -0,0 +1,11 @@ +from openapi_spec_validator.handlers.file import FileObjectHandler +try: + from openapi_spec_validator.handlers.requests import ( + UrlRequestsHandler as UrlHandler, + ) +except ImportError: + from openapi_spec_validator.handlers.urllib import ( + UrllibHandler as UrlHandler, + ) + +__all__ = ['FileObjectHandler', 'UrlHandler'] diff --git a/openapi_spec_validator/handlers/base.py b/openapi_spec_validator/handlers/base.py new file mode 100644 index 0000000..0c58400 --- /dev/null +++ b/openapi_spec_validator/handlers/base.py @@ -0,0 +1,13 @@ +"""OpenAPI spec validator handlers file module.""" +from openapi_spec_validator.loaders import ExtendedSafeLoader + + +class BaseHandler(object): + """OpenAPI spec validator base handler.""" + + def __init__(self, **options): + self.options = options + + @property + def loader(self): + return self.options.get('loader', ExtendedSafeLoader) diff --git a/openapi_spec_validator/handlers/file.py b/openapi_spec_validator/handlers/file.py new file mode 100644 index 0000000..5db8201 --- /dev/null +++ b/openapi_spec_validator/handlers/file.py @@ -0,0 +1,26 @@ +"""OpenAPI spec validator handlers file module.""" +from six import StringIO +from yaml import load + +from openapi_spec_validator.handlers.base import BaseHandler + + +class FileObjectHandler(BaseHandler): + """OpenAPI spec validator file-like object handler.""" + + def __call__(self, f): + return load(f, self.loader) + + +class FileHandler(FileObjectHandler): + """OpenAPI spec validator file path handler.""" + + def __call__(self, f): + if isinstance(f, StringIO): + return super(FileHandler, self).__call__(f) + + assert f.startswith("file") + + filename = f[7:] + with open(filename) as fh: + return super(FileHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/requests.py b/openapi_spec_validator/handlers/requests.py new file mode 100644 index 0000000..98d5234 --- /dev/null +++ b/openapi_spec_validator/handlers/requests.py @@ -0,0 +1,31 @@ +"""OpenAPI spec validator handlers requests module.""" +from __future__ import absolute_import +import contextlib + +from six import StringIO +from six.moves.urllib.parse import urlparse +import requests + +from openapi_spec_validator.handlers.file import FileHandler + + +class UrlRequestsHandler(FileHandler): + """OpenAPI spec validator URL (requests) scheme handler.""" + + def __init__(self, *allowed_schemes, **options): + super(UrlRequestsHandler, self).__init__(**options) + self.allowed_schemes = allowed_schemes + + def __call__(self, url, timeout=1): + scheme = urlparse(url).scheme + assert scheme in self.allowed_schemes + + if scheme == "file": + return super(UrlRequestsHandler, self).__call__(url) + + response = requests.get(url, timeout=timeout) + response.raise_for_status() + + data = StringIO(response.text) + with contextlib.closing(data) as fh: + return super(UrlRequestsHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/urllib.py b/openapi_spec_validator/handlers/urllib.py new file mode 100644 index 0000000..d85b0c5 --- /dev/null +++ b/openapi_spec_validator/handlers/urllib.py @@ -0,0 +1,23 @@ +"""OpenAPI spec validator handlers requests module.""" +import contextlib + +from six.moves.urllib.parse import urlparse +from six.moves.urllib.request import urlopen + +from openapi_spec_validator.handlers.file import FileObjectHandler + + +class UrllibHandler(FileObjectHandler): + """OpenAPI spec validator URL (urllib) scheme handler.""" + + def __init__(self, *allowed_schemes, **options): + super(UrllibHandler, self).__init__(**options) + self.allowed_schemes = allowed_schemes + + def __call__(self, url, timeout=1): + assert urlparse(url).scheme in self.allowed_schemes + + f = urlopen(url, timeout=timeout) + + with contextlib.closing(f) as fh: + return super(UrllibHandler, self).__call__(fh) diff --git a/setup.cfg b/setup.cfg index 52fc9fd..7ad9e1f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,6 @@ install_requires = PyYAML>=5.1 six pathlib2; python_version<"3.0" - requests tests_require = mock; python_version<"3.0" pytest @@ -47,6 +46,7 @@ exclude = [options.extras_require] dev = pre-commit +requests = requests [tool:pytest] addopts = -sv --flake8 --junitxml reports/junit.xml --cov openapi_spec_validator --cov-report term-missing --cov-report xml:reports/coverage.xml From f1267acd81e9d7fc750f634ba5736c4ca82543cb Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 18 Feb 2021 18:55:33 +0000 Subject: [PATCH 065/371] urllib handler tests --- tests/integration/test_shortcuts.py | 56 +++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 4682fea..f27aa18 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -1,8 +1,13 @@ import pytest -from openapi_spec_validator import validate_spec, validate_spec_url -from openapi_spec_validator import validate_v2_spec, validate_v2_spec_url +from openapi_spec_validator import ( + validate_spec, validate_spec_url, + validate_v2_spec, validate_v2_spec_url, + validate_spec_url_factory, + openapi_v2_spec_validator, openapi_v3_spec_validator, +) from openapi_spec_validator.exceptions import OpenAPIValidationError +from openapi_spec_validator.handlers.urllib import UrllibHandler class BaseTestValidValidteV2Spec: @@ -31,11 +36,32 @@ def test_failed(self, spec): validate_spec(spec) -class BaseTestValidValidteV2SpecUrl: +class BaseTestValidValidateSpecUrl: + + @pytest.fixture + def urllib_handlers(self): + all_urls_handler = UrllibHandler('http', 'https', 'file') + return { + '': all_urls_handler, + 'http': UrllibHandler('http'), + 'https': UrllibHandler('https'), + 'file': UrllibHandler('file'), + } + + +class BaseTestValidValidateV2SpecUrl(BaseTestValidValidateSpecUrl): + + @pytest.fixture + def validate_spec_url_callable(self, urllib_handlers): + return validate_spec_url_factory( + openapi_v2_spec_validator.validate, urllib_handlers) def test_valid(self, spec_url): validate_v2_spec_url(spec_url) + def test_urllib_valid(self, validate_spec_url_callable, spec_url): + validate_spec_url_callable(spec_url) + class BaseTestFaliedValidateV2SpecUrl: @@ -44,11 +70,19 @@ def test_failed(self, spec_url): validate_v2_spec_url(spec_url) -class BaseTestValidValidteSpecUrl: +class BaseTestValidValidateV3SpecUrl(BaseTestValidValidateSpecUrl): - def test_valid(self, spec_url): + @pytest.fixture + def validate_spec_url_callable(self, urllib_handlers): + return validate_spec_url_factory( + openapi_v3_spec_validator.validate, urllib_handlers) + + def test_default_valid(self, spec_url): validate_spec_url(spec_url) + def test_urllib_valid(self, validate_spec_url_callable, spec_url): + validate_spec_url_callable(spec_url) + class BaseTestFaliedValidateSpecUrl: @@ -78,7 +112,7 @@ def spec(self, factory): return factory.spec_from_file("data/v3.0/petstore.yaml") -class TestPetstoreV2Example(BaseTestValidValidteV2SpecUrl): +class TestPetstoreV2Example(BaseTestValidValidateV2SpecUrl): @pytest.fixture def spec_url(self): @@ -89,7 +123,7 @@ def spec_url(self): ) -class TestApiV2WithExampe(BaseTestValidValidteV2SpecUrl): +class TestApiV2WithExampe(BaseTestValidValidateV2SpecUrl): @pytest.fixture def spec_url(self): @@ -100,7 +134,7 @@ def spec_url(self): ) -class TestPetstoreV2ExpandedExample(BaseTestValidValidteV2SpecUrl): +class TestPetstoreV2ExpandedExample(BaseTestValidValidateV2SpecUrl): @pytest.fixture def spec_url(self): @@ -111,7 +145,7 @@ def spec_url(self): ) -class TestPetstoreExample(BaseTestValidValidteSpecUrl): +class TestPetstoreExample(BaseTestValidValidateV3SpecUrl): @pytest.fixture def spec_url(self): @@ -122,7 +156,7 @@ def spec_url(self): ) -class TestApiWithExampe(BaseTestValidValidteSpecUrl): +class TestApiWithExampe(BaseTestValidValidateV3SpecUrl): @pytest.fixture def spec_url(self): @@ -133,7 +167,7 @@ def spec_url(self): ) -class TestPetstoreExpandedExample(BaseTestValidValidteSpecUrl): +class TestPetstoreExpandedExample(BaseTestValidValidateV3SpecUrl): @pytest.fixture def spec_url(self): From 20ca8cd2861d03c39c70cf25c1a04ef689c90db6 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 18 Feb 2021 19:12:44 +0000 Subject: [PATCH 066/371] Handlers timeout setup fix --- openapi_spec_validator/handlers/base.py | 9 ++------- openapi_spec_validator/handlers/file.py | 4 ++++ openapi_spec_validator/handlers/requests.py | 5 +++-- openapi_spec_validator/handlers/urllib.py | 5 +++-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/openapi_spec_validator/handlers/base.py b/openapi_spec_validator/handlers/base.py index 0c58400..c6819a8 100644 --- a/openapi_spec_validator/handlers/base.py +++ b/openapi_spec_validator/handlers/base.py @@ -1,13 +1,8 @@ """OpenAPI spec validator handlers file module.""" -from openapi_spec_validator.loaders import ExtendedSafeLoader class BaseHandler(object): """OpenAPI spec validator base handler.""" - def __init__(self, **options): - self.options = options - - @property - def loader(self): - return self.options.get('loader', ExtendedSafeLoader) + def __call__(self, f): + raise NotImplementedError diff --git a/openapi_spec_validator/handlers/file.py b/openapi_spec_validator/handlers/file.py index 5db8201..e4ac103 100644 --- a/openapi_spec_validator/handlers/file.py +++ b/openapi_spec_validator/handlers/file.py @@ -3,11 +3,15 @@ from yaml import load from openapi_spec_validator.handlers.base import BaseHandler +from openapi_spec_validator.loaders import ExtendedSafeLoader class FileObjectHandler(BaseHandler): """OpenAPI spec validator file-like object handler.""" + def __init__(self, loader=ExtendedSafeLoader): + self.loader = loader + def __call__(self, f): return load(f, self.loader) diff --git a/openapi_spec_validator/handlers/requests.py b/openapi_spec_validator/handlers/requests.py index 98d5234..e998dfe 100644 --- a/openapi_spec_validator/handlers/requests.py +++ b/openapi_spec_validator/handlers/requests.py @@ -13,17 +13,18 @@ class UrlRequestsHandler(FileHandler): """OpenAPI spec validator URL (requests) scheme handler.""" def __init__(self, *allowed_schemes, **options): + self.timeout = options.pop('timeout', 10) super(UrlRequestsHandler, self).__init__(**options) self.allowed_schemes = allowed_schemes - def __call__(self, url, timeout=1): + def __call__(self, url): scheme = urlparse(url).scheme assert scheme in self.allowed_schemes if scheme == "file": return super(UrlRequestsHandler, self).__call__(url) - response = requests.get(url, timeout=timeout) + response = requests.get(url, timeout=self.timeout) response.raise_for_status() data = StringIO(response.text) diff --git a/openapi_spec_validator/handlers/urllib.py b/openapi_spec_validator/handlers/urllib.py index d85b0c5..39544a2 100644 --- a/openapi_spec_validator/handlers/urllib.py +++ b/openapi_spec_validator/handlers/urllib.py @@ -11,13 +11,14 @@ class UrllibHandler(FileObjectHandler): """OpenAPI spec validator URL (urllib) scheme handler.""" def __init__(self, *allowed_schemes, **options): + self.timeout = options.pop('timeout', 10) super(UrllibHandler, self).__init__(**options) self.allowed_schemes = allowed_schemes - def __call__(self, url, timeout=1): + def __call__(self, url): assert urlparse(url).scheme in self.allowed_schemes - f = urlopen(url, timeout=timeout) + f = urlopen(url, timeout=self.timeout) with contextlib.closing(f) as fh: return super(UrllibHandler, self).__call__(fh) From 390cacf980ce45c8c2448217e7d59ca2766c4940 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 18 Feb 2021 21:46:55 +0000 Subject: [PATCH 067/371] Docker publish github action --- .github/workflows/docker-publish.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/docker-publish.yml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..d94798a --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,21 @@ +# This workflow will upload Docker image when a release is created +# For more information see: https://github.com/marketplace/actions/docker-build-push-action + +name: Publish docker image + +on: + workflow_dispatch: + release: + types: + - created + +jobs: + publish: + steps: + - name: Publish image + uses: mr-smithers-excellent/docker-build-push@v5 + with: + image: p1c2u/openapi-spec-validator + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} From aeb6fd9349e2ec5bf848502aa809a0e30dbf8f4b Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 18 Feb 2021 22:33:13 +0000 Subject: [PATCH 068/371] publish docker image with official actions --- .github/workflows/docker-publish.yml | 36 +++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index d94798a..734f4f4 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -10,12 +10,32 @@ on: - created jobs: - publish: + docker: + runs-on: ubuntu-latest steps: - - name: Publish image - uses: mr-smithers-excellent/docker-build-push@v5 - with: - image: p1c2u/openapi-spec-validator - registry: docker.io - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + - uses: actions/checkout@v2 + - name: Docker meta + id: docker_meta + uses: crazy-max/ghaction-docker-meta@v1 + with: + images: | + p1c2u/openapi-spec-validator + tag-semver: | + {{version}} + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.docker_meta.outputs.tags }} + labels: ${{ steps.docker_meta.outputs.labels }} From 9eeb6c96878b3705616e56dd0933efdc43cb2c8b Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 18 Feb 2021 23:40:02 +0000 Subject: [PATCH 069/371] Detect duplicate operationId fix --- openapi_spec_validator/exceptions.py | 4 +++ openapi_spec_validator/validators.py | 38 +++++++++++++++++++++------- tests/integration/test_validators.py | 35 +++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 9 deletions(-) diff --git a/openapi_spec_validator/exceptions.py b/openapi_spec_validator/exceptions.py index 85d8c8a..bb44ce0 100644 --- a/openapi_spec_validator/exceptions.py +++ b/openapi_spec_validator/exceptions.py @@ -15,3 +15,7 @@ class ParameterDuplicateError(OpenAPIValidationError): class UnresolvableParameterError(OpenAPIValidationError): pass + + +class DuplicateOperationIDError(OpenAPIValidationError): + pass diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index 219c595..ef03b55 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -6,7 +6,7 @@ from openapi_spec_validator.exceptions import ( ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, - OpenAPIValidationError + OpenAPIValidationError, DuplicateOperationIDError, ) from openapi_spec_validator.decorators import ValidationErrorWrapper from openapi_spec_validator.factories import Draft4ExtendedValidatorFactory @@ -157,8 +157,10 @@ def _iter_value_errors(self, schema, value): class PathsValidator(object): - def __init__(self, dereferencer): + def __init__(self, dereferencer, operation_ids_registry=None): self.dereferencer = dereferencer + self.operation_ids_registry = [] if operation_ids_registry is None \ + else operation_ids_registry @wraps_errors def iter_errors(self, paths): @@ -168,13 +170,17 @@ def iter_errors(self, paths): yield err def _iter_path_errors(self, url, path_item): - return PathValidator(self.dereferencer).iter_errors(url, path_item) + return PathValidator( + self.dereferencer, self.operation_ids_registry).iter_errors( + url, path_item) class PathValidator(object): - def __init__(self, dereferencer): + def __init__(self, dereferencer, operation_ids_registry=None): self.dereferencer = dereferencer + self.operation_ids_registry = [] if operation_ids_registry is None \ + else operation_ids_registry @wraps_errors def iter_errors(self, url, path_item): @@ -184,7 +190,9 @@ def iter_errors(self, url, path_item): yield err def _iter_path_item_errors(self, url, path_item): - return PathItemValidator(self.dereferencer).iter_errors(url, path_item) + return PathItemValidator( + self.dereferencer, self.operation_ids_registry).iter_errors( + url, path_item) class PathItemValidator(object): @@ -193,8 +201,10 @@ class PathItemValidator(object): 'get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace', ] - def __init__(self, dereferencer): + def __init__(self, dereferencer, operation_ids_registry=None): self.dereferencer = dereferencer + self.operation_ids_registry = [] if operation_ids_registry is None \ + else operation_ids_registry @wraps_errors def iter_errors(self, url, path_item): @@ -213,8 +223,9 @@ def iter_errors(self, url, path_item): yield err def _iter_operation_errors(self, url, name, operation, path_parameters): - return OperationValidator(self.dereferencer).iter_errors( - url, name, operation, path_parameters) + return OperationValidator( + self.dereferencer, self.operation_ids_registry).iter_errors( + url, name, operation, path_parameters) def _iter_parameters_errors(self, parameters): return ParametersValidator(self.dereferencer).iter_errors(parameters) @@ -222,14 +233,23 @@ def _iter_parameters_errors(self, parameters): class OperationValidator(object): - def __init__(self, dereferencer): + def __init__(self, dereferencer, seen_ids=None): self.dereferencer = dereferencer + self.seen_ids = [] if seen_ids is None else seen_ids @wraps_errors def iter_errors(self, url, name, operation, path_parameters=None): path_parameters = path_parameters or [] operation_deref = self.dereferencer.dereference(operation) + operation_id = operation_deref.get('operationId') + if operation_id is not None and operation_id in self.seen_ids: + yield DuplicateOperationIDError( + "Operation ID '{0}' for '{1}' in '{2}' is not unique".format( + operation_id, name, url) + ) + self.seen_ids.append(operation_id) + parameters = operation_deref.get('parameters', []) for err in self._iter_parameters_errors(parameters): yield err diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index db4a273..1a712fe 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -1,5 +1,6 @@ from openapi_spec_validator.exceptions import ( ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError, + DuplicateOperationIDError, ) @@ -80,6 +81,40 @@ def test_same_parameters_names(self, validator): errors_list = list(errors) assert errors_list == [] + def test_same_operation_ids(self, validator): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test': { + 'get': { + 'operationId': 'operation1', + 'responses': {}, + }, + 'post': { + 'operationId': 'operation1', + 'responses': {}, + }, + }, + '/test2': { + 'get': { + 'operationId': 'operation1', + 'responses': {}, + }, + }, + }, + } + + errors = validator.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 2 + assert errors_list[0].__class__ == DuplicateOperationIDError + assert errors_list[1].__class__ == DuplicateOperationIDError + def test_allow_allof_required_no_properties(self, validator): spec = { 'openapi': '3.0.0', From c7fc21c78c23dce4fcd8646f2c6926043a69a324 Mon Sep 17 00:00:00 2001 From: Hubert LOBIT Date: Wed, 25 Mar 2020 13:28:12 +0100 Subject: [PATCH 070/371] Add a failing test: `default` and `$ref` --- tests/integration/test_validators.py | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 1a712fe..740c3cd 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -311,3 +311,48 @@ def test_parameter_default_value_wrong_type_swagger(self, assert errors_list[0].message == ( "'invaldtype' is not of type 'integer'" ) + + def test_parameter_default_value_with_reference(self, validator): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/': { + 'get': { + 'responses': { + '200': { + 'description': 'OK', + 'schema': {'type': 'object'}, + }, + }, + 'parameters': [ + { + 'name': 'param1', + 'in': 'query', + 'schema': { + 'allOf':[{ + '$ref': '#/components/schemas/type', + }], + 'default': 1, + }, + }, + ], + }, + }, + }, + 'components': { + 'schemas': { + 'type': { + 'type': 'integer', + } + }, + }, + } + + errors = validator.iter_errors(spec) + + errors_list = list(errors) + assert errors_list == [] From fe3788875cd48928370a0731a1eb9ca9630a281e Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 19 Feb 2021 16:52:51 +0000 Subject: [PATCH 071/371] Default value validation with OAS30Validator --- openapi_spec_validator/validators.py | 28 +++++++++++++++++++--------- tests/integration/test_validators.py | 7 +------ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index ef03b55..5bedea8 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -2,6 +2,7 @@ import string from jsonschema.validators import RefResolver +from openapi_schema_validator import OAS30Validator, oas30_format_checker from six import iteritems from openapi_spec_validator.exceptions import ( @@ -9,7 +10,6 @@ OpenAPIValidationError, DuplicateOperationIDError, ) from openapi_spec_validator.decorators import ValidationErrorWrapper -from openapi_spec_validator.factories import Draft4ExtendedValidatorFactory from openapi_spec_validator.managers import ResolverManager log = logging.getLogger(__name__) @@ -149,10 +149,7 @@ def iter_errors(self, schema, require_properties=True): yield err def _iter_value_errors(self, schema, value): - resolver = RefResolver.from_schema(schema) - validator = Draft4ExtendedValidatorFactory.from_resolver(resolver) - for err in validator(schema, resolver=resolver).iter_errors(value): - yield err + return ValueValidator(self.dereferencer).iter_errors(schema, value) class PathsValidator(object): @@ -327,10 +324,23 @@ def iter_errors(self, parameter): yield err def _iter_value_errors(self, schema, value): - resolver = RefResolver.from_schema(schema) - validator = Draft4ExtendedValidatorFactory.from_resolver(resolver) - for err in validator(schema, resolver=resolver).iter_errors(value): - yield err + return ValueValidator(self.dereferencer).iter_errors(schema, value) def _iter_schema_errors(self, schema): return SchemaValidator(self.dereferencer).iter_errors(schema) + + +class ValueValidator(object): + + def __init__(self, dereferencer): + self.dereferencer = dereferencer + + @wraps_errors + def iter_errors(self, schema, value): + validator = OAS30Validator( + schema, + resolver=self.dereferencer.resolver_manager.resolver, + format_checker=oas30_format_checker, + ) + for err in validator.iter_errors(value): + yield err diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 740c3cd..519030f 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -322,12 +322,7 @@ def test_parameter_default_value_with_reference(self, validator): 'paths': { '/test/': { 'get': { - 'responses': { - '200': { - 'description': 'OK', - 'schema': {'type': 'object'}, - }, - }, + 'responses': {}, 'parameters': [ { 'name': 'param1', From 2f5321a451e9c70222cc78f0f90e9bd0042691e8 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 19 Feb 2021 16:55:38 +0000 Subject: [PATCH 072/371] Openapi schema validator added to dependencies --- requirements.txt | 1 + setup.cfg | 1 + 2 files changed, 2 insertions(+) diff --git a/requirements.txt b/requirements.txt index 5435183..04295e6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ jsonschema +openapi-schema-validator PyYAML==4.2b4 six==1.12.0 requests diff --git a/setup.cfg b/setup.cfg index 7ad9e1f..b1af0ac 100644 --- a/setup.cfg +++ b/setup.cfg @@ -26,6 +26,7 @@ setup_requires = setuptools install_requires = jsonschema + openapi-schema-validator PyYAML>=5.1 six pathlib2; python_version<"3.0" From 0144b5b018764e8bb4a5c2cbec30b72ee2b11edc Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 19 Feb 2021 17:05:21 +0000 Subject: [PATCH 073/371] openapi schema validator tests fix --- tests/integration/test_validators.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 519030f..3bb4438 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -235,7 +235,7 @@ def test_default_value_wrong_type(self, validator): assert len(errors_list) == 1 assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( - "'invaldtype' is not of type 'integer'" + "'invaldtype' is not of type integer" ) def test_parameter_default_value_wrong_type(self, validator): @@ -270,7 +270,7 @@ def test_parameter_default_value_wrong_type(self, validator): assert len(errors_list) == 1 assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( - "'invaldtype' is not of type 'integer'" + "'invaldtype' is not of type integer" ) def test_parameter_default_value_wrong_type_swagger(self, @@ -309,7 +309,7 @@ def test_parameter_default_value_wrong_type_swagger(self, assert len(errors_list) == 1 assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( - "'invaldtype' is not of type 'integer'" + "'invaldtype' is not of type integer" ) def test_parameter_default_value_with_reference(self, validator): @@ -328,7 +328,7 @@ def test_parameter_default_value_with_reference(self, validator): 'name': 'param1', 'in': 'query', 'schema': { - 'allOf':[{ + 'allOf': [{ '$ref': '#/components/schemas/type', }], 'default': 1, From 152b19363624575527bc1f3692eebbf4cb04d359 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 24 Feb 2021 21:29:42 +0000 Subject: [PATCH 074/371] Spec 3.0 schema --- openapi_spec_validator/__init__.py | 4 +- .../resources/schemas/v3.0/schema.json | 1654 +++++++++++++++++ tests/integration/test_validators.py | 39 +- 3 files changed, 1689 insertions(+), 8 deletions(-) create mode 100644 openapi_spec_validator/resources/schemas/v3.0/schema.json diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index b2581e6..d386321 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -39,8 +39,8 @@ resolver_handlers=default_handlers, ) -# v3.0.0 spec -schema_v3, schema_v3_url = get_openapi_schema('3.0.0') +# v3.0 spec +schema_v3, schema_v3_url = get_openapi_schema('3.0') openapi_v3_validator_factory = JSONSpecValidatorFactory( schema_v3, schema_v3_url, resolver_handlers=default_handlers, diff --git a/openapi_spec_validator/resources/schemas/v3.0/schema.json b/openapi_spec_validator/resources/schemas/v3.0/schema.json new file mode 100644 index 0000000..9a377c5 --- /dev/null +++ b/openapi_spec_validator/resources/schemas/v3.0/schema.json @@ -0,0 +1,1654 @@ +{ + "title": "A JSON Schema for OpenAPI 3.0.X.", + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Validation schema for OpenAPI Specification 3.0.X.", + "type": "object", + "required": [ + "openapi", + "info", + "paths" + ], + "properties": { + "openapi": { + "type": "string", + "pattern": "^3\\.0\\.\\d(-.+)?$" + }, + "info": { + "$ref": "#/definitions/Info" + }, + "externalDocs": { + "$ref": "#/definitions/ExternalDocumentation" + }, + "servers": { + "type": "array", + "items": { + "$ref": "#/definitions/Server" + } + }, + "security": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRequirement" + } + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "uniqueItems": true + }, + "paths": { + "$ref": "#/definitions/Paths" + }, + "components": { + "$ref": "#/definitions/Components" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false, + "definitions": { + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "Info": { + "type": "object", + "required": [ + "title", + "version" + ], + "properties": { + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "termsOfService": { + "type": "string", + "format": "uri-reference" + }, + "contact": { + "$ref": "#/definitions/Contact" + }, + "license": { + "$ref": "#/definitions/License" + }, + "version": { + "type": "string" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Contact": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + }, + "email": { + "type": "string", + "format": "email" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "License": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Server": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "variables": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ServerVariable" + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "ServerVariable": { + "type": "object", + "required": [ + "default" + ], + "properties": { + "enum": { + "type": "array", + "items": { + "type": "string" + } + }, + "default": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Components": { + "type": "object", + "properties": { + "schemas": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + } + }, + "responses": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/Response" + } + ] + } + } + }, + "parameters": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/Parameter" + } + ] + } + } + }, + "examples": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/Example" + } + ] + } + } + }, + "requestBodies": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/RequestBody" + } + ] + } + } + }, + "headers": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/Header" + } + ] + } + } + }, + "securitySchemes": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/SecurityScheme" + } + ] + } + } + }, + "links": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/Link" + } + ] + } + } + }, + "callbacks": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/Callback" + } + ] + } + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Schema": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "multipleOf": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true + }, + "maximum": { + "type": "number" + }, + "exclusiveMaximum": { + "type": "boolean", + "default": false + }, + "minimum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "boolean", + "default": false + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "uniqueItems": { + "type": "boolean", + "default": false + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "required": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "enum": { + "type": "array", + "items": { + }, + "minItems": 1, + "uniqueItems": false + }, + "type": { + "type": "string", + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string" + ] + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "allOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "oneOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "anyOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "properties": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + }, + { + "type": "boolean" + } + ], + "default": true + }, + "description": { + "type": "string" + }, + "format": { + "type": "string" + }, + "default": { + }, + "nullable": { + "type": "boolean", + "default": false + }, + "discriminator": { + "$ref": "#/definitions/Discriminator" + }, + "readOnly": { + "type": "boolean", + "default": false + }, + "writeOnly": { + "type": "boolean", + "default": false + }, + "example": { + }, + "externalDocs": { + "$ref": "#/definitions/ExternalDocumentation" + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "xml": { + "$ref": "#/definitions/XML" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "propertyName": { + "type": "string" + }, + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "XML": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "attribute": { + "type": "boolean", + "default": false + }, + "wrapped": { + "type": "boolean", + "default": false + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Response": { + "type": "object", + "required": [ + "description" + ], + "properties": { + "description": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Header" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "content": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MediaType" + } + }, + "links": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Link" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "MediaType": { + "type": "object", + "properties": { + "schema": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "example": { + }, + "examples": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Example" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "encoding": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Encoding" + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false, + "allOf": [ + { + "$ref": "#/definitions/ExampleXORExamples" + } + ] + }, + "Example": { + "type": "object", + "properties": { + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "value": { + }, + "externalValue": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Header": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "required": { + "type": "boolean", + "default": false + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "allowEmptyValue": { + "type": "boolean", + "default": false + }, + "style": { + "type": "string", + "enum": [ + "simple" + ], + "default": "simple" + }, + "explode": { + "type": "boolean" + }, + "allowReserved": { + "type": "boolean", + "default": false + }, + "schema": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "content": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MediaType" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "example": { + }, + "examples": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Example" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false, + "allOf": [ + { + "$ref": "#/definitions/ExampleXORExamples" + }, + { + "$ref": "#/definitions/SchemaXORContent" + } + ] + }, + "Paths": { + "type": "object", + "patternProperties": { + "^\\/": { + "$ref": "#/definitions/PathItem" + }, + "^x-": { + } + }, + "additionalProperties": false + }, + "PathItem": { + "type": "object", + "properties": { + "$ref": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "servers": { + "type": "array", + "items": { + "$ref": "#/definitions/Server" + } + }, + "parameters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Parameter" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "uniqueItems": true + } + }, + "patternProperties": { + "^(get|put|post|delete|options|head|patch|trace)$": { + "$ref": "#/definitions/Operation" + }, + "^x-": { + } + }, + "additionalProperties": false + }, + "Operation": { + "type": "object", + "required": [ + "responses" + ], + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "externalDocs": { + "$ref": "#/definitions/ExternalDocumentation" + }, + "operationId": { + "type": "string" + }, + "parameters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Parameter" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "uniqueItems": true + }, + "requestBody": { + "oneOf": [ + { + "$ref": "#/definitions/RequestBody" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "responses": { + "$ref": "#/definitions/Responses" + }, + "callbacks": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Callback" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "security": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRequirement" + } + }, + "servers": { + "type": "array", + "items": { + "$ref": "#/definitions/Server" + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Responses": { + "type": "object", + "properties": { + "default": { + "oneOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + }, + "patternProperties": { + "^[1-5](?:\\d{2}|XX)$": { + "oneOf": [ + { + "$ref": "#/definitions/Response" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "^x-": { + } + }, + "minProperties": 1, + "additionalProperties": false + }, + "SecurityRequirement": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "externalDocs": { + "$ref": "#/definitions/ExternalDocumentation" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "ExampleXORExamples": { + "description": "Example and examples are mutually exclusive", + "not": { + "required": [ + "example", + "examples" + ] + } + }, + "SchemaXORContent": { + "description": "Schema and content are mutually exclusive, at least one is required", + "not": { + "required": [ + "schema", + "content" + ] + }, + "oneOf": [ + { + "required": [ + "schema" + ] + }, + { + "required": [ + "content" + ], + "description": "Some properties are not allowed if content is present", + "allOf": [ + { + "not": { + "required": [ + "style" + ] + } + }, + { + "not": { + "required": [ + "explode" + ] + } + }, + { + "not": { + "required": [ + "allowReserved" + ] + } + }, + { + "not": { + "required": [ + "example" + ] + } + }, + { + "not": { + "required": [ + "examples" + ] + } + } + ] + } + ] + }, + "Parameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "in": { + "type": "string" + }, + "description": { + "type": "string" + }, + "required": { + "type": "boolean", + "default": false + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "allowEmptyValue": { + "type": "boolean", + "default": false + }, + "style": { + "type": "string" + }, + "explode": { + "type": "boolean" + }, + "allowReserved": { + "type": "boolean", + "default": false + }, + "schema": { + "oneOf": [ + { + "$ref": "#/definitions/Schema" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "content": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MediaType" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "example": { + }, + "examples": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Example" + }, + { + "$ref": "#/definitions/Reference" + } + ] + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false, + "required": [ + "name", + "in" + ], + "allOf": [ + { + "$ref": "#/definitions/ExampleXORExamples" + }, + { + "$ref": "#/definitions/SchemaXORContent" + }, + { + "$ref": "#/definitions/ParameterLocation" + } + ] + }, + "ParameterLocation": { + "description": "Parameter location", + "oneOf": [ + { + "description": "Parameter in path", + "required": [ + "required" + ], + "properties": { + "in": { + "enum": [ + "path" + ] + }, + "style": { + "enum": [ + "matrix", + "label", + "simple" + ], + "default": "simple" + }, + "required": { + "enum": [ + true + ] + } + } + }, + { + "description": "Parameter in query", + "properties": { + "in": { + "enum": [ + "query" + ] + }, + "style": { + "enum": [ + "form", + "spaceDelimited", + "pipeDelimited", + "deepObject" + ], + "default": "form" + } + } + }, + { + "description": "Parameter in header", + "properties": { + "in": { + "enum": [ + "header" + ] + }, + "style": { + "enum": [ + "simple" + ], + "default": "simple" + } + } + }, + { + "description": "Parameter in cookie", + "properties": { + "in": { + "enum": [ + "cookie" + ] + }, + "style": { + "enum": [ + "form" + ], + "default": "form" + } + } + } + ] + }, + "RequestBody": { + "type": "object", + "required": [ + "content" + ], + "properties": { + "description": { + "type": "string" + }, + "content": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MediaType" + } + }, + "required": { + "type": "boolean", + "default": false + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "SecurityScheme": { + "oneOf": [ + { + "$ref": "#/definitions/APIKeySecurityScheme" + }, + { + "$ref": "#/definitions/HTTPSecurityScheme" + }, + { + "$ref": "#/definitions/OAuth2SecurityScheme" + }, + { + "$ref": "#/definitions/OpenIdConnectSecurityScheme" + } + ] + }, + "APIKeySecurityScheme": { + "type": "object", + "required": [ + "type", + "name", + "in" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apiKey" + ] + }, + "name": { + "type": "string" + }, + "in": { + "type": "string", + "enum": [ + "header", + "query", + "cookie" + ] + }, + "description": { + "type": "string" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "HTTPSecurityScheme": { + "type": "object", + "required": [ + "scheme", + "type" + ], + "properties": { + "scheme": { + "type": "string" + }, + "bearerFormat": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "http" + ] + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false, + "oneOf": [ + { + "description": "Bearer", + "properties": { + "scheme": { + "enum": [ + "bearer" + ] + } + } + }, + { + "description": "Non Bearer", + "not": { + "required": [ + "bearerFormat" + ] + }, + "properties": { + "scheme": { + "not": { + "enum": [ + "bearer" + ] + } + } + } + } + ] + }, + "OAuth2SecurityScheme": { + "type": "object", + "required": [ + "type", + "flows" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "oauth2" + ] + }, + "flows": { + "$ref": "#/definitions/OAuthFlows" + }, + "description": { + "type": "string" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "OpenIdConnectSecurityScheme": { + "type": "object", + "required": [ + "type", + "openIdConnectUrl" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "openIdConnect" + ] + }, + "openIdConnectUrl": { + "type": "string", + "format": "uri-reference" + }, + "description": { + "type": "string" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "OAuthFlows": { + "type": "object", + "properties": { + "implicit": { + "$ref": "#/definitions/ImplicitOAuthFlow" + }, + "password": { + "$ref": "#/definitions/PasswordOAuthFlow" + }, + "clientCredentials": { + "$ref": "#/definitions/ClientCredentialsFlow" + }, + "authorizationCode": { + "$ref": "#/definitions/AuthorizationCodeOAuthFlow" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "ImplicitOAuthFlow": { + "type": "object", + "required": [ + "authorizationUrl", + "scopes" + ], + "properties": { + "authorizationUrl": { + "type": "string", + "format": "uri-reference" + }, + "refreshUrl": { + "type": "string", + "format": "uri-reference" + }, + "scopes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "PasswordOAuthFlow": { + "type": "object", + "required": [ + "tokenUrl" + ], + "properties": { + "tokenUrl": { + "type": "string", + "format": "uri-reference" + }, + "refreshUrl": { + "type": "string", + "format": "uri-reference" + }, + "scopes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "ClientCredentialsFlow": { + "type": "object", + "required": [ + "tokenUrl" + ], + "properties": { + "tokenUrl": { + "type": "string", + "format": "uri-reference" + }, + "refreshUrl": { + "type": "string", + "format": "uri-reference" + }, + "scopes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "AuthorizationCodeOAuthFlow": { + "type": "object", + "required": [ + "authorizationUrl", + "tokenUrl" + ], + "properties": { + "authorizationUrl": { + "type": "string", + "format": "uri-reference" + }, + "tokenUrl": { + "type": "string", + "format": "uri-reference" + }, + "refreshUrl": { + "type": "string", + "format": "uri-reference" + }, + "scopes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false + }, + "Link": { + "type": "object", + "properties": { + "operationId": { + "type": "string" + }, + "operationRef": { + "type": "string", + "format": "uri-reference" + }, + "parameters": { + "type": "object", + "additionalProperties": { + } + }, + "requestBody": { + }, + "description": { + "type": "string" + }, + "server": { + "$ref": "#/definitions/Server" + } + }, + "patternProperties": { + "^x-": { + } + }, + "additionalProperties": false, + "not": { + "description": "Operation Id and Operation Ref are mutually exclusive", + "required": [ + "operationId", + "operationRef" + ] + } + }, + "Callback": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PathItem" + }, + "patternProperties": { + "^x-": { + } + } + }, + "Encoding": { + "type": "object", + "properties": { + "contentType": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Header" + } + }, + "style": { + "type": "string", + "enum": [ + "form", + "spaceDelimited", + "pipeDelimited", + "deepObject" + ] + }, + "explode": { + "type": "boolean" + }, + "allowReserved": { + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 3bb4438..5172b88 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -70,6 +70,7 @@ def test_same_parameters_names(self, validator): 'schema': { 'type': 'integer', }, + 'required': True, }, ], }, @@ -92,17 +93,29 @@ def test_same_operation_ids(self, validator): '/test': { 'get': { 'operationId': 'operation1', - 'responses': {}, + 'responses': { + 'default': { + 'description': 'default response', + }, + }, }, 'post': { 'operationId': 'operation1', - 'responses': {}, + 'responses': { + 'default': { + 'description': 'default response', + }, + }, }, }, '/test2': { 'get': { 'operationId': 'operation1', - 'responses': {}, + 'responses': { + 'default': { + 'description': 'default response', + }, + }, }, }, }, @@ -187,7 +200,11 @@ def test_undocumented_parameter(self, validator): 'paths': { '/test/{param1}/{param2}': { 'get': { - 'responses': {}, + 'responses': { + 'default': { + 'description': 'default response', + }, + }, }, 'parameters': [ { @@ -196,6 +213,7 @@ def test_undocumented_parameter(self, validator): 'schema': { 'type': 'integer', }, + 'required': True, }, ], }, @@ -248,7 +266,11 @@ def test_parameter_default_value_wrong_type(self, validator): 'paths': { '/test/{param1}': { 'get': { - 'responses': {}, + 'responses': { + 'default': { + 'description': 'default response', + }, + }, }, 'parameters': [ { @@ -258,6 +280,7 @@ def test_parameter_default_value_wrong_type(self, validator): 'type': 'integer', 'default': 'invaldtype', }, + 'required': True, }, ], }, @@ -322,7 +345,11 @@ def test_parameter_default_value_with_reference(self, validator): 'paths': { '/test/': { 'get': { - 'responses': {}, + 'responses': { + 'default': { + 'description': 'default response', + }, + }, 'parameters': [ { 'name': 'param1', From 0a52b2c691ba7df9354c1074561216fda0105465 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 24 Feb 2021 21:30:19 +0000 Subject: [PATCH 075/371] Version 0.2.10 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index ca4206a..c31bb57 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.2.9 +current_version = 0.2.10 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 3268ea4..46f1f6f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.9 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.10 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index b2581e6..e124b39 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.9' +__version__ = '0.2.10' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From 1ae046d061262fc5cadd60867c190ce0f8370467 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 24 Feb 2021 21:54:30 +0000 Subject: [PATCH 076/371] Version 0.3.0 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index c31bb57..40ef8b0 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.2.10 +current_version = 0.3.0 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 46f1f6f..b4dd3b4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.2.10 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.0 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index d50ae77..6ffd254 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.2.10' +__version__ = '0.3.0' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From 0a6baecb7b62c3a0f58f522ed1f63beb7db1a93e Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 24 Feb 2021 22:00:53 +0000 Subject: [PATCH 077/371] description fix --- README.rst | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 773a323..7764f6a 100644 --- a/README.rst +++ b/README.rst @@ -22,7 +22,7 @@ OpenAPI Spec Validator is a Python library that validates OpenAPI Specs against the `OpenAPI 2.0 (aka Swagger) `__ and `OpenAPI -3.0.0 `__ +3.0 `__ specification. The validator aims to check for full compliance with the Specification. diff --git a/setup.cfg b/setup.cfg index b1af0ac..62422e1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openapi-spec-validator -description = OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0.0 spec validator +description = OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator long_description = file: README.rst long-description-content-type = text/x-rst; charset=UTF-8 keywords = openapi, swagger, schema From d3b0925991dec06c99c903a54bbb705910782923 Mon Sep 17 00:00:00 2001 From: Matti Schneider Date: Tue, 23 Mar 2021 12:45:11 +0000 Subject: [PATCH 078/371] Document Python validation of Swagger v2 specs --- README.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 7764f6a..6adaeba 100644 --- a/README.rst +++ b/README.rst @@ -73,7 +73,7 @@ or more pythonic way: Examples ******** -Validate spec: +By default, OpenAPI v3 syntax is expected. To validate an OpenAPI v3 spec: .. code:: python @@ -90,6 +90,8 @@ Validate spec: Traceback (most recent call last): ... OpenAPIValidationError: 'openapi' is a required property + +In order to validate a Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec`` instead of ``validate_spec``. You can also explicitly import ``validate_v3_spec`` if you want to disambiguate the expected version. Add ``spec_url`` to validate spec with relative files: From 1f43c6696c831621e30e26d18a73e508ec4027d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Mar 2021 21:55:44 +0000 Subject: [PATCH 079/371] Bump pyyaml from 4.2b4 to 5.4 Bumps [pyyaml](https://github.com/yaml/pyyaml) from 4.2b4 to 5.4. - [Release notes](https://github.com/yaml/pyyaml/releases) - [Changelog](https://github.com/yaml/pyyaml/blob/master/CHANGES) - [Commits](https://github.com/yaml/pyyaml/commits/5.4) Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 04295e6..b33f541 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ jsonschema openapi-schema-validator -PyYAML==4.2b4 +PyYAML==5.4 six==1.12.0 requests From 11c9ff594d3dc562c93d57744b8f04ef2a13ecab Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 27 Mar 2021 21:10:05 +0000 Subject: [PATCH 080/371] Bump pyyaml to 5.3.1 latest with 27 and 35 support --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b33f541..dac7189 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ jsonschema openapi-schema-validator -PyYAML==5.4 +PyYAML==5.3.1 six==1.12.0 requests From 3979ff63d1b6e73de0d9d926584daafdf6ad657d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 28 Mar 2021 18:53:01 +0100 Subject: [PATCH 081/371] Run python tests on windows --- .github/workflows/python-test.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 9d22fb3..4a36162 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -10,10 +10,11 @@ on: jobs: test: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9] + os: [windows-latest, ubuntu-latest] fail-fast: false steps: - uses: actions/checkout@v2 @@ -27,7 +28,9 @@ jobs: pip install -r requirements.txt pip install -r requirements_dev.txt pip install -e . + shell: bash - name: Test run: python setup.py test + shell: bash - name: Upload coverage uses: codecov/codecov-action@v1 From 44cf7efef4a43403c0a8ae1283417648aa1a563d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 28 Mar 2021 19:01:37 +0100 Subject: [PATCH 082/371] File handler uri to os path convert fix --- openapi_spec_validator/handlers/file.py | 13 +++++++------ openapi_spec_validator/handlers/utils.py | 12 ++++++++++++ 2 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 openapi_spec_validator/handlers/utils.py diff --git a/openapi_spec_validator/handlers/file.py b/openapi_spec_validator/handlers/file.py index e4ac103..79a4b1f 100644 --- a/openapi_spec_validator/handlers/file.py +++ b/openapi_spec_validator/handlers/file.py @@ -3,6 +3,7 @@ from yaml import load from openapi_spec_validator.handlers.base import BaseHandler +from openapi_spec_validator.handlers.utils import uri_to_path from openapi_spec_validator.loaders import ExtendedSafeLoader @@ -19,12 +20,12 @@ def __call__(self, f): class FileHandler(FileObjectHandler): """OpenAPI spec validator file path handler.""" - def __call__(self, f): - if isinstance(f, StringIO): - return super(FileHandler, self).__call__(f) + def __call__(self, uri): + if isinstance(uri, StringIO): + return super(FileHandler, self).__call__(uri) - assert f.startswith("file") + assert uri.startswith("file") - filename = f[7:] - with open(filename) as fh: + filepath = uri_to_path(uri) + with open(filepath) as fh: return super(FileHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/utils.py b/openapi_spec_validator/handlers/utils.py new file mode 100644 index 0000000..8b68830 --- /dev/null +++ b/openapi_spec_validator/handlers/utils.py @@ -0,0 +1,12 @@ +import os.path + +from six.moves.urllib.parse import urlparse, unquote +from six.moves.urllib.request import url2pathname + + +def uri_to_path(uri): + parsed = urlparse(uri) + host = "{0}{0}{mnt}{0}".format(os.path.sep, mnt=parsed.netloc) + return os.path.normpath( + os.path.join(host, url2pathname(unquote(parsed.path))) + ) From 61beb8c5044af93fe6ea2a6431cc5cbed17e17ef Mon Sep 17 00:00:00 2001 From: Arcadiy Ivanov Date: Tue, 6 Apr 2021 06:15:10 -0400 Subject: [PATCH 083/371] A `$ref` may be a property name and in such cases it's not hashable This is not a "proper fix" as the proper fix should check if `$ref` is used as a name of the property, but this works for the purposes of #123 fixes #123 --- openapi_spec_validator/decorators.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openapi_spec_validator/decorators.py b/openapi_spec_validator/decorators.py index 27eba96..94529dd 100644 --- a/openapi_spec_validator/decorators.py +++ b/openapi_spec_validator/decorators.py @@ -18,7 +18,8 @@ def __init__(self, instance_resolver): def __call__(self, func): def wrapped(validator, schema_element, instance, schema): - if not isinstance(instance, dict) or '$ref' not in instance: + if (not isinstance(instance, dict) or '$ref' not in instance + or not instance['$ref'].__hash__): for res in func(validator, schema_element, instance, schema): yield res return From b853de47e0f3337f5bdeaca3d04a59d2b33978a9 Mon Sep 17 00:00:00 2001 From: evahala Date: Tue, 11 May 2021 11:29:12 +0300 Subject: [PATCH 084/371] Recurse references in validation JSON schema references can be nested complex schemas. Recurse in dereferencing logic until the returned item is no longer a reference. Also: Added a recursion to test data and fixed a typo in test_shortcuts.py. --- openapi_spec_validator/validators.py | 2 ++ tests/integration/data/v3.0/parent-reference/openapi.yaml | 1 + .../integration/data/v3.0/parent-reference/recursive.yaml | 3 +++ .../data/v3.0/parent-reference/recursive2.yaml | 8 ++++++++ tests/integration/test_shortcuts.py | 2 +- 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/integration/data/v3.0/parent-reference/recursive.yaml create mode 100644 tests/integration/data/v3.0/parent-reference/recursive2.yaml diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index 5bedea8..ee26961 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -34,6 +34,8 @@ def dereference(self, item): ref = item['$ref'] with self.resolver_manager.in_scope(item) as resolver: with resolver.resolving(ref) as target: + if is_ref(target): + target = self.dereference(target) return target diff --git a/tests/integration/data/v3.0/parent-reference/openapi.yaml b/tests/integration/data/v3.0/parent-reference/openapi.yaml index 0f9c1be..dc78953 100644 --- a/tests/integration/data/v3.0/parent-reference/openapi.yaml +++ b/tests/integration/data/v3.0/parent-reference/openapi.yaml @@ -14,6 +14,7 @@ paths: tags: - pets parameters: + - $ref: "recursive.yaml#/parameters/RecursiveReference" - name: limit in: query description: How many items to return at one time (max 100) diff --git a/tests/integration/data/v3.0/parent-reference/recursive.yaml b/tests/integration/data/v3.0/parent-reference/recursive.yaml new file mode 100644 index 0000000..7277c37 --- /dev/null +++ b/tests/integration/data/v3.0/parent-reference/recursive.yaml @@ -0,0 +1,3 @@ +parameters: + RecursiveReference: + $ref : "recursive2.yaml#/parameters/RecursiveReference" diff --git a/tests/integration/data/v3.0/parent-reference/recursive2.yaml b/tests/integration/data/v3.0/parent-reference/recursive2.yaml new file mode 100644 index 0000000..307c89a --- /dev/null +++ b/tests/integration/data/v3.0/parent-reference/recursive2.yaml @@ -0,0 +1,8 @@ +parameters: + RecursiveReference: + name: sampleParameter + in: query + description: Tests recursion + required: false + schema: + type: boolean diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index f27aa18..3b15688 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -156,7 +156,7 @@ def spec_url(self): ) -class TestApiWithExampe(BaseTestValidValidateV3SpecUrl): +class TestApiWithExample(BaseTestValidValidateV3SpecUrl): @pytest.fixture def spec_url(self): From aec9ad2fc441b13a2ce02f1f07ba4c7eeaad9586 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 12 May 2021 20:07:59 +0100 Subject: [PATCH 085/371] A $ref may be a property name test --- tests/integration/data/v3.0/petstore.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/integration/data/v3.0/petstore.yaml b/tests/integration/data/v3.0/petstore.yaml index 51c6273..a2ae6b2 100644 --- a/tests/integration/data/v3.0/petstore.yaml +++ b/tests/integration/data/v3.0/petstore.yaml @@ -93,6 +93,8 @@ components: type: string tag: type: string + $ref: + type: string Pets: type: array items: From 27ee7cf747e7b45a4c41c2acef8fda7f96120c2a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 12 May 2021 20:34:21 +0100 Subject: [PATCH 086/371] Version 0.3.1 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 40ef8b0..392154d 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.3.0 +current_version = 0.3.1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index b4dd3b4..6ab735d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.0 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.1 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 6ffd254..0238ca5 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.3.0' +__version__ = '0.3.1' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' From a496cf5e229b31fe3ae19c4a1b288b6cb77248d8 Mon Sep 17 00:00:00 2001 From: Sigurd Spieckermann Date: Fri, 18 Jun 2021 15:29:24 +0200 Subject: [PATCH 087/371] Fix test class name --- tests/integration/test_validate.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/integration/test_validate.py b/tests/integration/test_validate.py index 9bb3e08..b2a27f2 100644 --- a/tests/integration/test_validate.py +++ b/tests/integration/test_validate.py @@ -3,7 +3,7 @@ from openapi_spec_validator.exceptions import OpenAPIValidationError -class BaseTestValidOpeAPIv3Validator(object): +class BaseTestValidOpenAPIv3Validator(object): @pytest.fixture def spec_url(self): @@ -13,7 +13,7 @@ def test_valid(self, validator, spec, spec_url): return validator.validate(spec, spec_url=spec_url) -class BaseTestFailedOpeAPIv3Validator(object): +class BaseTestFailedOpenAPIv3Validator(object): @pytest.fixture def spec_url(self): @@ -24,21 +24,21 @@ def test_failed(self, validator, spec, spec_url): validator.validate(spec, spec_url=spec_url) -class TestLocalEmptyExample(BaseTestFailedOpeAPIv3Validator): +class TestLocalEmptyExample(BaseTestFailedOpenAPIv3Validator): @pytest.fixture def spec(self, factory): return factory.spec_from_file("data/v3.0/empty.yaml") -class TestLocalPetstoreExample(BaseTestValidOpeAPIv3Validator): +class TestLocalPetstoreExample(BaseTestValidOpenAPIv3Validator): @pytest.fixture def spec(self, factory): return factory.spec_from_file("data/v3.0/petstore.yaml") -class TestLocalPetstoreSeparateExample(BaseTestValidOpeAPIv3Validator): +class TestLocalPetstoreSeparateExample(BaseTestValidOpenAPIv3Validator): spec_file = "data/v3.0/petstore-separate/spec/openapi.yaml" @@ -51,7 +51,7 @@ def spec(self, factory): return factory.spec_from_file(self.spec_file) -class TestLocalParentReferenceExample(BaseTestValidOpeAPIv3Validator): +class TestLocalParentReferenceExample(BaseTestValidOpenAPIv3Validator): spec_file = "data/v3.0/parent-reference/openapi.yaml" @@ -64,7 +64,7 @@ def spec(self, factory): return factory.spec_from_file(self.spec_file) -class TestPetstoreExample(BaseTestValidOpeAPIv3Validator): +class TestPetstoreExample(BaseTestValidOpenAPIv3Validator): @pytest.fixture def spec(self, factory): @@ -76,7 +76,7 @@ def spec(self, factory): return factory.spec_from_url(url) -class TestApiWithExampe(BaseTestValidOpeAPIv3Validator): +class TestApiWithExampe(BaseTestValidOpenAPIv3Validator): @pytest.fixture def spec(self, factory): @@ -88,7 +88,7 @@ def spec(self, factory): return factory.spec_from_url(url) -class TestPetstoreExpandedExample(BaseTestValidOpeAPIv3Validator): +class TestPetstoreExpandedExample(BaseTestValidOpenAPIv3Validator): @pytest.fixture def spec(self, factory): From 859d761d2ee8c288535ce1a077eefbf197897763 Mon Sep 17 00:00:00 2001 From: Sigurd Spieckermann Date: Fri, 18 Jun 2021 15:36:03 +0200 Subject: [PATCH 088/371] Fix another test class name --- tests/integration/test_validate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_validate.py b/tests/integration/test_validate.py index b2a27f2..843f689 100644 --- a/tests/integration/test_validate.py +++ b/tests/integration/test_validate.py @@ -76,7 +76,7 @@ def spec(self, factory): return factory.spec_from_url(url) -class TestApiWithExampe(BaseTestValidOpenAPIv3Validator): +class TestApiWithExample(BaseTestValidOpenAPIv3Validator): @pytest.fixture def spec(self, factory): From 6a827fbc580178d9d94df5a57ae76299b0fd526f Mon Sep 17 00:00:00 2001 From: adammkelly Date: Fri, 1 Oct 2021 13:07:19 +0100 Subject: [PATCH 089/371] Issue #131 - Pin jsonschema to 0.3.2 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index dac7189..9beb76e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -jsonschema +jsonschema==3.2.0 openapi-schema-validator PyYAML==5.3.1 six==1.12.0 From 2dcf4458ad3e41d1d9b3b9f0d8ffc3695361d7de Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Thu, 2 Sep 2021 11:59:22 +0200 Subject: [PATCH 090/371] Add a flag to display either 'best-match' or 'all' errors. --- openapi_spec_validator/__main__.py | 32 ++++++++++++++++++- .../data/v3.0/missing-description.yaml | 18 +++++++++++ tests/integration/test_main.py | 27 ++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 tests/integration/data/v3.0/missing-description.yaml diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index eb2884a..19abb60 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -2,6 +2,8 @@ import argparse import sys +from jsonschema.exceptions import best_match + from openapi_spec_validator import ( openapi_v2_spec_validator, openapi_v3_spec_validator, ) @@ -15,9 +17,37 @@ ) +def print_validationerror(exc, errors="best-match"): + print("# Validation Error\n") + print(exc) + if exc.cause: + print("\n# Cause\n") + print(exc.cause) + if not exc.context: + return + if errors == "all": + print("\n\n# Due to one of those errors\n") + print("\n\n\n".join("## " + str(e) for e in exc.context)) + elif errors == "best-match": + print("\n\n# Probably due to this subschema error\n") + print("## " + str(best_match(exc.context))) + if len(exc.context) > 1: + print( + "\n({} more subschemas errors,".format(len(exc.context) - 1), + "use --errors=all to see them.)", + ) + + def main(args=None): parser = argparse.ArgumentParser() parser.add_argument('filename', help="Absolute or relative path to file") + parser.add_argument( + "--errors", + choices=("best-match", "all"), + default="best-match", + help="""Control error reporting. Defaults to "best-match", """ + """use "all" to get all subschema errors.""", + ) parser.add_argument( '--schema', help="OpenAPI schema (default: 3.0.0)", @@ -50,7 +80,7 @@ def main(args=None): try: validator.validate(spec, spec_url=spec_url) except ValidationError as exc: - print(exc) + print_validationerror(exc, args.errors) sys.exit(1) except Exception as exc: print(exc) diff --git a/tests/integration/data/v3.0/missing-description.yaml b/tests/integration/data/v3.0/missing-description.yaml new file mode 100644 index 0000000..0fe1052 --- /dev/null +++ b/tests/integration/data/v3.0/missing-description.yaml @@ -0,0 +1,18 @@ +--- +openapi: 3.0.0 + +info: + title: test + description: test + version: 0.0.1 + +paths: + "/": + get: + description: Get the API root + responses: + 200: + content: + application/json: + schema: + type: string diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index bbc1e1f..bfd5be9 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -26,6 +26,33 @@ def test_schema_v2(): main(testargs) +def test_errors_on_missing_description_best(capsys): + """An error is obviously printed given an empty schema.""" + testargs = ['./tests/integration/data/v3.0/missing-description.yaml'] + with pytest.raises(SystemExit): + main(testargs) + out, err = capsys.readouterr() + assert "Failed validating" in out + assert "'description' is a required property" in out + assert "'$ref' is a required property" not in out + assert '1 more subschemas errors' in out + + +def test_errors_on_missing_description_full(capsys): + """An error is obviously printed given an empty schema.""" + testargs = [ + "./tests/integration/data/v3.0/missing-description.yaml", + "--errors=all" + ] + with pytest.raises(SystemExit): + main(testargs) + out, err = capsys.readouterr() + assert "Failed validating" in out + assert "'description' is a required property" in out + assert "'$ref' is a required property" in out + assert '1 more subschema error' not in out + + def test_schema_unknown(): """Errors on running with unknown schema.""" testargs = ['--schema', 'x.x', From ca4d68f3664aef913f884414b79dc9c21acc2c68 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 13 Jan 2022 02:28:29 +0000 Subject: [PATCH 091/371] exclude future incompatible jsonschema versions --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 62422e1..f802e96 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,7 +25,7 @@ python_requires = >= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.* setup_requires = setuptools install_requires = - jsonschema + jsonschema<5.0.0 openapi-schema-validator PyYAML>=5.1 six From 70b54825d54229806d8c896d42085999c1cc86a0 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 13 Jan 2022 01:42:04 +0000 Subject: [PATCH 092/371] Switch to poetry --- .bumpversion.cfg | 4 + .github/workflows/python-publish.yml | 43 +- .github/workflows/python-test.yml | 58 +- .travis.yml | 9 +- poetry.lock | 839 +++++++++++++++++++++++++++ pyproject.toml | 78 +++ requirements.txt | 5 - requirements_dev.txt | 5 - setup.cfg | 53 -- setup.py | 55 -- tests/integration/test_main.py | 7 +- 11 files changed, 992 insertions(+), 164 deletions(-) create mode 100644 poetry.lock create mode 100644 pyproject.toml delete mode 100644 requirements.txt delete mode 100644 requirements_dev.txt delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 392154d..bd988ed 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -11,3 +11,7 @@ message = Version {new_version} [bumpversion:file:openapi_spec_validator/__init__.py] [bumpversion:file:Dockerfile] + +[bumpversion:file:pyproject.toml] +search = version = "{current_version}" +replace = version = "{new_version}" diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index b608221..d5306f3 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: release: types: - - created + - created jobs: publish: @@ -16,24 +16,23 @@ jobs: matrix: python-version: [2.7, 3.6] steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine - - name: Build - run: python setup.py sdist bdist_wheel - - name: Publish wheel - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: twine upload dist/*.whl - - name: Publish source - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: twine upload dist/*.tar.gz || true + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Bootstrap poetry + run: | + python -m pip install --upgrade pip + pip install "poetry<1.2" + + - name: Build + run: poetry build + + - name: Publish + env: + POETRY_HTTP_BASIC_PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }} + POETRY_HTTP_BASIC_PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: poetry publish diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 4a36162..d4ae2d3 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -10,6 +10,7 @@ on: jobs: test: + name: "Tests" runs-on: ${{ matrix.os }} strategy: matrix: @@ -17,20 +18,43 @@ jobs: os: [windows-latest, ubuntu-latest] fail-fast: false steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - pip install -r requirements_dev.txt - pip install -e . - shell: bash - - name: Test - run: python setup.py test - shell: bash - - name: Upload coverage - uses: codecov/codecov-action@v1 + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Get full Python version + id: full-python-version + run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") + + - name: Bootstrap poetry + run: | + python -m pip install --upgrade pip + pip install "poetry<1.2" + + - name: Configure poetry + run: poetry config virtualenvs.in-project true + + - name: Set up cache + uses: actions/cache@v2 + id: cache + with: + path: .venv + key: venv-${{ github.event_name }}-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} + + - name: Ensure cache is healthy + if: steps.cache.outputs.cache-hit == 'true' && runner.os == 'Linux' + run: timeout 10s poetry run pip --version || rm -rf .venv + + - name: Install dependencies + run: poetry install -E requests + + - name: Test + env: + PYTEST_ADDOPTS: "--color=yes" + run: poetry run pytest + + - name: Upload coverage + uses: codecov/codecov-action@v1 diff --git a/.travis.yml b/.travis.yml index 7d647df..26d675d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,12 +13,11 @@ matrix: allow_failures: - python: nightly before_install: -- pip install codecov +- python -m pip install --upgrade pip +- pip install "poetry<1.2" install: -- pip install -r requirements.txt -- pip install -r requirements_dev.txt -- pip install -e . +- poetry install script: -- python setup.py test +- poetry run pytest after_success: - codecov diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..d9696a4 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,839 @@ +[[package]] +name = "aspy.yaml" +version = "1.3.0" +description = "A few extensions to pyyaml." +category = "dev" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +pyyaml = "*" + +[[package]] +name = "attrs" +version = "21.4.0" +description = "Classes Without Boilerplate" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] + +[[package]] +name = "certifi" +version = "2021.10.8" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = true +python-versions = "*" + +[[package]] +name = "cfgv" +version = "2.0.1" +description = "Validate configuration and produce human readable error messages." +category = "dev" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +six = "*" + +[[package]] +name = "chardet" +version = "4.0.0" +description = "Universal encoding detector for Python 2 and 3" +category = "main" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "configparser" +version = "4.0.2" +description = "Updated configparser from Python 3.7 for Python 2.6+." +category = "main" +optional = false +python-versions = ">=2.6" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2)", "pytest-flake8", "pytest-black-multipy"] + +[[package]] +name = "contextlib2" +version = "0.6.0.post1" +description = "Backports and enhancements for the contextlib module" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "coverage" +version = "4.4.2" +description = "Code coverage measurement for Python" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "distlib" +version = "0.3.4" +description = "Distribution utilities" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "enum34" +version = "1.1.10" +description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "filelock" +version = "3.2.1" +description = "A platform independent file lock." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.extras] +docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] +testing = ["coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] + +[[package]] +name = "flake8" +version = "3.9.2" +description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +configparser = {version = "*", markers = "python_version < \"3.2\""} +enum34 = {version = "*", markers = "python_version < \"3.4\""} +functools32 = {version = "*", markers = "python_version < \"3.2\""} +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +mccabe = ">=0.6.0,<0.7.0" +pycodestyle = ">=2.7.0,<2.8.0" +pyflakes = ">=2.3.0,<2.4.0" +typing = {version = "*", markers = "python_version < \"3.5\""} + +[[package]] +name = "funcsigs" +version = "1.0.2" +description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "functools32" +version = "3.2.3-2" +description = "Backport of the functools module from Python 3.2.3 for use on 2.7 and PyPy." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "futures" +version = "3.3.0" +description = "Backport of the concurrent.futures package from Python 3" +category = "dev" +optional = true +python-versions = ">=2.6, <3" + +[[package]] +name = "identify" +version = "1.6.2" +description = "File identification library for Python" +category = "dev" +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.extras] +license = ["editdistance"] + +[[package]] +name = "idna" +version = "2.10" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "importlib-metadata" +version = "2.1.2" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +configparser = {version = ">=3.5", markers = "python_version < \"3\""} +contextlib2 = {version = "*", markers = "python_version < \"3\""} +pathlib2 = {version = "*", markers = "python_version < \"3\""} +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "rst.linker"] +testing = ["packaging", "pep517", "unittest2", "importlib-resources (>=1.3)"] + +[[package]] +name = "importlib-resources" +version = "3.2.1" +description = "Read resources from Python packages" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +contextlib2 = {version = "*", markers = "python_version < \"3\""} +pathlib2 = {version = "*", markers = "python_version < \"3\""} +singledispatch = {version = "*", markers = "python_version < \"3.4\""} +typing = {version = "*", markers = "python_version < \"3.5\""} +zipp = {version = ">=0.4", markers = "python_version < \"3.8\""} + +[package.extras] +docs = ["sphinx", "rst.linker", "jaraco.packaging"] + +[[package]] +name = "isodate" +version = "0.6.1" +description = "An ISO 8601 date/time/duration parser and formatter" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[[package]] +name = "jsonschema" +version = "3.2.0" +description = "An implementation of JSON Schema validation for Python" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +attrs = ">=17.4.0" +functools32 = {version = "*", markers = "python_version < \"3\""} +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +pyrsistent = ">=0.14.0" +six = ">=1.11.0" + +[package.extras] +format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] +format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] + +[[package]] +name = "mccabe" +version = "0.6.1" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "mock" +version = "3.0.5" +description = "Rolling backport of unittest.mock for all Pythons" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +funcsigs = {version = ">=1", markers = "python_version < \"3.3\""} +six = "*" + +[package.extras] +build = ["twine", "wheel", "blurb"] +docs = ["sphinx"] +test = ["pytest", "pytest-cov"] + +[[package]] +name = "more-itertools" +version = "5.0.0" +description = "More routines for operating on iterables, beyond itertools" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +six = ">=1.0.0,<2.0.0" + +[[package]] +name = "nodeenv" +version = "1.6.0" +description = "Node.js virtual environment builder" +category = "dev" +optional = true +python-versions = "*" + +[[package]] +name = "openapi-schema-validator" +version = "0.1.6" +description = "OpenAPI schema validation for Python" +category = "main" +optional = false +python-versions = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" + +[package.dependencies] +isodate = "*" +jsonschema = ">=3.0.0" +six = "*" + +[package.extras] +isodate = ["isodate"] +rfc3339_validator = ["rfc3339-validator"] +strict_rfc3339 = ["strict-rfc3339"] + +[[package]] +name = "pathlib2" +version = "2.3.6" +description = "Object-oriented filesystem paths" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +scandir = {version = "*", markers = "python_version < \"3.5\""} +six = "*" + +[[package]] +name = "platformdirs" +version = "2.0.2" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pluggy" +version = "0.6.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pre-commit" +version = "1.21.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +"aspy.yaml" = "*" +cfgv = ">=2.0.0" +futures = {version = "*", markers = "python_version < \"3.2\""} +identify = ">=1.0.0" +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +importlib-resources = {version = "*", markers = "python_version < \"3.7\""} +nodeenv = ">=0.11.1" +pyyaml = "*" +six = "*" +toml = "*" +virtualenv = ">=15.2" + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pycodestyle" +version = "2.7.0" +description = "Python style guide checker" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pyflakes" +version = "2.3.1" +description = "passive checker of Python programs" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pyrsistent" +version = "0.16.1" +description = "Persistent/Functional/Immutable data structures" +category = "main" +optional = false +python-versions = ">=2.7" + +[package.dependencies] +six = "*" + +[[package]] +name = "pytest" +version = "3.5.0" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +attrs = ">=17.4.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +funcsigs = {version = "*", markers = "python_version < \"3.0\""} +more-itertools = ">=4.0.0" +pluggy = ">=0.5,<0.7" +py = ">=1.5.0" +six = ">=1.10.0" + +[[package]] +name = "pytest-cov" +version = "2.5.1" +description = "Pytest plugin for measuring coverage." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +coverage = ">=3.7.1" +pytest = ">=2.6.0" + +[[package]] +name = "pytest-flake8" +version = "1.0.7" +description = "pytest plugin to check FLAKE8 requirements" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +flake8 = ">=3.5" +pytest = ">=3.5" + +[[package]] +name = "pyyaml" +version = "5.3.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "requests" +version = "2.25.1" +description = "Python HTTP for Humans." +category = "main" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +certifi = ">=2017.4.17" +chardet = ">=3.0.2,<5" +idna = ">=2.5,<3" +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] + +[[package]] +name = "scandir" +version = "1.10.0" +description = "scandir, a better directory iterator and faster os.walk()" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "singledispatch" +version = "3.7.0" +description = "Backport functools.singledispatch from Python 3.4 to Python 2.6-3.3." +category = "dev" +optional = false +python-versions = ">=2.6" + +[package.dependencies] +six = "*" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=4.6)", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "unittest2", "pytest-checkdocs (>=2.4)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tox" +version = "3.12.1" +description = "tox is a generic virtualenv management and test command line tool" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +filelock = ">=3.0.0,<4" +pluggy = ">=0.3.0,<1" +py = ">=1.4.17,<2" +six = ">=1.0.0,<2" +toml = ">=0.9.4" +virtualenv = ">=14.0.0" + +[package.extras] +docs = ["sphinx (>=2.0.0,<3)", "towncrier (>=18.5.0)", "pygments-github-lexers (>=0.0.5)", "sphinxcontrib-autoprogram (>=0.1.5)"] +testing = ["freezegun (>=0.3.11,<1)", "pathlib2 (>=2.3.3,<3)", "pytest (>=3.0.0,<5)", "pytest-cov (>=2.5.1,<3)", "pytest-mock (>=1.10.0,<2)", "pytest-xdist (>=1.22.2,<2)", "pytest-randomly (>=1.2.3,<2)", "flaky (>=3.4.0,<4)", "psutil (>=5.6.1,<6)"] + +[[package]] +name = "typing" +version = "3.10.0.0" +description = "Type Hints for Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <3.5" + +[[package]] +name = "urllib3" +version = "1.22" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = true +python-versions = "*" + +[package.extras] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "virtualenv" +version = "20.13.0" +description = "Virtual Python Environment builder" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +distlib = ">=0.3.1,<1" +filelock = ">=3.2,<4" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""} +pathlib2 = {version = ">=2.3.3,<3", markers = "python_version < \"3.4\" and sys_platform != \"win32\""} +platformdirs = ">=2,<3" +six = ">=1.9.0,<2" + +[package.extras] +docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] +testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"] + +[[package]] +name = "zipp" +version = "1.2.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=2.7" + +[package.dependencies] +contextlib2 = {version = "*", markers = "python_version < \"3.4\""} + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] +testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"] + +[extras] +dev = [] +requests = ["requests"] + +[metadata] +lock-version = "1.1" +python-versions = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" +content-hash = "ed22c913fdb7a62db29f6f10d14f53a7c5ae324752f33184002e163d5d28ad0f" + +[metadata.files] +"aspy.yaml" = [ + {file = "aspy.yaml-1.3.0-py2.py3-none-any.whl", hash = "sha256:463372c043f70160a9ec950c3f1e4c3a82db5fca01d334b6bc89c7164d744bdc"}, + {file = "aspy.yaml-1.3.0.tar.gz", hash = "sha256:e7c742382eff2caed61f87a39d13f99109088e5e93f04d76eb8d4b28aa143f45"}, +] +attrs = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] +certifi = [ + {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, + {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, +] +cfgv = [ + {file = "cfgv-2.0.1-py2.py3-none-any.whl", hash = "sha256:fbd93c9ab0a523bf7daec408f3be2ed99a980e20b2d19b50fc184ca6b820d289"}, + {file = "cfgv-2.0.1.tar.gz", hash = "sha256:edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144"}, +] +chardet = [ + {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, + {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, +] +colorama = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] +configparser = [ + {file = "configparser-4.0.2-py2.py3-none-any.whl", hash = "sha256:254c1d9c79f60c45dfde850850883d5aaa7f19a23f13561243a050d5a7c3fe4c"}, + {file = "configparser-4.0.2.tar.gz", hash = "sha256:c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df"}, +] +contextlib2 = [ + {file = "contextlib2-0.6.0.post1-py2.py3-none-any.whl", hash = "sha256:3355078a159fbb44ee60ea80abd0d87b80b78c248643b49aa6d94673b413609b"}, + {file = "contextlib2-0.6.0.post1.tar.gz", hash = "sha256:01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e"}, +] +coverage = [ + {file = "coverage-4.4.2-cp26-cp26m-macosx_10_10_x86_64.whl", hash = "sha256:d1ee76f560c3c3e8faada866a07a32485445e16ed2206ac8378bd90dadffb9f0"}, + {file = "coverage-4.4.2-cp26-cp26m-manylinux1_i686.whl", hash = "sha256:007eeef7e23f9473622f7d94a3e029a45d55a92a1f083f0f3512f5ab9a669b05"}, + {file = "coverage-4.4.2-cp26-cp26m-manylinux1_x86_64.whl", hash = "sha256:17307429935f96c986a1b1674f78079528833410750321d22b5fb35d1883828e"}, + {file = "coverage-4.4.2-cp26-cp26mu-manylinux1_i686.whl", hash = "sha256:845fddf89dca1e94abe168760a38271abfc2e31863fbb4ada7f9a99337d7c3dc"}, + {file = "coverage-4.4.2-cp26-cp26mu-manylinux1_x86_64.whl", hash = "sha256:3f4d0b3403d3e110d2588c275540649b1841725f5a11a7162620224155d00ba2"}, + {file = "coverage-4.4.2-cp27-cp27m-macosx_10_12_intel.whl", hash = "sha256:4c4f368ffe1c2e7602359c2c50233269f3abe1c48ca6b288dcd0fb1d1c679733"}, + {file = "coverage-4.4.2-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:f8c55dd0f56d3d618dfacf129e010cbe5d5f94b6951c1b2f13ab1a2f79c284da"}, + {file = "coverage-4.4.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:cdd92dd9471e624cd1d8c1a2703d25f114b59b736b0f1f659a98414e535ffb3d"}, + {file = "coverage-4.4.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2ad357d12971e77360034c1596011a03f50c0f9e1ecd12e081342b8d1aee2236"}, + {file = "coverage-4.4.2-cp27-cp27m-win32.whl", hash = "sha256:700d7579995044dc724847560b78ac786f0ca292867447afda7727a6fbaa082e"}, + {file = "coverage-4.4.2-cp27-cp27m-win_amd64.whl", hash = "sha256:66f393e10dd866be267deb3feca39babba08ae13763e0fc7a1063cbe1f8e49f6"}, + {file = "coverage-4.4.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:e9a0e1caed2a52f15c96507ab78a48f346c05681a49c5b003172f8073da6aa6b"}, + {file = "coverage-4.4.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:eea9135432428d3ca7ee9be86af27cb8e56243f73764a9b6c3e0bda1394916be"}, + {file = "coverage-4.4.2-cp33-cp33m-macosx_10_10_x86_64.whl", hash = "sha256:5ff16548492e8a12e65ff3d55857ccd818584ed587a6c2898a9ebbe09a880674"}, + {file = "coverage-4.4.2-cp33-cp33m-manylinux1_i686.whl", hash = "sha256:d00e29b78ff610d300b2c37049a41234d48ea4f2d2581759ebcf67caaf731c31"}, + {file = "coverage-4.4.2-cp33-cp33m-manylinux1_x86_64.whl", hash = "sha256:87d942863fe74b1c3be83a045996addf1639218c2cb89c5da18c06c0fe3917ea"}, + {file = "coverage-4.4.2-cp34-cp34m-macosx_10_10_x86_64.whl", hash = "sha256:358d635b1fc22a425444d52f26287ae5aea9e96e254ff3c59c407426f44574f4"}, + {file = "coverage-4.4.2-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:81912cfe276e0069dca99e1e4e6be7b06b5fc8342641c6b472cb2fed7de7ae18"}, + {file = "coverage-4.4.2-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:079248312838c4c8f3494934ab7382a42d42d5f365f0cf7516f938dbb3f53f3f"}, + {file = "coverage-4.4.2-cp34-cp34m-win32.whl", hash = "sha256:b0059630ca5c6b297690a6bf57bf2fdac1395c24b7935fd73ee64190276b743b"}, + {file = "coverage-4.4.2-cp34-cp34m-win_amd64.whl", hash = "sha256:493082f104b5ca920e97a485913de254cbe351900deed72d4264571c73464cd0"}, + {file = "coverage-4.4.2-cp35-cp35m-macosx_10_10_x86_64.whl", hash = "sha256:e3ba9b14607c23623cf38f90b23f5bed4a3be87cbfa96e2e9f4eabb975d1e98b"}, + {file = "coverage-4.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:82cbd3317320aa63c65555aa4894bf33a13fb3a77f079059eb5935eea415938d"}, + {file = "coverage-4.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9721f1b7275d3112dc7ccf63f0553c769f09b5c25a26ee45872c7f5c09edf6c1"}, + {file = "coverage-4.4.2-cp35-cp35m-win32.whl", hash = "sha256:bd4800e32b4c8d99c3a2c943f1ac430cbf80658d884123d19639bcde90dad44a"}, + {file = "coverage-4.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:f29841e865590af72c4b90d7b5b8e93fd560f5dea436c1d5ee8053788f9285de"}, + {file = "coverage-4.4.2-cp36-cp36m-macosx_10_12_x86_64.whl", hash = "sha256:f3a5c6d054c531536a83521c00e5d4004f1e126e2e2556ce399bef4180fbe540"}, + {file = "coverage-4.4.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:dd707a21332615108b736ef0b8513d3edaf12d2a7d5fc26cd04a169a8ae9b526"}, + {file = "coverage-4.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2e1a5c6adebb93c3b175103c2f855eda957283c10cf937d791d81bef8872d6ca"}, + {file = "coverage-4.4.2-cp36-cp36m-win32.whl", hash = "sha256:f87f522bde5540d8a4b11df80058281ac38c44b13ce29ced1e294963dd51a8f8"}, + {file = "coverage-4.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a7cfaebd8f24c2b537fa6a271229b051cdac9c1734bb6f939ccfc7c055689baa"}, + {file = "coverage-4.4.2.tar.gz", hash = "sha256:309d91bd7a35063ec7a0e4d75645488bfab3f0b66373e7722f23da7f5b0f34cc"}, + {file = "coverage-4.4.2.win-amd64-py2.7.exe", hash = "sha256:b6cebae1502ce5b87d7c6f532fa90ab345cfbda62b95aeea4e431e164d498a3d"}, + {file = "coverage-4.4.2.win-amd64-py3.4.exe", hash = "sha256:a4497faa4f1c0fc365ba05eaecfb6b5d24e3c8c72e95938f9524e29dadb15e76"}, + {file = "coverage-4.4.2.win-amd64-py3.5.exe", hash = "sha256:2b4d7f03a8a6632598cbc5df15bbca9f778c43db7cf1a838f4fa2c8599a8691a"}, + {file = "coverage-4.4.2.win-amd64-py3.6.exe", hash = "sha256:1afccd7e27cac1b9617be8c769f6d8a6d363699c9b86820f40c74cfb3328921c"}, + {file = "coverage-4.4.2.win32-py2.7.exe", hash = "sha256:0388c12539372bb92d6dde68b4627f0300d948965bbb7fc104924d715fdc0965"}, + {file = "coverage-4.4.2.win32-py3.4.exe", hash = "sha256:ab3508df9a92c1d3362343d235420d08e2662969b83134f8a97dc1451cbe5e84"}, + {file = "coverage-4.4.2.win32-py3.5.exe", hash = "sha256:43a155eb76025c61fc20c3d03b89ca28efa6f5be572ab6110b2fb68eda96bfea"}, + {file = "coverage-4.4.2.win32-py3.6.exe", hash = "sha256:f98b461cb59f117887aa634a66022c0bd394278245ed51189f63a036516e32de"}, +] +distlib = [ + {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, + {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, +] +enum34 = [ + {file = "enum34-1.1.10-py2-none-any.whl", hash = "sha256:a98a201d6de3f2ab3db284e70a33b0f896fbf35f8086594e8c9e74b909058d53"}, + {file = "enum34-1.1.10-py3-none-any.whl", hash = "sha256:c3858660960c984d6ab0ebad691265180da2b43f07e061c0f8dca9ef3cffd328"}, + {file = "enum34-1.1.10.tar.gz", hash = "sha256:cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248"}, +] +filelock = [ + {file = "filelock-3.2.1-py2.py3-none-any.whl", hash = "sha256:7f07b08d731907441ff40d0c5b81f9512cd968842e0b6264c8bd18a8ce877760"}, + {file = "filelock-3.2.1.tar.gz", hash = "sha256:9cdd29c411ab196cf4c35a1da684f7b9da723696cb356efa45bf5eb1ff313ee3"}, +] +flake8 = [ + {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, + {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, +] +funcsigs = [ + {file = "funcsigs-1.0.2-py2.py3-none-any.whl", hash = "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca"}, + {file = "funcsigs-1.0.2.tar.gz", hash = "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"}, +] +functools32 = [ + {file = "functools32-3.2.3-2.tar.gz", hash = "sha256:f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d"}, + {file = "functools32-3.2.3-2.zip", hash = "sha256:89d824aa6c358c421a234d7f9ee0bd75933a67c29588ce50aaa3acdf4d403fa0"}, +] +futures = [ + {file = "futures-3.3.0-py2-none-any.whl", hash = "sha256:49b3f5b064b6e3afc3316421a3f25f66c137ae88f068abbf72830170033c5e16"}, + {file = "futures-3.3.0.tar.gz", hash = "sha256:7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794"}, +] +identify = [ + {file = "identify-1.6.2-py2.py3-none-any.whl", hash = "sha256:8f9879b5b7cca553878d31548a419ec2f227d3328da92fe8202bc5e546d5cbc3"}, + {file = "identify-1.6.2.tar.gz", hash = "sha256:1c2014f6985ed02e62b2e6955578acf069cb2c54859e17853be474bfe7e13bed"}, +] +idna = [ + {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, + {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, +] +importlib-metadata = [ + {file = "importlib_metadata-2.1.2-py2.py3-none-any.whl", hash = "sha256:cd6a92d78385dd145f5f233b3a6919acf5e8e43922aa9b9dbe78573e3540eb56"}, + {file = "importlib_metadata-2.1.2.tar.gz", hash = "sha256:09db40742204610ef6826af16e49f0479d11d0d54687d0169ff7fddf8b3f557f"}, +] +importlib-resources = [ + {file = "importlib_resources-3.2.1-py2.py3-none-any.whl", hash = "sha256:e2860cf0c4bc999947228d18be154fa3779c5dde0b882bd2d7b3f4d25e698bd6"}, + {file = "importlib_resources-3.2.1.tar.gz", hash = "sha256:a9fe213ab6452708ec1b3f4ec6f2881b8ab3645cb4e5efb7fea2bbf05a91db3b"}, +] +isodate = [ + {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, + {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, +] +jsonschema = [ + {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, + {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, +] +mccabe = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] +mock = [ + {file = "mock-3.0.5-py2.py3-none-any.whl", hash = "sha256:d157e52d4e5b938c550f39eb2fd15610db062441a9c2747d3dbfa9298211d0f8"}, + {file = "mock-3.0.5.tar.gz", hash = "sha256:83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3"}, +] +more-itertools = [ + {file = "more-itertools-5.0.0.tar.gz", hash = "sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4"}, + {file = "more_itertools-5.0.0-py2-none-any.whl", hash = "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc"}, + {file = "more_itertools-5.0.0-py3-none-any.whl", hash = "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"}, +] +nodeenv = [ + {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, + {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, +] +openapi-schema-validator = [ + {file = "openapi-schema-validator-0.1.6.tar.gz", hash = "sha256:230db361c71a5b08b25ec926797ac8b59a8f499bbd7316bd15b6cd0fc9aea5df"}, + {file = "openapi_schema_validator-0.1.6-py2-none-any.whl", hash = "sha256:8ef097b78c191c89d9a12cdf3d311b2ecf9d3b80bbe8610dbc67a812205a6a8d"}, + {file = "openapi_schema_validator-0.1.6-py3-none-any.whl", hash = "sha256:af023ae0d16372cf8dd0d128c9f3eaa080dc3cd5dfc69e6a247579f25bd10503"}, +] +pathlib2 = [ + {file = "pathlib2-2.3.6-py2.py3-none-any.whl", hash = "sha256:3a130b266b3a36134dcc79c17b3c7ac9634f083825ca6ea9d8f557ee6195c9c8"}, + {file = "pathlib2-2.3.6.tar.gz", hash = "sha256:7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f"}, +] +platformdirs = [ + {file = "platformdirs-2.0.2-py2.py3-none-any.whl", hash = "sha256:0b9547541f599d3d242078ae60b927b3e453f0ad52f58b4d4bc3be86aed3ec41"}, + {file = "platformdirs-2.0.2.tar.gz", hash = "sha256:3b00d081227d9037bbbca521a5787796b5ef5000faea1e43fd76f1d44b06fcfa"}, +] +pluggy = [ + {file = "pluggy-0.6.0-py2-none-any.whl", hash = "sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c"}, + {file = "pluggy-0.6.0-py3-none-any.whl", hash = "sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"}, + {file = "pluggy-0.6.0.tar.gz", hash = "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"}, +] +pre-commit = [ + {file = "pre_commit-1.21.0-py2.py3-none-any.whl", hash = "sha256:f92a359477f3252452ae2e8d3029de77aec59415c16ae4189bcfba40b757e029"}, + {file = "pre_commit-1.21.0.tar.gz", hash = "sha256:8f48d8637bdae6fa70cc97db9c1dd5aa7c5c8bf71968932a380628c25978b850"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pycodestyle = [ + {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, + {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, +] +pyflakes = [ + {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, + {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, +] +pyrsistent = [ + {file = "pyrsistent-0.16.1.tar.gz", hash = "sha256:aa2ae1c2e496f4d6777f869ea5de7166a8ccb9c2e06ebcf6c7ff1b670c98c5ef"}, +] +pytest = [ + {file = "pytest-3.5.0-py2.py3-none-any.whl", hash = "sha256:6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c"}, + {file = "pytest-3.5.0.tar.gz", hash = "sha256:fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1"}, +] +pytest-cov = [ + {file = "pytest-cov-2.5.1.tar.gz", hash = "sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d"}, + {file = "pytest_cov-2.5.1-py2.py3-none-any.whl", hash = "sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec"}, +] +pytest-flake8 = [ + {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, + {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, +] +pyyaml = [ + {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"}, + {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"}, + {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"}, + {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"}, + {file = "PyYAML-5.3.1-cp39-cp39-win32.whl", hash = "sha256:ad9c67312c84def58f3c04504727ca879cb0013b2517c85a9a253f0cb6380c0a"}, + {file = "PyYAML-5.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:6034f55dab5fea9e53f436aa68fa3ace2634918e8b5994d82f3621c04ff5ed2e"}, + {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"}, +] +requests = [ + {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, + {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, +] +scandir = [ + {file = "scandir-1.10.0-cp27-cp27m-win32.whl", hash = "sha256:92c85ac42f41ffdc35b6da57ed991575bdbe69db895507af88b9f499b701c188"}, + {file = "scandir-1.10.0-cp27-cp27m-win_amd64.whl", hash = "sha256:cb925555f43060a1745d0a321cca94bcea927c50114b623d73179189a4e100ac"}, + {file = "scandir-1.10.0-cp34-cp34m-win32.whl", hash = "sha256:2c712840c2e2ee8dfaf36034080108d30060d759c7b73a01a52251cc8989f11f"}, + {file = "scandir-1.10.0-cp34-cp34m-win_amd64.whl", hash = "sha256:2586c94e907d99617887daed6c1d102b5ca28f1085f90446554abf1faf73123e"}, + {file = "scandir-1.10.0-cp35-cp35m-win32.whl", hash = "sha256:2b8e3888b11abb2217a32af0766bc06b65cc4a928d8727828ee68af5a967fa6f"}, + {file = "scandir-1.10.0-cp35-cp35m-win_amd64.whl", hash = "sha256:8c5922863e44ffc00c5c693190648daa6d15e7c1207ed02d6f46a8dcc2869d32"}, + {file = "scandir-1.10.0-cp36-cp36m-win32.whl", hash = "sha256:2ae41f43797ca0c11591c0c35f2f5875fa99f8797cb1a1fd440497ec0ae4b022"}, + {file = "scandir-1.10.0-cp36-cp36m-win_amd64.whl", hash = "sha256:7d2d7a06a252764061a020407b997dd036f7bd6a175a5ba2b345f0a357f0b3f4"}, + {file = "scandir-1.10.0-cp37-cp37m-win32.whl", hash = "sha256:67f15b6f83e6507fdc6fca22fedf6ef8b334b399ca27c6b568cbfaa82a364173"}, + {file = "scandir-1.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b24086f2375c4a094a6b51e78b4cf7ca16c721dcee2eddd7aa6494b42d6d519d"}, + {file = "scandir-1.10.0.tar.gz", hash = "sha256:4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae"}, +] +singledispatch = [ + {file = "singledispatch-3.7.0-py2.py3-none-any.whl", hash = "sha256:bc77afa97c8a22596d6d4fc20f1b7bdd2b86edc2a65a4262bdd7cc3cc19aa989"}, + {file = "singledispatch-3.7.0.tar.gz", hash = "sha256:c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tox = [ + {file = "tox-3.12.1-py2.py3-none-any.whl", hash = "sha256:f5c8e446b51edd2ea97df31d4ded8c8b72e7d6c619519da6bb6084b9dd5770f9"}, + {file = "tox-3.12.1.tar.gz", hash = "sha256:f87fd33892a2df0950e5e034def9468988b8d008c7e9416be665fcc0dd45b14f"}, +] +typing = [ + {file = "typing-3.10.0.0-py2-none-any.whl", hash = "sha256:c7219ef20c5fbf413b4567092adfc46fa6203cb8454eda33c3fc1afe1398a308"}, + {file = "typing-3.10.0.0-py3-none-any.whl", hash = "sha256:12fbdfbe7d6cca1a42e485229afcb0b0c8259258cfb919b8a5e2a5c953742f89"}, + {file = "typing-3.10.0.0.tar.gz", hash = "sha256:13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130"}, +] +urllib3 = [ + {file = "urllib3-1.22-py2.py3-none-any.whl", hash = "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b"}, + {file = "urllib3-1.22.tar.gz", hash = "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"}, +] +virtualenv = [ + {file = "virtualenv-20.13.0-py2.py3-none-any.whl", hash = "sha256:339f16c4a86b44240ba7223d0f93a7887c3ca04b5f9c8129da7958447d079b09"}, + {file = "virtualenv-20.13.0.tar.gz", hash = "sha256:d8458cf8d59d0ea495ad9b34c2599487f8a7772d796f9910858376d1600dd2dd"}, +] +zipp = [ + {file = "zipp-1.2.0-py2.py3-none-any.whl", hash = "sha256:e0d9e63797e483a30d27e09fffd308c59a700d365ec34e93cc100844168bf921"}, + {file = "zipp-1.2.0.tar.gz", hash = "sha256:c70410551488251b0fee67b460fb9a536af8d6f9f008ad10ac51f615b6a521b1"}, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..8b00187 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,78 @@ +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" + +[tool.coverage.run] +branch = true +source =["openapi_spec_validator"] + +[tool.coverage.xml] +output = "reports/coverage.xml" + +[tool.poetry] +name = "openapi-spec-validator" +version = "0.3.1" +description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator" +authors = ["Artur Maciag "] +license = "Apache License, Version 2.0" +readme = "README.rst" +repository = "https://github.com/p1c2u/openapi-spec-validator" +keywords = ["openapi", "swagger", "schema"] +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Topic :: Software Development :: Libraries :: Python Modules", + "Operating System :: OS Independent", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Topic :: Software Development :: Libraries" +] + +[tool.poetry.dependencies] +python = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" +jsonschema = ">=3.2.0, <4.0.0" +pyrsistent = "<0.17.0" +PyYAML = ">=5.1" +six = "*" +pathlib2 = {version = "*", python = "~2.7"} +openapi-schema-validator = "<0.2.0" +requests = {version = "*", optional = true} + +[tool.poetry.extras] +dev = ["pre-commit"] +requests = ["requests"] + +[tool.poetry.dev-dependencies] +mock = {version = "*", python = "~2.7"} +pre-commit = {version = "*", optional = true} +pytest = "=3.5.0" +pytest-flake8 = "=1.0.7" +pytest-cov = "=2.5.1" +tox = "*" + +[tool.poetry.scripts] +openapi-spec-validator = "openapi_spec_validator.__main__:main" + +[tool.pytest.ini_options] +addopts = """ +--capture=no +--verbose +--showlocals +--junitxml=reports/junit.xml +--cov=openapi_spec_validator +--cov-report=term-missing +--cov-report=xml +""" + +[tool.black] +line-length = 79 + +[tool.isort] +profile = "black" +line_length = 79 +force_single_line = true diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 9beb76e..0000000 --- a/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -jsonschema==3.2.0 -openapi-schema-validator -PyYAML==5.3.1 -six==1.12.0 -requests diff --git a/requirements_dev.txt b/requirements_dev.txt deleted file mode 100644 index a5290e5..0000000 --- a/requirements_dev.txt +++ /dev/null @@ -1,5 +0,0 @@ -mock==2.0.0 -pytest==3.5.0 -pytest-flake8 -pytest-cov==2.5.1 -tox==3.0.0rc4 diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index f802e96..0000000 --- a/setup.cfg +++ /dev/null @@ -1,53 +0,0 @@ -[metadata] -name = openapi-spec-validator -description = OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator -long_description = file: README.rst -long-description-content-type = text/x-rst; charset=UTF-8 -keywords = openapi, swagger, schema -classifiers = - Development Status :: 4 - Beta - Intended Audience :: Developers - Topic :: Software Development :: Libraries :: Python Modules - Operating System :: OS Independent - Programming Language :: Python :: 2.7 - Programming Language :: Python :: 3.5 - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - -[options] -include_package_data = True -packages = find: -zip_safe = False -test_suite = tests -python_requires = >= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.* -setup_requires = - setuptools -install_requires = - jsonschema<5.0.0 - openapi-schema-validator - PyYAML>=5.1 - six - pathlib2; python_version<"3.0" -tests_require = - mock; python_version<"3.0" - pytest - pytest-flake8 - pytest-cov - tox - -[options.entry_points] -console_scripts = - openapi-spec-validator = openapi_spec_validator.__main__:main - -[options.packages.find] -exclude = - tests - -[options.extras_require] -dev = pre-commit -requests = requests - -[tool:pytest] -addopts = -sv --flake8 --junitxml reports/junit.xml --cov openapi_spec_validator --cov-report term-missing --cov-report xml:reports/coverage.xml diff --git a/setup.py b/setup.py deleted file mode 100644 index 268dea8..0000000 --- a/setup.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -"""OpenAPI spec validator setup module""" -import os -import re -import sys -try: - from setuptools import setup -except ImportError: - from ez_setup import use_setuptools - use_setuptools() - from setuptools import setup -finally: - from setuptools.command.test import test as TestCommand - - -def read_file(filename): - """Open and a file, read it and return its contents.""" - path = os.path.join(os.path.dirname(__file__), filename) - with open(path) as f: - return f.read() - - -def get_metadata(init_file): - """Read metadata from a given file and return a dictionary of them""" - return dict(re.findall("__([a-z]+)__ = '([^']+)'", init_file)) - - -class PyTest(TestCommand): - """Command to run unit tests after in-place build.""" - - def finalize_options(self): - TestCommand.finalize_options(self) - self.pytest_args = [] - - def run_tests(self): - # Importing here, `cause outside the eggs aren't loaded. - import pytest - errno = pytest.main(self.pytest_args) - sys.exit(errno) - - -init_path = os.path.join('openapi_spec_validator', '__init__.py') -init_py = read_file(init_path) -metadata = get_metadata(init_py) - -if __name__ == '__main__': - setup( - version=metadata['version'], - author=metadata['author'], - author_email=metadata['email'], - url=metadata['url'], - license=metadata['license'], - cmdclass={'test': PyTest}, - setup_cfg=True, - ) diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index bfd5be9..081dce8 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -1,10 +1,13 @@ -import mock - import pytest from six import StringIO from openapi_spec_validator.__main__ import main +try: + from unittest import mock +except ImportError: + import mock + def test_schema_default(): """Test default schema is 3.0.0""" From 27408847b25ad80c651cccda918314d02f8d22ca Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 16 Jan 2022 04:57:51 +0000 Subject: [PATCH 093/371] Version 0.3.2 --- .bumpversion.cfg | 3 ++- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index bd988ed..fe54fba 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.3.1 +current_version = 0.3.2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) @@ -15,3 +15,4 @@ message = Version {new_version} [bumpversion:file:pyproject.toml] search = version = "{current_version}" replace = version = "{new_version}" + diff --git a/Dockerfile b/Dockerfile index 6ab735d..f6e5ba9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.1 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.2 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 0238ca5..e42cf9c 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.3.1' +__version__ = '0.3.2' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' diff --git a/pyproject.toml b/pyproject.toml index 8b00187..d4a63e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ output = "reports/coverage.xml" [tool.poetry] name = "openapi-spec-validator" -version = "0.3.1" +version = "0.3.2" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator" authors = ["Artur Maciag "] license = "Apache License, Version 2.0" From c7b265aa3c9044765f935405b6146374415cf0e6 Mon Sep 17 00:00:00 2001 From: Veronika Siska Date: Tue, 18 Jan 2022 11:01:07 +0100 Subject: [PATCH 094/371] Use valid licence registry identifier for Apache-2.0 licence This is so that Poetry sets the licence classifier correctly. It only parses licences that contain a precise licence registry identifier --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d4a63e7..135f676 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ name = "openapi-spec-validator" version = "0.3.2" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator" authors = ["Artur Maciag "] -license = "Apache License, Version 2.0" +license = "Apache-2.0" readme = "README.rst" repository = "https://github.com/p1c2u/openapi-spec-validator" keywords = ["openapi", "swagger", "schema"] From 6f16303cc8e5b42fe2f33d4376cac44dbf7c247a Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 22 Jan 2022 08:18:28 -0600 Subject: [PATCH 095/371] add setuptools dependency for pkg_resources, sort deps --- pyproject.toml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 135f676..a9e3412 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,14 +34,15 @@ classifiers = [ ] [tool.poetry.dependencies] -python = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" jsonschema = ">=3.2.0, <4.0.0" +openapi-schema-validator = "<0.2.0" +pathlib2 = {version = "*", python = "~2.7"} pyrsistent = "<0.17.0" +python = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" PyYAML = ">=5.1" -six = "*" -pathlib2 = {version = "*", python = "~2.7"} -openapi-schema-validator = "<0.2.0" requests = {version = "*", optional = true} +setuptools = "*" +six = "*" [tool.poetry.extras] dev = ["pre-commit"] From 4a56eb6a7c1bed57a2902c7ec11b8a6c9c80359f Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 24 Jan 2022 12:24:07 +0000 Subject: [PATCH 096/371] update poetry lock file --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index d9696a4..b8d931f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -177,7 +177,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "importlib-metadata" -version = "2.1.2" +version = "2.1.3" description = "Read metadata from Python packages" category = "main" optional = false @@ -576,7 +576,7 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" -content-hash = "ed22c913fdb7a62db29f6f10d14f53a7c5ae324752f33184002e163d5d28ad0f" +content-hash = "d5e5096869c420cf8bdfd3c55f9e11e09580c86a60cb640d2b74bb03584ea78e" [metadata.files] "aspy.yaml" = [ @@ -691,8 +691,8 @@ idna = [ {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, ] importlib-metadata = [ - {file = "importlib_metadata-2.1.2-py2.py3-none-any.whl", hash = "sha256:cd6a92d78385dd145f5f233b3a6919acf5e8e43922aa9b9dbe78573e3540eb56"}, - {file = "importlib_metadata-2.1.2.tar.gz", hash = "sha256:09db40742204610ef6826af16e49f0479d11d0d54687d0169ff7fddf8b3f557f"}, + {file = "importlib_metadata-2.1.3-py2.py3-none-any.whl", hash = "sha256:52e65a0856f9ba7ea8f2c4ced253fb6c88d1a8c352cb1e916cff4eb17d5a693d"}, + {file = "importlib_metadata-2.1.3.tar.gz", hash = "sha256:02a9f62b02e9b1cc43871809ef99947e8f5d94771392d666ada2cafc4cd09d4f"}, ] importlib-resources = [ {file = "importlib_resources-3.2.1-py2.py3-none-any.whl", hash = "sha256:e2860cf0c4bc999947228d18be154fa3779c5dde0b882bd2d7b3f4d25e698bd6"}, From b6df7940119e45cf22b5e76c20d601d085db4ec6 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 24 Jan 2022 12:27:04 +0000 Subject: [PATCH 097/371] CI unhealthy cache on windows fix --- .github/workflows/python-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index d4ae2d3..f447f4a 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -45,7 +45,8 @@ jobs: key: venv-${{ github.event_name }}-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} - name: Ensure cache is healthy - if: steps.cache.outputs.cache-hit == 'true' && runner.os == 'Linux' + if: steps.cache.outputs.cache-hit == 'true' + shell: bash run: timeout 10s poetry run pip --version || rm -rf .venv - name: Install dependencies From eb169e7e3b245940077a2b9e60b26bf0828d0845 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 27 Jan 2022 10:42:49 +0000 Subject: [PATCH 098/371] Version 0.3.3 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index fe54fba..a52a9a2 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.3.2 +current_version = 0.3.3 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index f6e5ba9..5c3543d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.2 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.3 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index e42cf9c..7830b59 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.3.2' +__version__ = '0.3.3' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' diff --git a/pyproject.toml b/pyproject.toml index a9e3412..9180bdd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ output = "reports/coverage.xml" [tool.poetry] name = "openapi-spec-validator" -version = "0.3.2" +version = "0.3.3" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 4c1b7d9ebf630de384049b8f99b2921f03cc514b Mon Sep 17 00:00:00 2001 From: Robbe Sneyders Date: Sun, 16 Jan 2022 12:05:28 +0100 Subject: [PATCH 099/371] Drop Python 2.7 and 3.5 support --- .github/workflows/python-publish.yml | 11 ++++------- .github/workflows/python-test.yml | 2 +- .travis.yml | 2 -- openapi_spec_validator/generators.py | 3 +-- openapi_spec_validator/handlers/file.py | 4 ++-- openapi_spec_validator/handlers/requests.py | 11 +++++------ openapi_spec_validator/handlers/urllib.py | 8 ++++---- openapi_spec_validator/handlers/utils.py | 8 ++++---- openapi_spec_validator/readers.py | 5 +---- openapi_spec_validator/schemas.py | 5 +++-- openapi_spec_validator/shortcuts.py | 4 ++-- openapi_spec_validator/validators.py | 7 +++---- pyproject.toml | 6 +----- tests/integration/test_main.py | 5 +---- tox.ini | 2 +- 15 files changed, 33 insertions(+), 50 deletions(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index d5306f3..fd8bcba 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -12,21 +12,18 @@ on: jobs: publish: runs-on: ubuntu-latest - strategy: - matrix: - python-version: [2.7, 3.6] steps: - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} + - name: Set up Python uses: actions/setup-python@v2 with: - python-version: ${{ matrix.python-version }} + python-version: '3.x' - name: Bootstrap poetry run: | - python -m pip install --upgrade pip - pip install "poetry<1.2" + curl -sL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python - -y + echo "$HOME/.local/bin" >> $GITHUB_PATH - name: Build run: poetry build diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index f447f4a..9823416 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9] + python-version: [3.6, 3.7, 3.8, 3.9] os: [windows-latest, ubuntu-latest] fail-fast: false steps: diff --git a/.travis.yml b/.travis.yml index 26d675d..62e3cc1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,6 @@ language: python sudo: false matrix: include: - - python: 2.7 - - python: 3.5 - python: 3.6 - python: 3.7 - python: 3.8 diff --git a/openapi_spec_validator/generators.py b/openapi_spec_validator/generators.py index 74c3143..a7b9ee6 100644 --- a/openapi_spec_validator/generators.py +++ b/openapi_spec_validator/generators.py @@ -1,7 +1,6 @@ """OpenAPI spec validator generators module.""" import logging -from six import iteritems from jsonschema.validators import Draft4Validator from openapi_spec_validator.decorators import DerefValidatorDecorator @@ -37,6 +36,6 @@ def from_spec_resolver(cls, spec_resolver): :type instance_resolver: :class:`jsonschema.RefResolver` """ deref = DerefValidatorDecorator(spec_resolver) - for key, validator_callable in iteritems(Draft4Validator.VALIDATORS): + for key, validator_callable in Draft4Validator.VALIDATORS.items(): if key in cls.validators: yield key, deref(validator_callable) diff --git a/openapi_spec_validator/handlers/file.py b/openapi_spec_validator/handlers/file.py index 79a4b1f..abba9ce 100644 --- a/openapi_spec_validator/handlers/file.py +++ b/openapi_spec_validator/handlers/file.py @@ -1,5 +1,5 @@ """OpenAPI spec validator handlers file module.""" -from six import StringIO +import io from yaml import load from openapi_spec_validator.handlers.base import BaseHandler @@ -21,7 +21,7 @@ class FileHandler(FileObjectHandler): """OpenAPI spec validator file path handler.""" def __call__(self, uri): - if isinstance(uri, StringIO): + if isinstance(uri, io.StringIO): return super(FileHandler, self).__call__(uri) assert uri.startswith("file") diff --git a/openapi_spec_validator/handlers/requests.py b/openapi_spec_validator/handlers/requests.py index e998dfe..05165f3 100644 --- a/openapi_spec_validator/handlers/requests.py +++ b/openapi_spec_validator/handlers/requests.py @@ -1,10 +1,9 @@ """OpenAPI spec validator handlers requests module.""" -from __future__ import absolute_import import contextlib - -from six import StringIO -from six.moves.urllib.parse import urlparse +import io import requests +import urllib.parse + from openapi_spec_validator.handlers.file import FileHandler @@ -18,7 +17,7 @@ def __init__(self, *allowed_schemes, **options): self.allowed_schemes = allowed_schemes def __call__(self, url): - scheme = urlparse(url).scheme + scheme = urllib.parse.urlparse(url).scheme assert scheme in self.allowed_schemes if scheme == "file": @@ -27,6 +26,6 @@ def __call__(self, url): response = requests.get(url, timeout=self.timeout) response.raise_for_status() - data = StringIO(response.text) + data = io.StringIO(response.text) with contextlib.closing(data) as fh: return super(UrlRequestsHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/urllib.py b/openapi_spec_validator/handlers/urllib.py index 39544a2..44c2419 100644 --- a/openapi_spec_validator/handlers/urllib.py +++ b/openapi_spec_validator/handlers/urllib.py @@ -1,8 +1,8 @@ """OpenAPI spec validator handlers requests module.""" import contextlib -from six.moves.urllib.parse import urlparse -from six.moves.urllib.request import urlopen +import urllib.parse +import urllib.request from openapi_spec_validator.handlers.file import FileObjectHandler @@ -16,9 +16,9 @@ def __init__(self, *allowed_schemes, **options): self.allowed_schemes = allowed_schemes def __call__(self, url): - assert urlparse(url).scheme in self.allowed_schemes + assert urllib.parse.urlparse(url).scheme in self.allowed_schemes - f = urlopen(url, timeout=self.timeout) + f = urllib.request.urlopen(url, timeout=self.timeout) with contextlib.closing(f) as fh: return super(UrllibHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/utils.py b/openapi_spec_validator/handlers/utils.py index 8b68830..2dd5a85 100644 --- a/openapi_spec_validator/handlers/utils.py +++ b/openapi_spec_validator/handlers/utils.py @@ -1,12 +1,12 @@ import os.path -from six.moves.urllib.parse import urlparse, unquote -from six.moves.urllib.request import url2pathname +import urllib.parse +import urllib.request def uri_to_path(uri): - parsed = urlparse(uri) + parsed = urllib.parse.urlparse(uri) host = "{0}{0}{mnt}{0}".format(os.path.sep, mnt=parsed.netloc) return os.path.normpath( - os.path.join(host, url2pathname(unquote(parsed.path))) + os.path.join(host, urllib.request.url2pathname(urllib.parse.unquote(parsed.path))) ) diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index 5fb5f80..7c4fe6c 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -1,8 +1,5 @@ import os -try: - import pathlib -except ImportError: - import pathlib2 as pathlib +import pathlib import sys from openapi_spec_validator import all_urls_handler, file_object_handler diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas.py index c2857c0..22b9d0f 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas.py @@ -2,7 +2,8 @@ import os from pkg_resources import resource_filename -from six.moves.urllib import parse, request +import urllib.parse +import urllib.request from yaml import load from openapi_spec_validator.loaders import ExtendedSafeLoader @@ -13,7 +14,7 @@ def get_openapi_schema(version): path_resource = resource_filename('openapi_spec_validator', path) path_full = os.path.join(os.path.dirname(__file__), path_resource) schema = read_yaml_file(path_full) - schema_url = parse.urljoin('file:', request.pathname2url(path_full)) + schema_url = urllib.parse.urljoin('file:', urllib.request.pathname2url(path_full)) return schema, schema_url diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 83fff18..ef5ee29 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -1,5 +1,5 @@ """OpenAPI spec validator shortcuts module.""" -from six.moves.urllib import parse +import urllib.parse def validate_spec_factory(validator_callable): @@ -10,7 +10,7 @@ def validate(spec, spec_url=''): def validate_spec_url_factory(validator_callable, handlers): def validate(url): - result = parse.urlparse(url) + result = urllib.parse.urlparse(url) handler = handlers[result.scheme] spec = handler(url) return validator_callable(spec, spec_url=url) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index ee26961..b4199ad 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -3,7 +3,6 @@ from jsonschema.validators import RefResolver from openapi_schema_validator import OAS30Validator, oas30_format_checker -from six import iteritems from openapi_spec_validator.exceptions import ( ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, @@ -108,7 +107,7 @@ def __init__(self, dereferencer): @wraps_errors def iter_errors(self, schemas): schemas_deref = self.dereferencer.dereference(schemas) - for name, schema in iteritems(schemas_deref): + for name, schema in schemas_deref.items(): for err in self._iter_schema_errors(schema): yield err @@ -164,7 +163,7 @@ def __init__(self, dereferencer, operation_ids_registry=None): @wraps_errors def iter_errors(self, paths): paths_deref = self.dereferencer.dereference(paths) - for url, path_item in iteritems(paths_deref): + for url, path_item in paths_deref.items(): for err in self._iter_path_errors(url, path_item): yield err @@ -213,7 +212,7 @@ def iter_errors(self, url, path_item): for err in self._iter_parameters_errors(parameters): yield err - for field_name, operation in iteritems(path_item): + for field_name, operation in path_item.items(): if field_name not in self.OPERATIONS: continue diff --git a/pyproject.toml b/pyproject.toml index 9180bdd..7b3a95d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,9 +23,7 @@ classifiers = [ "Intended Audience :: Developers", "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: OS Independent", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", @@ -36,9 +34,8 @@ classifiers = [ [tool.poetry.dependencies] jsonschema = ">=3.2.0, <4.0.0" openapi-schema-validator = "<0.2.0" -pathlib2 = {version = "*", python = "~2.7"} pyrsistent = "<0.17.0" -python = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" +python = ">= 3.6" PyYAML = ">=5.1" requests = {version = "*", optional = true} setuptools = "*" @@ -49,7 +46,6 @@ dev = ["pre-commit"] requests = ["requests"] [tool.poetry.dev-dependencies] -mock = {version = "*", python = "~2.7"} pre-commit = {version = "*", optional = true} pytest = "=3.5.0" pytest-flake8 = "=1.0.7" diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index 081dce8..2f6ae9c 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -3,10 +3,7 @@ from openapi_spec_validator.__main__ import main -try: - from unittest import mock -except ImportError: - import mock +from unittest import mock def test_schema_default(): diff --git a/tox.ini b/tox.ini index e582da4..8fa8781 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {py27,py35,py36}-{default,simplejson} +envlist = {py36,py37,py38,py39}-{default,simplejson} [testenv] deps = From 0ac7a43db8029c3a565cd7a3c23c931554fcd2f4 Mon Sep 17 00:00:00 2001 From: Robbe Sneyders Date: Sun, 16 Jan 2022 12:06:08 +0100 Subject: [PATCH 100/371] Bump jsonschema and openapi-schema-validator upper bounds --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7b3a95d..d59ccb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,8 +32,8 @@ classifiers = [ ] [tool.poetry.dependencies] -jsonschema = ">=3.2.0, <4.0.0" -openapi-schema-validator = "<0.2.0" +jsonschema = ">=3.2.0, <5.0.0" +openapi-schema-validator = "^0.2.0" pyrsistent = "<0.17.0" python = ">= 3.6" PyYAML = ">=5.1" From 04f30172e1e6bb03b77a154fc95e1283495ea8ed Mon Sep 17 00:00:00 2001 From: Robbe Sneyders Date: Sat, 22 Jan 2022 12:28:19 +0100 Subject: [PATCH 101/371] Drop python 3.6 support and add 3.10 --- .github/workflows/python-test.yml | 2 +- .travis.yml | 14 +- poetry.lock | 706 +++++++++++++----------------- pyproject.toml | 9 +- tests/integration/conftest.py | 4 +- tests/integration/test_main.py | 2 +- tox.ini | 2 +- 7 files changed, 317 insertions(+), 422 deletions(-) diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 9823416..d511ca9 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: [3.6, 3.7, 3.8, 3.9] + python-version: ['3.7', '3.8', '3.9', '3.10'] os: [windows-latest, ubuntu-latest] fail-fast: false steps: diff --git a/.travis.yml b/.travis.yml index 62e3cc1..ba691cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,14 +2,14 @@ language: python sudo: false matrix: include: - - python: 3.6 - - python: 3.7 - - python: 3.8 - - python: 3.9 - - python: nightly - - python: pypy3 + - python: '3.7' + - python: '3.8' + - python: '3.9' + - python: '3.10-dev' + - python: 'nightly' + - python: 'pypy3' allow_failures: - - python: nightly + - python: 'nightly' before_install: - python -m pip install --upgrade pip - pip install "poetry<1.2" diff --git a/poetry.lock b/poetry.lock index b8d931f..8a21425 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,14 +1,11 @@ [[package]] -name = "aspy.yaml" -version = "1.3.0" -description = "A few extensions to pyyaml." +name = "atomicwrites" +version = "1.4.0" +description = "Atomic file writes." category = "dev" -optional = true +optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -[package.dependencies] -pyyaml = "*" - [[package]] name = "attrs" version = "21.4.0" @@ -33,22 +30,22 @@ python-versions = "*" [[package]] name = "cfgv" -version = "2.0.1" +version = "3.3.1" description = "Validate configuration and produce human readable error messages." category = "dev" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -six = "*" +python-versions = ">=3.6.1" [[package]] -name = "chardet" -version = "4.0.0" -description = "Universal encoding detector for Python 2 and 3" +name = "charset-normalizer" +version = "2.0.10" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.5.0" + +[package.extras] +unicode_backport = ["unicodedata2"] [[package]] name = "colorama" @@ -58,33 +55,19 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -[[package]] -name = "configparser" -version = "4.0.2" -description = "Updated configparser from Python 3.7 for Python 2.6+." -category = "main" -optional = false -python-versions = ">=2.6" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2)", "pytest-flake8", "pytest-black-multipy"] - -[[package]] -name = "contextlib2" -version = "0.6.0.post1" -description = "Backports and enhancements for the contextlib module" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - [[package]] name = "coverage" -version = "4.4.2" +version = "6.3" description = "Code coverage measurement for Python" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "extra == \"toml\""} + +[package.extras] +toml = ["tomli"] [[package]] name = "distlib" @@ -94,152 +77,108 @@ category = "dev" optional = false python-versions = "*" -[[package]] -name = "enum34" -version = "1.1.10" -description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4" -category = "dev" -optional = false -python-versions = "*" - [[package]] name = "filelock" -version = "3.2.1" +version = "3.4.2" description = "A platform independent file lock." category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.7" [package.extras] docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] -testing = ["coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] +testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] [[package]] name = "flake8" -version = "3.9.2" +version = "4.0.1" description = "the modular source code checker: pep8 pyflakes and co" category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6" [package.dependencies] -configparser = {version = "*", markers = "python_version < \"3.2\""} -enum34 = {version = "*", markers = "python_version < \"3.4\""} -functools32 = {version = "*", markers = "python_version < \"3.2\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +importlib-metadata = {version = "<4.3", markers = "python_version < \"3.8\""} mccabe = ">=0.6.0,<0.7.0" -pycodestyle = ">=2.7.0,<2.8.0" -pyflakes = ">=2.3.0,<2.4.0" -typing = {version = "*", markers = "python_version < \"3.5\""} - -[[package]] -name = "funcsigs" -version = "1.0.2" -description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "functools32" -version = "3.2.3-2" -description = "Backport of the functools module from Python 3.2.3 for use on 2.7 and PyPy." -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "futures" -version = "3.3.0" -description = "Backport of the concurrent.futures package from Python 3" -category = "dev" -optional = true -python-versions = ">=2.6, <3" +pycodestyle = ">=2.8.0,<2.9.0" +pyflakes = ">=2.4.0,<2.5.0" [[package]] name = "identify" -version = "1.6.2" +version = "2.4.5" description = "File identification library for Python" category = "dev" optional = true -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +python-versions = ">=3.7" [package.extras] -license = ["editdistance"] +license = ["ukkonen"] [[package]] name = "idna" -version = "2.10" +version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.5" [[package]] name = "importlib-metadata" -version = "2.1.3" +version = "4.2.0" description = "Read metadata from Python packages" category = "main" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6" [package.dependencies] -configparser = {version = ">=3.5", markers = "python_version < \"3\""} -contextlib2 = {version = "*", markers = "python_version < \"3\""} -pathlib2 = {version = "*", markers = "python_version < \"3\""} +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "rst.linker"] -testing = ["packaging", "pep517", "unittest2", "importlib-resources (>=1.3)"] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] [[package]] name = "importlib-resources" -version = "3.2.1" +version = "5.4.0" description = "Read resources from Python packages" -category = "dev" +category = "main" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6" [package.dependencies] -contextlib2 = {version = "*", markers = "python_version < \"3\""} -pathlib2 = {version = "*", markers = "python_version < \"3\""} -singledispatch = {version = "*", markers = "python_version < \"3.4\""} -typing = {version = "*", markers = "python_version < \"3.5\""} -zipp = {version = ">=0.4", markers = "python_version < \"3.8\""} +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["sphinx", "rst.linker", "jaraco.packaging"] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"] [[package]] -name = "isodate" -version = "0.6.1" -description = "An ISO 8601 date/time/duration parser and formatter" -category = "main" +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = "*" -[package.dependencies] -six = "*" - [[package]] name = "jsonschema" -version = "3.2.0" +version = "4.4.0" description = "An implementation of JSON Schema validation for Python" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7" [package.dependencies] attrs = ">=17.4.0" -functools32 = {version = "*", markers = "python_version < \"3\""} importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} -pyrsistent = ">=0.14.0" -six = ">=1.11.0" +importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format_nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] [[package]] name = "mccabe" @@ -249,34 +188,6 @@ category = "dev" optional = false python-versions = "*" -[[package]] -name = "mock" -version = "3.0.5" -description = "Rolling backport of unittest.mock for all Pythons" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -funcsigs = {version = ">=1", markers = "python_version < \"3.3\""} -six = "*" - -[package.extras] -build = ["twine", "wheel", "blurb"] -docs = ["sphinx"] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "more-itertools" -version = "5.0.0" -description = "More routines for operating on iterables, beyond itertools" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -six = ">=1.0.0,<2.0.0" - [[package]] name = "nodeenv" version = "1.6.0" @@ -287,70 +198,74 @@ python-versions = "*" [[package]] name = "openapi-schema-validator" -version = "0.1.6" +version = "0.2.2" description = "OpenAPI schema validation for Python" category = "main" optional = false -python-versions = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" +python-versions = ">=3.7.0,<4.0.0" [package.dependencies] -isodate = "*" -jsonschema = ">=3.0.0" -six = "*" +jsonschema = ">=3.0.0,<5.0.0" [package.extras] +rfc3339-validator = ["rfc3339-validator"] +strict-rfc3339 = ["strict-rfc3339"] isodate = ["isodate"] -rfc3339_validator = ["rfc3339-validator"] -strict_rfc3339 = ["strict-rfc3339"] [[package]] -name = "pathlib2" -version = "2.3.6" -description = "Object-oriented filesystem paths" -category = "main" +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" [package.dependencies] -scandir = {version = "*", markers = "python_version < \"3.5\""} -six = "*" +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "platformdirs" -version = "2.0.2" +version = "2.4.1" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.7" + +[package.extras] +docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] [[package]] name = "pluggy" -version = "0.6.0" +version = "1.0.0" description = "plugin and hook calling mechanisms for python" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" + +[package.dependencies] +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "1.21.0" +version = "2.17.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." category = "dev" optional = true -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6.1" [package.dependencies] -"aspy.yaml" = "*" cfgv = ">=2.0.0" -futures = {version = "*", markers = "python_version < \"3.2\""} identify = ">=1.0.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} -importlib-resources = {version = "*", markers = "python_version < \"3.7\""} nodeenv = ">=0.11.1" -pyyaml = "*" -six = "*" +pyyaml = ">=5.1" toml = "*" -virtualenv = ">=15.2" +virtualenv = ">=20.0.8" [[package]] name = "py" @@ -362,20 +277,31 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "pycodestyle" -version = "2.7.0" +version = "2.8.0" description = "Python style guide checker" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "pyflakes" -version = "2.3.1" +version = "2.4.0" description = "passive checker of Python programs" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "pyparsing" +version = "3.0.7" +description = "Python parsing module" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + [[package]] name = "pyrsistent" version = "0.16.1" @@ -389,32 +315,40 @@ six = "*" [[package]] name = "pytest" -version = "3.5.0" +version = "6.2.5" description = "pytest: simple powerful testing with Python" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [package.dependencies] -attrs = ">=17.4.0" +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} -funcsigs = {version = "*", markers = "python_version < \"3.0\""} -more-itertools = ">=4.0.0" -pluggy = ">=0.5,<0.7" -py = ">=1.5.0" -six = ">=1.10.0" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] [[package]] name = "pytest-cov" -version = "2.5.1" +version = "3.0.0" description = "Pytest plugin for measuring coverage." category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" [package.dependencies] -coverage = ">=3.7.1" -pytest = ">=2.6.0" +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtualenv"] [[package]] name = "pytest-flake8" @@ -430,52 +364,29 @@ pytest = ">=3.5" [[package]] name = "pyyaml" -version = "5.3.1" +version = "6.0" description = "YAML parser and emitter for Python" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.6" [[package]] name = "requests" -version = "2.25.1" +version = "2.27.1" description = "Python HTTP for Humans." category = "main" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.dependencies] certifi = ">=2017.4.17" -chardet = ">=3.0.2,<5" -idna = ">=2.5,<3" +charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} +idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} urllib3 = ">=1.21.1,<1.27" [package.extras] -security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] - -[[package]] -name = "scandir" -version = "1.10.0" -description = "scandir, a better directory iterator and faster os.walk()" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "singledispatch" -version = "3.7.0" -description = "Backport functools.singledispatch from Python 3.4 to Python 2.6-3.3." -category = "dev" -optional = false -python-versions = ">=2.6" - -[package.dependencies] -six = "*" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "unittest2", "pytest-checkdocs (>=2.4)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] [[package]] name = "six" @@ -493,43 +404,55 @@ category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +[[package]] +name = "tomli" +version = "2.0.0" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.7" + [[package]] name = "tox" -version = "3.12.1" +version = "3.24.5" description = "tox is a generic virtualenv management and test command line tool" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [package.dependencies] -filelock = ">=3.0.0,<4" -pluggy = ">=0.3.0,<1" -py = ">=1.4.17,<2" -six = ">=1.0.0,<2" +colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} +filelock = ">=3.0.0" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +packaging = ">=14" +pluggy = ">=0.12.0" +py = ">=1.4.17" +six = ">=1.14.0" toml = ">=0.9.4" -virtualenv = ">=14.0.0" +virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7" [package.extras] -docs = ["sphinx (>=2.0.0,<3)", "towncrier (>=18.5.0)", "pygments-github-lexers (>=0.0.5)", "sphinxcontrib-autoprogram (>=0.1.5)"] -testing = ["freezegun (>=0.3.11,<1)", "pathlib2 (>=2.3.3,<3)", "pytest (>=3.0.0,<5)", "pytest-cov (>=2.5.1,<3)", "pytest-mock (>=1.10.0,<2)", "pytest-xdist (>=1.22.2,<2)", "pytest-randomly (>=1.2.3,<2)", "flaky (>=3.4.0,<4)", "psutil (>=5.6.1,<6)"] +docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "psutil (>=5.6.1)", "pathlib2 (>=2.3.3)"] [[package]] -name = "typing" -version = "3.10.0.0" -description = "Type Hints for Python" -category = "dev" +name = "typing-extensions" +version = "4.0.1" +description = "Backported and Experimental Type Hints for Python 3.6+" +category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <3.5" +python-versions = ">=3.6" [[package]] name = "urllib3" -version = "1.22" +version = "1.26.8" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = true -python-versions = "*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" [package.extras] +brotli = ["brotlipy (>=0.6.0)"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] @@ -545,8 +468,6 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" distlib = ">=0.3.1,<1" filelock = ">=3.2,<4" importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""} -pathlib2 = {version = ">=2.3.3,<3", markers = "python_version < \"3.4\" and sys_platform != \"win32\""} platformdirs = ">=2,<3" six = ">=1.9.0,<2" @@ -556,18 +477,15 @@ testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", [[package]] name = "zipp" -version = "1.2.0" +version = "3.7.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false -python-versions = ">=2.7" - -[package.dependencies] -contextlib2 = {version = "*", markers = "python_version < \"3.4\""} +python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] -testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] [extras] dev = [] @@ -575,13 +493,13 @@ requests = ["requests"] [metadata] lock-version = "1.1" -python-versions = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*" -content-hash = "d5e5096869c420cf8bdfd3c55f9e11e09580c86a60cb640d2b74bb03584ea78e" +python-versions = "^3.7.0" +content-hash = "134e2e38a04f952985a854bd4ffd3ece7f144c2cbf1b8fa58d4370b4711ebeb8" [metadata.files] -"aspy.yaml" = [ - {file = "aspy.yaml-1.3.0-py2.py3-none-any.whl", hash = "sha256:463372c043f70160a9ec950c3f1e4c3a82db5fca01d334b6bc89c7164d744bdc"}, - {file = "aspy.yaml-1.3.0.tar.gz", hash = "sha256:e7c742382eff2caed61f87a39d13f99109088e5e93f04d76eb8d4b28aa143f45"}, +atomicwrites = [ + {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, + {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, ] attrs = [ {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, @@ -592,221 +510,196 @@ certifi = [ {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, ] cfgv = [ - {file = "cfgv-2.0.1-py2.py3-none-any.whl", hash = "sha256:fbd93c9ab0a523bf7daec408f3be2ed99a980e20b2d19b50fc184ca6b820d289"}, - {file = "cfgv-2.0.1.tar.gz", hash = "sha256:edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144"}, + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, ] -chardet = [ - {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, - {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, +charset-normalizer = [ + {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"}, + {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"}, ] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, ] -configparser = [ - {file = "configparser-4.0.2-py2.py3-none-any.whl", hash = "sha256:254c1d9c79f60c45dfde850850883d5aaa7f19a23f13561243a050d5a7c3fe4c"}, - {file = "configparser-4.0.2.tar.gz", hash = "sha256:c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df"}, -] -contextlib2 = [ - {file = "contextlib2-0.6.0.post1-py2.py3-none-any.whl", hash = "sha256:3355078a159fbb44ee60ea80abd0d87b80b78c248643b49aa6d94673b413609b"}, - {file = "contextlib2-0.6.0.post1.tar.gz", hash = "sha256:01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e"}, -] coverage = [ - {file = "coverage-4.4.2-cp26-cp26m-macosx_10_10_x86_64.whl", hash = "sha256:d1ee76f560c3c3e8faada866a07a32485445e16ed2206ac8378bd90dadffb9f0"}, - {file = "coverage-4.4.2-cp26-cp26m-manylinux1_i686.whl", hash = "sha256:007eeef7e23f9473622f7d94a3e029a45d55a92a1f083f0f3512f5ab9a669b05"}, - {file = "coverage-4.4.2-cp26-cp26m-manylinux1_x86_64.whl", hash = "sha256:17307429935f96c986a1b1674f78079528833410750321d22b5fb35d1883828e"}, - {file = "coverage-4.4.2-cp26-cp26mu-manylinux1_i686.whl", hash = "sha256:845fddf89dca1e94abe168760a38271abfc2e31863fbb4ada7f9a99337d7c3dc"}, - {file = "coverage-4.4.2-cp26-cp26mu-manylinux1_x86_64.whl", hash = "sha256:3f4d0b3403d3e110d2588c275540649b1841725f5a11a7162620224155d00ba2"}, - {file = "coverage-4.4.2-cp27-cp27m-macosx_10_12_intel.whl", hash = "sha256:4c4f368ffe1c2e7602359c2c50233269f3abe1c48ca6b288dcd0fb1d1c679733"}, - {file = "coverage-4.4.2-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:f8c55dd0f56d3d618dfacf129e010cbe5d5f94b6951c1b2f13ab1a2f79c284da"}, - {file = "coverage-4.4.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:cdd92dd9471e624cd1d8c1a2703d25f114b59b736b0f1f659a98414e535ffb3d"}, - {file = "coverage-4.4.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2ad357d12971e77360034c1596011a03f50c0f9e1ecd12e081342b8d1aee2236"}, - {file = "coverage-4.4.2-cp27-cp27m-win32.whl", hash = "sha256:700d7579995044dc724847560b78ac786f0ca292867447afda7727a6fbaa082e"}, - {file = "coverage-4.4.2-cp27-cp27m-win_amd64.whl", hash = "sha256:66f393e10dd866be267deb3feca39babba08ae13763e0fc7a1063cbe1f8e49f6"}, - {file = "coverage-4.4.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:e9a0e1caed2a52f15c96507ab78a48f346c05681a49c5b003172f8073da6aa6b"}, - {file = "coverage-4.4.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:eea9135432428d3ca7ee9be86af27cb8e56243f73764a9b6c3e0bda1394916be"}, - {file = "coverage-4.4.2-cp33-cp33m-macosx_10_10_x86_64.whl", hash = "sha256:5ff16548492e8a12e65ff3d55857ccd818584ed587a6c2898a9ebbe09a880674"}, - {file = "coverage-4.4.2-cp33-cp33m-manylinux1_i686.whl", hash = "sha256:d00e29b78ff610d300b2c37049a41234d48ea4f2d2581759ebcf67caaf731c31"}, - {file = "coverage-4.4.2-cp33-cp33m-manylinux1_x86_64.whl", hash = "sha256:87d942863fe74b1c3be83a045996addf1639218c2cb89c5da18c06c0fe3917ea"}, - {file = "coverage-4.4.2-cp34-cp34m-macosx_10_10_x86_64.whl", hash = "sha256:358d635b1fc22a425444d52f26287ae5aea9e96e254ff3c59c407426f44574f4"}, - {file = "coverage-4.4.2-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:81912cfe276e0069dca99e1e4e6be7b06b5fc8342641c6b472cb2fed7de7ae18"}, - {file = "coverage-4.4.2-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:079248312838c4c8f3494934ab7382a42d42d5f365f0cf7516f938dbb3f53f3f"}, - {file = "coverage-4.4.2-cp34-cp34m-win32.whl", hash = "sha256:b0059630ca5c6b297690a6bf57bf2fdac1395c24b7935fd73ee64190276b743b"}, - {file = "coverage-4.4.2-cp34-cp34m-win_amd64.whl", hash = "sha256:493082f104b5ca920e97a485913de254cbe351900deed72d4264571c73464cd0"}, - {file = "coverage-4.4.2-cp35-cp35m-macosx_10_10_x86_64.whl", hash = "sha256:e3ba9b14607c23623cf38f90b23f5bed4a3be87cbfa96e2e9f4eabb975d1e98b"}, - {file = "coverage-4.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:82cbd3317320aa63c65555aa4894bf33a13fb3a77f079059eb5935eea415938d"}, - {file = "coverage-4.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9721f1b7275d3112dc7ccf63f0553c769f09b5c25a26ee45872c7f5c09edf6c1"}, - {file = "coverage-4.4.2-cp35-cp35m-win32.whl", hash = "sha256:bd4800e32b4c8d99c3a2c943f1ac430cbf80658d884123d19639bcde90dad44a"}, - {file = "coverage-4.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:f29841e865590af72c4b90d7b5b8e93fd560f5dea436c1d5ee8053788f9285de"}, - {file = "coverage-4.4.2-cp36-cp36m-macosx_10_12_x86_64.whl", hash = "sha256:f3a5c6d054c531536a83521c00e5d4004f1e126e2e2556ce399bef4180fbe540"}, - {file = "coverage-4.4.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:dd707a21332615108b736ef0b8513d3edaf12d2a7d5fc26cd04a169a8ae9b526"}, - {file = "coverage-4.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2e1a5c6adebb93c3b175103c2f855eda957283c10cf937d791d81bef8872d6ca"}, - {file = "coverage-4.4.2-cp36-cp36m-win32.whl", hash = "sha256:f87f522bde5540d8a4b11df80058281ac38c44b13ce29ced1e294963dd51a8f8"}, - {file = "coverage-4.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a7cfaebd8f24c2b537fa6a271229b051cdac9c1734bb6f939ccfc7c055689baa"}, - {file = "coverage-4.4.2.tar.gz", hash = "sha256:309d91bd7a35063ec7a0e4d75645488bfab3f0b66373e7722f23da7f5b0f34cc"}, - {file = "coverage-4.4.2.win-amd64-py2.7.exe", hash = "sha256:b6cebae1502ce5b87d7c6f532fa90ab345cfbda62b95aeea4e431e164d498a3d"}, - {file = "coverage-4.4.2.win-amd64-py3.4.exe", hash = "sha256:a4497faa4f1c0fc365ba05eaecfb6b5d24e3c8c72e95938f9524e29dadb15e76"}, - {file = "coverage-4.4.2.win-amd64-py3.5.exe", hash = "sha256:2b4d7f03a8a6632598cbc5df15bbca9f778c43db7cf1a838f4fa2c8599a8691a"}, - {file = "coverage-4.4.2.win-amd64-py3.6.exe", hash = "sha256:1afccd7e27cac1b9617be8c769f6d8a6d363699c9b86820f40c74cfb3328921c"}, - {file = "coverage-4.4.2.win32-py2.7.exe", hash = "sha256:0388c12539372bb92d6dde68b4627f0300d948965bbb7fc104924d715fdc0965"}, - {file = "coverage-4.4.2.win32-py3.4.exe", hash = "sha256:ab3508df9a92c1d3362343d235420d08e2662969b83134f8a97dc1451cbe5e84"}, - {file = "coverage-4.4.2.win32-py3.5.exe", hash = "sha256:43a155eb76025c61fc20c3d03b89ca28efa6f5be572ab6110b2fb68eda96bfea"}, - {file = "coverage-4.4.2.win32-py3.6.exe", hash = "sha256:f98b461cb59f117887aa634a66022c0bd394278245ed51189f63a036516e32de"}, + {file = "coverage-6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e8071e7d9ba9f457fc674afc3de054450be2c9b195c470147fbbc082468d8ff7"}, + {file = "coverage-6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86c91c511853dfda81c2cf2360502cb72783f4b7cebabef27869f00cbe1db07d"}, + {file = "coverage-6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4ce3b647bd1792d4394f5690d9df6dc035b00bcdbc5595099c01282a59ae01"}, + {file = "coverage-6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a491e159294d756e7fc8462f98175e2d2225e4dbe062cca7d3e0d5a75ba6260"}, + {file = "coverage-6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d008e0f67ac800b0ca04d7914b8501312c8c6c00ad8c7ba17754609fae1231a"}, + {file = "coverage-6.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4578728c36de2801c1deb1c6b760d31883e62e33f33c7ba8f982e609dc95167d"}, + {file = "coverage-6.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7ee317486593193e066fc5e98ac0ce712178c21529a85c07b7cb978171f25d53"}, + {file = "coverage-6.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2bc85664b06ba42d14bb74d6ddf19d8bfc520cb660561d2d9ce5786ae72f71b5"}, + {file = "coverage-6.3-cp310-cp310-win32.whl", hash = "sha256:27a94db5dc098c25048b0aca155f5fac674f2cf1b1736c5272ba28ead2fc267e"}, + {file = "coverage-6.3-cp310-cp310-win_amd64.whl", hash = "sha256:bde4aeabc0d1b2e52c4036c54440b1ad05beeca8113f47aceb4998bb7471e2c2"}, + {file = "coverage-6.3-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:509c68c3e2015022aeda03b003dd68fa19987cdcf64e9d4edc98db41cfc45d30"}, + {file = "coverage-6.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e4ff163602c5c77e7bb4ea81ba5d3b793b4419f8acd296aae149370902cf4e92"}, + {file = "coverage-6.3-cp311-cp311-win_amd64.whl", hash = "sha256:d1675db48490e5fa0b300f6329ecb8a9a37c29b9ab64fa9c964d34111788ca2d"}, + {file = "coverage-6.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7eed8459a2b81848cafb3280b39d7d49950d5f98e403677941c752e7e7ee47cb"}, + {file = "coverage-6.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b4285fde5286b946835a1a53bba3ad41ef74285ba9e8013e14b5ea93deaeafc"}, + {file = "coverage-6.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4748349734110fd32d46ff8897b561e6300d8989a494ad5a0a2e4f0ca974fc7"}, + {file = "coverage-6.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:823f9325283dc9565ba0aa2d240471a93ca8999861779b2b6c7aded45b58ee0f"}, + {file = "coverage-6.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fff16a30fdf57b214778eff86391301c4509e327a65b877862f7c929f10a4253"}, + {file = "coverage-6.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:da1a428bdbe71f9a8c270c7baab29e9552ac9d0e0cba5e7e9a4c9ee6465d258d"}, + {file = "coverage-6.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7d82c610a2e10372e128023c5baf9ce3d270f3029fe7274ff5bc2897c68f1318"}, + {file = "coverage-6.3-cp37-cp37m-win32.whl", hash = "sha256:11e61c5548ecf74ea1f8b059730b049871f0e32b74f88bd0d670c20c819ad749"}, + {file = "coverage-6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8e0c3525b1a182c8ffc9bca7e56b521e0c2b8b3e82f033c8e16d6d721f1b54d6"}, + {file = "coverage-6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a189036c50dcd56100746139a459f0d27540fef95b09aba03e786540b8feaa5f"}, + {file = "coverage-6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32168001f33025fd756884d56d01adebb34e6c8c0b3395ca8584cdcee9c7c9d2"}, + {file = "coverage-6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5d79c9af3f410a2b5acad91258b4ae179ee9c83897eb9de69151b179b0227f5"}, + {file = "coverage-6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:85c5fc9029043cf8b07f73fbb0a7ab6d3b717510c3b5642b77058ea55d7cacde"}, + {file = "coverage-6.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7596aa2f2b8fa5604129cfc9a27ad9beec0a96f18078cb424d029fdd707468d"}, + {file = "coverage-6.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ce443a3e6df90d692c38762f108fc4c88314bf477689f04de76b3f252e7a351c"}, + {file = "coverage-6.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:012157499ec4f135fc36cd2177e3d1a1840af9b236cbe80e9a5ccfc83d912a69"}, + {file = "coverage-6.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0a34d313105cdd0d3644c56df2d743fe467270d6ab93b5d4a347eb9fec8924d6"}, + {file = "coverage-6.3-cp38-cp38-win32.whl", hash = "sha256:6e78b1e25e5c5695dea012be473e442f7094d066925604be20b30713dbd47f89"}, + {file = "coverage-6.3-cp38-cp38-win_amd64.whl", hash = "sha256:433b99f7b0613bdcdc0b00cc3d39ed6d756797e3b078d2c43f8a38288520aec6"}, + {file = "coverage-6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9ed3244b415725f08ca3bdf02ed681089fd95e9465099a21c8e2d9c5d6ca2606"}, + {file = "coverage-6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab4fc4b866b279740e0d917402f0e9a08683e002f43fa408e9655818ed392196"}, + {file = "coverage-6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8582e9280f8d0f38114fe95a92ae8d0790b56b099d728cc4f8a2e14b1c4a18c"}, + {file = "coverage-6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c72bb4679283c6737f452eeb9b2a0e570acaef2197ad255fb20162adc80bea76"}, + {file = "coverage-6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca29c352389ea27a24c79acd117abdd8a865c6eb01576b6f0990cd9a4e9c9f48"}, + {file = "coverage-6.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:152cc2624381df4e4e604e21bd8e95eb8059535f7b768c1fb8b8ae0b26f47ab0"}, + {file = "coverage-6.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:51372e24b1f7143ee2df6b45cff6a721f3abe93b1e506196f3ffa4155c2497f7"}, + {file = "coverage-6.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:72d9d186508325a456475dd05b1756f9a204c7086b07fffb227ef8cee03b1dc2"}, + {file = "coverage-6.3-cp39-cp39-win32.whl", hash = "sha256:649df3641eb351cdfd0d5533c92fc9df507b6b2bf48a7ef8c71ab63cbc7b5c3c"}, + {file = "coverage-6.3-cp39-cp39-win_amd64.whl", hash = "sha256:e67ccd53da5958ea1ec833a160b96357f90859c220a00150de011b787c27b98d"}, + {file = "coverage-6.3-pp36.pp37.pp38-none-any.whl", hash = "sha256:27ac7cb84538e278e07569ceaaa6f807a029dc194b1c819a9820b9bb5dbf63ab"}, + {file = "coverage-6.3.tar.gz", hash = "sha256:987a84ff98a309994ca77ed3cc4b92424f824278e48e4bf7d1bb79a63cfe2099"}, ] distlib = [ {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, ] -enum34 = [ - {file = "enum34-1.1.10-py2-none-any.whl", hash = "sha256:a98a201d6de3f2ab3db284e70a33b0f896fbf35f8086594e8c9e74b909058d53"}, - {file = "enum34-1.1.10-py3-none-any.whl", hash = "sha256:c3858660960c984d6ab0ebad691265180da2b43f07e061c0f8dca9ef3cffd328"}, - {file = "enum34-1.1.10.tar.gz", hash = "sha256:cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248"}, -] filelock = [ - {file = "filelock-3.2.1-py2.py3-none-any.whl", hash = "sha256:7f07b08d731907441ff40d0c5b81f9512cd968842e0b6264c8bd18a8ce877760"}, - {file = "filelock-3.2.1.tar.gz", hash = "sha256:9cdd29c411ab196cf4c35a1da684f7b9da723696cb356efa45bf5eb1ff313ee3"}, + {file = "filelock-3.4.2-py3-none-any.whl", hash = "sha256:cf0fc6a2f8d26bd900f19bf33915ca70ba4dd8c56903eeb14e1e7a2fd7590146"}, + {file = "filelock-3.4.2.tar.gz", hash = "sha256:38b4f4c989f9d06d44524df1b24bd19e167d851f19b50bf3e3559952dddc5b80"}, ] flake8 = [ - {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, - {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, -] -funcsigs = [ - {file = "funcsigs-1.0.2-py2.py3-none-any.whl", hash = "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca"}, - {file = "funcsigs-1.0.2.tar.gz", hash = "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"}, -] -functools32 = [ - {file = "functools32-3.2.3-2.tar.gz", hash = "sha256:f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d"}, - {file = "functools32-3.2.3-2.zip", hash = "sha256:89d824aa6c358c421a234d7f9ee0bd75933a67c29588ce50aaa3acdf4d403fa0"}, -] -futures = [ - {file = "futures-3.3.0-py2-none-any.whl", hash = "sha256:49b3f5b064b6e3afc3316421a3f25f66c137ae88f068abbf72830170033c5e16"}, - {file = "futures-3.3.0.tar.gz", hash = "sha256:7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794"}, + {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, + {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, ] identify = [ - {file = "identify-1.6.2-py2.py3-none-any.whl", hash = "sha256:8f9879b5b7cca553878d31548a419ec2f227d3328da92fe8202bc5e546d5cbc3"}, - {file = "identify-1.6.2.tar.gz", hash = "sha256:1c2014f6985ed02e62b2e6955578acf069cb2c54859e17853be474bfe7e13bed"}, + {file = "identify-2.4.5-py2.py3-none-any.whl", hash = "sha256:d27d10099844741c277b45d809bd452db0d70a9b41ea3cd93799ebbbcc6dcb29"}, + {file = "identify-2.4.5.tar.gz", hash = "sha256:d11469ff952a4d7fd7f9be520d335dc450f585d474b39b5dfb86a500831ab6c7"}, ] idna = [ - {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, - {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] importlib-metadata = [ - {file = "importlib_metadata-2.1.3-py2.py3-none-any.whl", hash = "sha256:52e65a0856f9ba7ea8f2c4ced253fb6c88d1a8c352cb1e916cff4eb17d5a693d"}, - {file = "importlib_metadata-2.1.3.tar.gz", hash = "sha256:02a9f62b02e9b1cc43871809ef99947e8f5d94771392d666ada2cafc4cd09d4f"}, + {file = "importlib_metadata-4.2.0-py3-none-any.whl", hash = "sha256:057e92c15bc8d9e8109738a48db0ccb31b4d9d5cfbee5a8670879a30be66304b"}, + {file = "importlib_metadata-4.2.0.tar.gz", hash = "sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31"}, ] importlib-resources = [ - {file = "importlib_resources-3.2.1-py2.py3-none-any.whl", hash = "sha256:e2860cf0c4bc999947228d18be154fa3779c5dde0b882bd2d7b3f4d25e698bd6"}, - {file = "importlib_resources-3.2.1.tar.gz", hash = "sha256:a9fe213ab6452708ec1b3f4ec6f2881b8ab3645cb4e5efb7fea2bbf05a91db3b"}, + {file = "importlib_resources-5.4.0-py3-none-any.whl", hash = "sha256:33a95faed5fc19b4bc16b29a6eeae248a3fe69dd55d4d229d2b480e23eeaad45"}, + {file = "importlib_resources-5.4.0.tar.gz", hash = "sha256:d756e2f85dd4de2ba89be0b21dba2a3bbec2e871a42a3a16719258a11f87506b"}, ] -isodate = [ - {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, - {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] jsonschema = [ - {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, - {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, + {file = "jsonschema-4.4.0-py3-none-any.whl", hash = "sha256:77281a1f71684953ee8b3d488371b162419767973789272434bbc3f29d9c8823"}, + {file = "jsonschema-4.4.0.tar.gz", hash = "sha256:636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83"}, ] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, ] -mock = [ - {file = "mock-3.0.5-py2.py3-none-any.whl", hash = "sha256:d157e52d4e5b938c550f39eb2fd15610db062441a9c2747d3dbfa9298211d0f8"}, - {file = "mock-3.0.5.tar.gz", hash = "sha256:83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3"}, -] -more-itertools = [ - {file = "more-itertools-5.0.0.tar.gz", hash = "sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4"}, - {file = "more_itertools-5.0.0-py2-none-any.whl", hash = "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc"}, - {file = "more_itertools-5.0.0-py3-none-any.whl", hash = "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"}, -] nodeenv = [ {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, ] openapi-schema-validator = [ - {file = "openapi-schema-validator-0.1.6.tar.gz", hash = "sha256:230db361c71a5b08b25ec926797ac8b59a8f499bbd7316bd15b6cd0fc9aea5df"}, - {file = "openapi_schema_validator-0.1.6-py2-none-any.whl", hash = "sha256:8ef097b78c191c89d9a12cdf3d311b2ecf9d3b80bbe8610dbc67a812205a6a8d"}, - {file = "openapi_schema_validator-0.1.6-py3-none-any.whl", hash = "sha256:af023ae0d16372cf8dd0d128c9f3eaa080dc3cd5dfc69e6a247579f25bd10503"}, + {file = "openapi-schema-validator-0.2.2.tar.gz", hash = "sha256:a3778b986f6bdd831efbcd67b0da382dcdd69d24ed550a5afba68a7925f1346b"}, + {file = "openapi_schema_validator-0.2.2-py3-none-any.whl", hash = "sha256:fb3d058cbfdbf8fba3d58f96dad3e55c1286ebbbc049be944c435cddd7ed11d2"}, ] -pathlib2 = [ - {file = "pathlib2-2.3.6-py2.py3-none-any.whl", hash = "sha256:3a130b266b3a36134dcc79c17b3c7ac9634f083825ca6ea9d8f557ee6195c9c8"}, - {file = "pathlib2-2.3.6.tar.gz", hash = "sha256:7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f"}, +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] platformdirs = [ - {file = "platformdirs-2.0.2-py2.py3-none-any.whl", hash = "sha256:0b9547541f599d3d242078ae60b927b3e453f0ad52f58b4d4bc3be86aed3ec41"}, - {file = "platformdirs-2.0.2.tar.gz", hash = "sha256:3b00d081227d9037bbbca521a5787796b5ef5000faea1e43fd76f1d44b06fcfa"}, + {file = "platformdirs-2.4.1-py3-none-any.whl", hash = "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca"}, + {file = "platformdirs-2.4.1.tar.gz", hash = "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda"}, ] pluggy = [ - {file = "pluggy-0.6.0-py2-none-any.whl", hash = "sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c"}, - {file = "pluggy-0.6.0-py3-none-any.whl", hash = "sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"}, - {file = "pluggy-0.6.0.tar.gz", hash = "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"}, + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, ] pre-commit = [ - {file = "pre_commit-1.21.0-py2.py3-none-any.whl", hash = "sha256:f92a359477f3252452ae2e8d3029de77aec59415c16ae4189bcfba40b757e029"}, - {file = "pre_commit-1.21.0.tar.gz", hash = "sha256:8f48d8637bdae6fa70cc97db9c1dd5aa7c5c8bf71968932a380628c25978b850"}, + {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, + {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, ] py = [ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, ] pycodestyle = [ - {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, - {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, + {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"}, + {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"}, ] pyflakes = [ - {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, - {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, + {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, + {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, +] +pyparsing = [ + {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, + {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, ] pyrsistent = [ {file = "pyrsistent-0.16.1.tar.gz", hash = "sha256:aa2ae1c2e496f4d6777f869ea5de7166a8ccb9c2e06ebcf6c7ff1b670c98c5ef"}, ] pytest = [ - {file = "pytest-3.5.0-py2.py3-none-any.whl", hash = "sha256:6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c"}, - {file = "pytest-3.5.0.tar.gz", hash = "sha256:fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1"}, + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, ] pytest-cov = [ - {file = "pytest-cov-2.5.1.tar.gz", hash = "sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d"}, - {file = "pytest_cov-2.5.1-py2.py3-none-any.whl", hash = "sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec"}, + {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, + {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, ] pytest-flake8 = [ {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, ] pyyaml = [ - {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"}, - {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"}, - {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"}, - {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"}, - {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"}, - {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"}, - {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"}, - {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"}, - {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"}, - {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"}, - {file = "PyYAML-5.3.1-cp39-cp39-win32.whl", hash = "sha256:ad9c67312c84def58f3c04504727ca879cb0013b2517c85a9a253f0cb6380c0a"}, - {file = "PyYAML-5.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:6034f55dab5fea9e53f436aa68fa3ace2634918e8b5994d82f3621c04ff5ed2e"}, - {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] requests = [ - {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, - {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, -] -scandir = [ - {file = "scandir-1.10.0-cp27-cp27m-win32.whl", hash = "sha256:92c85ac42f41ffdc35b6da57ed991575bdbe69db895507af88b9f499b701c188"}, - {file = "scandir-1.10.0-cp27-cp27m-win_amd64.whl", hash = "sha256:cb925555f43060a1745d0a321cca94bcea927c50114b623d73179189a4e100ac"}, - {file = "scandir-1.10.0-cp34-cp34m-win32.whl", hash = "sha256:2c712840c2e2ee8dfaf36034080108d30060d759c7b73a01a52251cc8989f11f"}, - {file = "scandir-1.10.0-cp34-cp34m-win_amd64.whl", hash = "sha256:2586c94e907d99617887daed6c1d102b5ca28f1085f90446554abf1faf73123e"}, - {file = "scandir-1.10.0-cp35-cp35m-win32.whl", hash = "sha256:2b8e3888b11abb2217a32af0766bc06b65cc4a928d8727828ee68af5a967fa6f"}, - {file = "scandir-1.10.0-cp35-cp35m-win_amd64.whl", hash = "sha256:8c5922863e44ffc00c5c693190648daa6d15e7c1207ed02d6f46a8dcc2869d32"}, - {file = "scandir-1.10.0-cp36-cp36m-win32.whl", hash = "sha256:2ae41f43797ca0c11591c0c35f2f5875fa99f8797cb1a1fd440497ec0ae4b022"}, - {file = "scandir-1.10.0-cp36-cp36m-win_amd64.whl", hash = "sha256:7d2d7a06a252764061a020407b997dd036f7bd6a175a5ba2b345f0a357f0b3f4"}, - {file = "scandir-1.10.0-cp37-cp37m-win32.whl", hash = "sha256:67f15b6f83e6507fdc6fca22fedf6ef8b334b399ca27c6b568cbfaa82a364173"}, - {file = "scandir-1.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b24086f2375c4a094a6b51e78b4cf7ca16c721dcee2eddd7aa6494b42d6d519d"}, - {file = "scandir-1.10.0.tar.gz", hash = "sha256:4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae"}, -] -singledispatch = [ - {file = "singledispatch-3.7.0-py2.py3-none-any.whl", hash = "sha256:bc77afa97c8a22596d6d4fc20f1b7bdd2b86edc2a65a4262bdd7cc3cc19aa989"}, - {file = "singledispatch-3.7.0.tar.gz", hash = "sha256:c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092"}, + {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, + {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, ] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, @@ -816,24 +709,27 @@ toml = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] +tomli = [ + {file = "tomli-2.0.0-py3-none-any.whl", hash = "sha256:b5bde28da1fed24b9bd1d4d2b8cba62300bfb4ec9a6187a957e8ddb9434c5224"}, + {file = "tomli-2.0.0.tar.gz", hash = "sha256:c292c34f58502a1eb2bbb9f5bbc9a5ebc37bee10ffb8c2d6bbdfa8eb13cc14e1"}, +] tox = [ - {file = "tox-3.12.1-py2.py3-none-any.whl", hash = "sha256:f5c8e446b51edd2ea97df31d4ded8c8b72e7d6c619519da6bb6084b9dd5770f9"}, - {file = "tox-3.12.1.tar.gz", hash = "sha256:f87fd33892a2df0950e5e034def9468988b8d008c7e9416be665fcc0dd45b14f"}, + {file = "tox-3.24.5-py2.py3-none-any.whl", hash = "sha256:be3362472a33094bce26727f5f771ca0facf6dafa217f65875314e9a6600c95c"}, + {file = "tox-3.24.5.tar.gz", hash = "sha256:67e0e32c90e278251fea45b696d0fef3879089ccbe979b0c556d35d5a70e2993"}, ] -typing = [ - {file = "typing-3.10.0.0-py2-none-any.whl", hash = "sha256:c7219ef20c5fbf413b4567092adfc46fa6203cb8454eda33c3fc1afe1398a308"}, - {file = "typing-3.10.0.0-py3-none-any.whl", hash = "sha256:12fbdfbe7d6cca1a42e485229afcb0b0c8259258cfb919b8a5e2a5c953742f89"}, - {file = "typing-3.10.0.0.tar.gz", hash = "sha256:13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130"}, +typing-extensions = [ + {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, + {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, ] urllib3 = [ - {file = "urllib3-1.22-py2.py3-none-any.whl", hash = "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b"}, - {file = "urllib3-1.22.tar.gz", hash = "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"}, + {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, + {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, ] virtualenv = [ {file = "virtualenv-20.13.0-py2.py3-none-any.whl", hash = "sha256:339f16c4a86b44240ba7223d0f93a7887c3ca04b5f9c8129da7958447d079b09"}, {file = "virtualenv-20.13.0.tar.gz", hash = "sha256:d8458cf8d59d0ea495ad9b34c2599487f8a7772d796f9910858376d1600dd2dd"}, ] zipp = [ - {file = "zipp-1.2.0-py2.py3-none-any.whl", hash = "sha256:e0d9e63797e483a30d27e09fffd308c59a700d365ec34e93cc100844168bf921"}, - {file = "zipp-1.2.0.tar.gz", hash = "sha256:c70410551488251b0fee67b460fb9a536af8d6f9f008ad10ac51f615b6a521b1"}, + {file = "zipp-3.7.0-py3-none-any.whl", hash = "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375"}, + {file = "zipp-3.7.0.tar.gz", hash = "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"}, ] diff --git a/pyproject.toml b/pyproject.toml index d59ccb8..46fffb4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,10 +24,10 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Topic :: Software Development :: Libraries" ] @@ -35,11 +35,10 @@ classifiers = [ jsonschema = ">=3.2.0, <5.0.0" openapi-schema-validator = "^0.2.0" pyrsistent = "<0.17.0" -python = ">= 3.6" +python = "^3.7.0" PyYAML = ">=5.1" requests = {version = "*", optional = true} setuptools = "*" -six = "*" [tool.poetry.extras] dev = ["pre-commit"] @@ -47,9 +46,9 @@ requests = ["requests"] [tool.poetry.dev-dependencies] pre-commit = {version = "*", optional = true} -pytest = "=3.5.0" +pytest = "^6.2.5" pytest-flake8 = "=1.0.7" -pytest-cov = "=2.5.1" +pytest-cov = "^3.0.0" tox = "*" [tool.poetry.scripts] diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index a83ced1..6418a76 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -1,8 +1,8 @@ from os import path import pytest -from six.moves.urllib import request -from six.moves.urllib.parse import urlunparse +from urllib import request +from urllib.parse import urlunparse from yaml import safe_load from openapi_spec_validator import (openapi_v3_spec_validator, diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index 2f6ae9c..979ae0c 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -1,5 +1,5 @@ import pytest -from six import StringIO +from io import StringIO from openapi_spec_validator.__main__ import main diff --git a/tox.ini b/tox.ini index 8fa8781..0f99522 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {py36,py37,py38,py39}-{default,simplejson} +envlist = {py37,py38,py39,py310}-{default,simplejson} [testenv] deps = From b59284e98fa7801962534c2d84067a1d4be7bc05 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 28 Jan 2022 04:39:28 +0000 Subject: [PATCH 102/371] Drop pyrsistent direct dependency --- poetry.lock | 39 ++++++++++++++++++++++++++++----------- pyproject.toml | 1 - 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8a21425..c8fcf41 100644 --- a/poetry.lock +++ b/poetry.lock @@ -105,7 +105,7 @@ pyflakes = ">=2.4.0,<2.5.0" [[package]] name = "identify" -version = "2.4.5" +version = "2.4.6" description = "File identification library for Python" category = "dev" optional = true @@ -304,14 +304,11 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyrsistent" -version = "0.16.1" +version = "0.18.1" description = "Persistent/Functional/Immutable data structures" category = "main" optional = false -python-versions = ">=2.7" - -[package.dependencies] -six = "*" +python-versions = ">=3.7" [[package]] name = "pytest" @@ -392,7 +389,7 @@ use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" @@ -494,7 +491,7 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "134e2e38a04f952985a854bd4ffd3ece7f144c2cbf1b8fa58d4370b4711ebeb8" +content-hash = "ed884279ad4d7b9f92b5cd523157c095c8f9fe9365e711b86ed14e31b6bc664c" [metadata.files] atomicwrites = [ @@ -580,8 +577,8 @@ flake8 = [ {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, ] identify = [ - {file = "identify-2.4.5-py2.py3-none-any.whl", hash = "sha256:d27d10099844741c277b45d809bd452db0d70a9b41ea3cd93799ebbbcc6dcb29"}, - {file = "identify-2.4.5.tar.gz", hash = "sha256:d11469ff952a4d7fd7f9be520d335dc450f585d474b39b5dfb86a500831ab6c7"}, + {file = "identify-2.4.6-py2.py3-none-any.whl", hash = "sha256:cf06b1639e0dca0c184b1504d8b73448c99a68e004a80524c7923b95f7b6837c"}, + {file = "identify-2.4.6.tar.gz", hash = "sha256:233679e3f61a02015d4293dbccf16aa0e4996f868bd114688b8c124f18826706"}, ] idna = [ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, @@ -648,7 +645,27 @@ pyparsing = [ {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, ] pyrsistent = [ - {file = "pyrsistent-0.16.1.tar.gz", hash = "sha256:aa2ae1c2e496f4d6777f869ea5de7166a8ccb9c2e06ebcf6c7ff1b670c98c5ef"}, + {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, + {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, + {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, + {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, ] pytest = [ {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, diff --git a/pyproject.toml b/pyproject.toml index 46fffb4..67b4d6d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,6 @@ classifiers = [ [tool.poetry.dependencies] jsonschema = ">=3.2.0, <5.0.0" openapi-schema-validator = "^0.2.0" -pyrsistent = "<0.17.0" python = "^3.7.0" PyYAML = ">=5.1" requests = {version = "*", optional = true} From 1298d2909846f6f12c154a1c6482a6a4b663f2b8 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 28 Jan 2022 04:49:58 +0000 Subject: [PATCH 103/371] Version 0.4.0 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index a52a9a2..3502e27 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.3.3 +current_version = 0.4.0 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 5c3543d..b5d3547 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.3.3 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.4.0 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 7830b59..bb2c776 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.3.3' +__version__ = '0.4.0' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' diff --git a/pyproject.toml b/pyproject.toml index 67b4d6d..52f0de6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ output = "reports/coverage.xml" [tool.poetry] name = "openapi-spec-validator" -version = "0.3.3" +version = "0.4.0" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From f13a9359b8ce162755da1e0b7242a315d19768bd Mon Sep 17 00:00:00 2001 From: Harald Nezbeda Date: Thu, 12 Aug 2021 16:19:15 +0200 Subject: [PATCH 104/371] p1c2u/openapi-core#296: Implements OpenAPI 3.1 spec validator --- openapi_spec_validator/__init__.py | 37 +- openapi_spec_validator/factories.py | 33 +- .../resources/schemas/v3.1/schema.json | 1347 +++++++++++++++++ openapi_spec_validator/validators.py | 8 +- tests/integration/conftest.py | 8 +- tests/integration/test_validate.py | 49 + tests/integration/test_validators.py | 6 +- 7 files changed, 1471 insertions(+), 17 deletions(-) create mode 100644 openapi_spec_validator/resources/schemas/v3.1/schema.json diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index bb2c776..c19ef01 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -4,7 +4,8 @@ ) from openapi_spec_validator.handlers import UrlHandler, FileObjectHandler from openapi_spec_validator.schemas import get_openapi_schema -from openapi_spec_validator.factories import JSONSpecValidatorFactory +from openapi_spec_validator.factories import \ + Draft202012JSONSpecValidatorFactory, Draft4JSONSpecValidatorFactory from openapi_spec_validator.validators import SpecValidator __author__ = 'Artur Maciag' @@ -14,9 +15,15 @@ __license__ = 'Apache License, Version 2.0' __all__ = [ - 'openapi_v2_spec_validator', 'openapi_v3_spec_validator', - 'validate_v2_spec', 'validate_v3_spec', 'validate_spec', - 'validate_v2_spec_url', 'validate_v3_spec_url', 'validate_spec_url', + 'openapi_v2_spec_validator', + 'openapi_v3_spec_validator', + 'openapi_v31_spec_validator', + 'validate_v2_spec', + 'validate_v3_spec', + 'validate_spec', + 'validate_v2_spec_url', + 'validate_v3_spec_url', + 'validate_spec_url', ] file_object_handler = FileObjectHandler() @@ -30,7 +37,7 @@ # v2.0 spec schema_v2, schema_v2_url = get_openapi_schema('2.0') -openapi_v2_validator_factory = JSONSpecValidatorFactory( +openapi_v2_validator_factory = Draft4JSONSpecValidatorFactory( schema_v2, schema_v2_url, resolver_handlers=default_handlers, ) @@ -41,7 +48,7 @@ # v3.0 spec schema_v3, schema_v3_url = get_openapi_schema('3.0') -openapi_v3_validator_factory = JSONSpecValidatorFactory( +openapi_v3_validator_factory = Draft4JSONSpecValidatorFactory( schema_v3, schema_v3_url, resolver_handlers=default_handlers, ) @@ -50,6 +57,18 @@ resolver_handlers=default_handlers, ) +# v3.1 spec +schema_v31, schema_v31_url = get_openapi_schema('3.1') +openapi_v31_validator_factory = Draft202012JSONSpecValidatorFactory( + schema_v31, schema_v31_url, + resolver_handlers=default_handlers, +) +openapi_v31_spec_validator = SpecValidator( + openapi_v31_validator_factory, + resolver_handlers=default_handlers, +) + + # shortcuts validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator.validate) validate_v2_spec_url = validate_spec_url_factory( @@ -59,6 +78,12 @@ validate_v3_spec_url = validate_spec_url_factory( openapi_v3_spec_validator.validate, default_handlers) + +validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator.validate) +validate_v31_spec_url = validate_spec_url_factory( + openapi_v31_spec_validator.validate, default_handlers) + + # aliases to the latest version validate_spec = validate_v3_spec validate_spec_url = validate_v3_spec_url diff --git a/openapi_spec_validator/factories.py b/openapi_spec_validator/factories.py index 956235a..5baf723 100644 --- a/openapi_spec_validator/factories.py +++ b/openapi_spec_validator/factories.py @@ -1,6 +1,7 @@ """OpenAPI spec validator factories module.""" from jsonschema import validators -from jsonschema.validators import Draft4Validator, RefResolver +from jsonschema.validators import Draft4Validator, RefResolver, \ + Draft202012Validator from openapi_spec_validator.generators import ( SpecValidatorsGeneratorFactory, @@ -28,7 +29,7 @@ def _get_spec_validators(cls, spec_resolver): return dict(list(generator)) -class JSONSpecValidatorFactory: +class BaseJSONSpecValidatorFactory: """ Json documents validator factory against a json schema. @@ -36,8 +37,7 @@ class JSONSpecValidatorFactory: :param schema_url: schema base uri. """ - schema_validator_class = Draft4Validator - spec_validator_factory = Draft4ExtendedValidatorFactory + schema_validator_class = None def __init__(self, schema, schema_url='', resolver_handlers=None): self.schema = schema @@ -46,6 +46,17 @@ def __init__(self, schema, schema_url='', resolver_handlers=None): self.schema_validator_class.check_schema(self.schema) + +class Draft4JSONSpecValidatorFactory(BaseJSONSpecValidatorFactory): + """ + Json documents validator factory that uses Draft4Validator + + :param schema: schema for validation. + :param schema_url: schema base uri. + """ + schema_validator_class = Draft4Validator + spec_validator_factory = Draft4ExtendedValidatorFactory + @property def schema_resolver(self): return self._get_resolver(self.schema_url, self.schema) @@ -67,3 +78,17 @@ def create(self, spec_resolver): def _get_resolver(self, base_uri, referrer): return RefResolver( base_uri, referrer, handlers=self.resolver_handlers) + + +class Draft202012JSONSpecValidatorFactory(BaseJSONSpecValidatorFactory): + """ + Json documents validator factory that uses Draft202012Validator + + :param schema: schema for validation. + :param schema_url: schema base uri. + """ + + schema_validator_class = Draft202012Validator + + def create(self, spec_resolver): + return self.schema_validator_class(self.schema) diff --git a/openapi_spec_validator/resources/schemas/v3.1/schema.json b/openapi_spec_validator/resources/schemas/v3.1/schema.json new file mode 100644 index 0000000..44fdbb9 --- /dev/null +++ b/openapi_spec_validator/resources/schemas/v3.1/schema.json @@ -0,0 +1,1347 @@ +{ + "$id": "https://spec.openapis.org/oas/3.1/schema/2021-05-20", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "openapi": { + "type": "string", + "pattern": "^3\\.1\\.\\d+(-.+)?$" + }, + "info": { + "$ref": "#/$defs/info" + }, + "jsonSchemaDialect": { + "type": "string", + "format": "uri", + "default": "https://spec.openapis.org/oas/3.1/dialect/base" + }, + "servers": { + "type": "array", + "items": { + "$ref": "#/$defs/server" + } + }, + "paths": { + "$ref": "#/$defs/paths" + }, + "webhooks": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/path-item-or-reference" + } + }, + "components": { + "$ref": "#/$defs/components" + }, + "security": { + "type": "array", + "items": { + "$ref": "#/$defs/security-requirement" + } + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/$defs/tag" + } + }, + "externalDocs": { + "$ref": "#/$defs/external-documentation" + } + }, + "required": [ + "openapi", + "info" + ], + "anyOf": [ + { + "required": [ + "paths" + ] + }, + { + "required": [ + "components" + ] + }, + { + "required": [ + "webhooks" + ] + } + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false, + "$defs": { + "info": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "termsOfService": { + "type": "string" + }, + "contact": { + "$ref": "#/$defs/contact" + }, + "license": { + "$ref": "#/$defs/license" + }, + "version": { + "type": "string" + } + }, + "required": [ + "title", + "version" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "contact": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "email": { + "type": "string" + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "license": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name" + ], + "oneOf": [ + { + "required": [ + "identifier" + ] + }, + { + "required": [ + "url" + ] + } + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "server": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri-reference" + }, + "description": { + "type": "string" + }, + "variables": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/server-variable" + } + } + }, + "required": [ + "url" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "server-variable": { + "type": "object", + "properties": { + "enum": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "default": { + "type": "string" + }, + "descriptions": { + "type": "string" + } + }, + "required": [ + "default" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "components": { + "type": "object", + "properties": { + "schemas": { + "type": "object", + "additionalProperties": { + "$dynamicRef": "#meta" + } + }, + "responses": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/response-or-reference" + } + }, + "parameters": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/parameter-or-reference" + } + }, + "examples": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/example-or-reference" + } + }, + "requestBodies": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/request-body-or-reference" + } + }, + "headers": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/header-or-reference" + } + }, + "securitySchemes": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/security-scheme-or-reference" + } + }, + "links": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/link-or-reference" + } + }, + "callbacks": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/callbacks-or-reference" + } + }, + "pathItems": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/path-item-or-reference" + } + } + }, + "patternProperties": { + "^(schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$": { + "$comment": "Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected", + "propertyNames": { + "pattern": "^[a-zA-Z0-9._-]+$" + } + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "paths": { + "type": "object", + "patternProperties": { + "^/": { + "$ref": "#/$defs/path-item" + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "path-item": { + "type": "object", + "properties": { + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "servers": { + "type": "array", + "items": { + "$ref": "#/$defs/server" + } + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/$defs/parameter-or-reference" + } + } + }, + "patternProperties": { + "^(get|put|post|delete|options|head|patch|trace)$": { + "$ref": "#/$defs/operation" + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "path-item-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/path-item" + } + }, + "operation": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "externalDocs": { + "$ref": "#/$defs/external-documentation" + }, + "operationId": { + "type": "string" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/$defs/parameter-or-reference" + } + }, + "requestBody": { + "$ref": "#/$defs/request-body-or-reference" + }, + "responses": { + "$ref": "#/$defs/responses" + }, + "callbacks": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/callbacks-or-reference" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "security": { + "type": "array", + "items": { + "$ref": "#/$defs/security-requirement" + } + }, + "servers": { + "type": "array", + "items": { + "$ref": "#/$defs/server" + } + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "external-documentation": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "parameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "in": { + "enum": [ + "query", + "header", + "path", + "cookie" + ] + }, + "description": { + "type": "string" + }, + "required": { + "default": false, + "type": "boolean" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "allowEmptyValue": { + "default": false, + "type": "boolean" + }, + "schema": { + "$dynamicRef": "#meta" + }, + "content": { + "$ref": "#/$defs/content" + } + }, + "required": [ + "in" + ], + "oneOf": [ + { + "required": [ + "schema" + ] + }, + { + "required": [ + "content" + ] + } + ], + "dependentSchemas": { + "schema": { + "properties": { + "style": { + "type": "string" + }, + "explode": { + "type": "boolean" + }, + "allowReserved": { + "default": false, + "type": "boolean" + } + }, + "allOf": [ + { + "$ref": "#/$defs/examples" + }, + { + "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path" + }, + { + "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header" + }, + { + "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query" + }, + { + "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie" + }, + { + "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form" + } + ], + "$defs": { + "styles-for-path": { + "if": { + "properties": { + "in": { + "const": "path" + } + }, + "required": [ + "in" + ] + }, + "then": { + "properties": { + "style": { + "default": "simple", + "enum": [ + "matrix", + "label", + "simple" + ] + }, + "required": { + "const": true + } + }, + "required": [ + "required" + ] + } + }, + "styles-for-header": { + "if": { + "properties": { + "in": { + "const": "header" + } + }, + "required": [ + "in" + ] + }, + "then": { + "properties": { + "style": { + "default": "simple", + "enum": [ + "simple" + ] + } + } + } + }, + "styles-for-query": { + "if": { + "properties": { + "in": { + "const": "query" + } + }, + "required": [ + "in" + ] + }, + "then": { + "properties": { + "style": { + "default": "form", + "enum": [ + "form", + "spaceDelimited", + "pipeDelimited", + "deepObject" + ] + } + } + } + }, + "styles-for-cookie": { + "if": { + "properties": { + "in": { + "const": "cookie" + } + }, + "required": [ + "in" + ] + }, + "then": { + "properties": { + "style": { + "default": "form", + "enum": [ + "form" + ] + } + } + } + }, + "styles-for-form": { + "if": { + "properties": { + "style": { + "const": "form" + } + }, + "required": [ + "style" + ] + }, + "then": { + "properties": { + "explode": { + "default": true + } + } + }, + "else": { + "properties": { + "explode": { + "default": false + } + } + } + } + } + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "parameter-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/parameter" + } + }, + "request-body": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "content": { + "$ref": "#/$defs/content" + }, + "required": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "content" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "request-body-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/request-body" + } + }, + "content": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/media-type" + }, + "propertyNames": { + "format": "media-range" + } + }, + "media-type": { + "type": "object", + "properties": { + "schema": { + "$dynamicRef": "#meta" + }, + "encoding": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/encoding" + } + } + }, + "allOf": [ + { + "$ref": "#/$defs/specification-extensions" + }, + { + "$ref": "#/$defs/examples" + } + ], + "unevaluatedProperties": false + }, + "encoding": { + "type": "object", + "properties": { + "contentType": { + "type": "string", + "format": "media-range" + }, + "headers": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/header-or-reference" + } + }, + "style": { + "default": "form", + "enum": [ + "form", + "spaceDelimited", + "pipeDelimited", + "deepObject" + ] + }, + "explode": { + "type": "boolean" + }, + "allowReserved": { + "default": false, + "type": "boolean" + } + }, + "allOf": [ + { + "$ref": "#/$defs/specification-extensions" + }, + { + "$ref": "#/$defs/encoding/$defs/explode-default" + } + ], + "unevaluatedProperties": false, + "$defs": { + "explode-default": { + "if": { + "properties": { + "style": { + "const": "form" + } + }, + "required": [ + "style" + ] + }, + "then": { + "properties": { + "explode": { + "default": true + } + } + }, + "else": { + "properties": { + "explode": { + "default": false + } + } + } + } + } + }, + "responses": { + "type": "object", + "properties": { + "default": { + "$ref": "#/$defs/response-or-reference" + } + }, + "patternProperties": { + "^[1-5][0-9X]{2}$": { + "$ref": "#/$defs/response-or-reference" + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "response": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/header-or-reference" + } + }, + "content": { + "$ref": "#/$defs/content" + }, + "links": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/link-or-reference" + } + } + }, + "required": [ + "description" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "response-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/response" + } + }, + "callbacks": { + "type": "object", + "$ref": "#/$defs/specification-extensions", + "additionalProperties": { + "$ref": "#/$defs/path-item-or-reference" + } + }, + "callbacks-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/callbacks" + } + }, + "example": { + "type": "object", + "properties": { + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "value": true, + "externalValue": { + "type": "string", + "format": "uri" + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "example-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/example" + } + }, + "link": { + "type": "object", + "properties": { + "operationRef": { + "type": "string", + "format": "uri-reference" + }, + "operationId": true, + "parameters": { + "$ref": "#/$defs/map-of-strings" + }, + "requestBody": true, + "description": { + "type": "string" + }, + "body": { + "$ref": "#/$defs/server" + } + }, + "oneOf": [ + { + "required": [ + "operationRef" + ] + }, + { + "required": [ + "operationId" + ] + } + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "link-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/link" + } + }, + "header": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "required": { + "default": false, + "type": "boolean" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "allowEmptyValue": { + "default": false, + "type": "boolean" + } + }, + "dependentSchemas": { + "schema": { + "properties": { + "style": { + "default": "simple", + "enum": [ + "simple" + ] + }, + "explode": { + "default": false, + "type": "boolean" + }, + "allowReserved": { + "default": false, + "type": "boolean" + }, + "schema": { + "$dynamicRef": "#meta" + } + }, + "$ref": "#/$defs/examples" + }, + "content": { + "properties": { + "content": { + "$ref": "#/$defs/content" + } + } + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "header-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/header" + } + }, + "tag": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "externalDocs": { + "$ref": "#/$defs/external-documentation" + } + }, + "required": [ + "name" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "reference": { + "type": "object", + "properties": { + "$ref": { + "type": "string", + "format": "uri-reference" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "unevaluatedProperties": false + }, + "schema": { + "$dynamicAnchor": "meta", + "type": [ + "object", + "boolean" + ] + }, + "security-scheme": { + "type": "object", + "properties": { + "type": { + "enum": [ + "apiKey", + "http", + "mutualTLS", + "oauth2", + "openIdConnect" + ] + }, + "description": { + "type": "string" + } + }, + "required": [ + "type" + ], + "allOf": [ + { + "$ref": "#/$defs/specification-extensions" + }, + { + "$ref": "#/$defs/security-scheme/$defs/type-apikey" + }, + { + "$ref": "#/$defs/security-scheme/$defs/type-http" + }, + { + "$ref": "#/$defs/security-scheme/$defs/type-http-bearer" + }, + { + "$ref": "#/$defs/security-scheme/$defs/type-oauth2" + }, + { + "$ref": "#/$defs/security-scheme/$defs/type-oidc" + } + ], + "unevaluatedProperties": false, + "$defs": { + "type-apikey": { + "if": { + "properties": { + "type": { + "const": "apiKey" + } + }, + "required": [ + "type" + ] + }, + "then": { + "properties": { + "name": { + "type": "string" + }, + "in": { + "enum": [ + "query", + "header", + "cookie" + ] + } + }, + "required": [ + "name", + "in" + ] + } + }, + "type-http": { + "if": { + "properties": { + "type": { + "const": "http" + } + }, + "required": [ + "type" + ] + }, + "then": { + "properties": { + "scheme": { + "type": "string" + } + }, + "required": [ + "scheme" + ] + } + }, + "type-http-bearer": { + "if": { + "properties": { + "type": { + "const": "http" + }, + "scheme": { + "const": "bearer" + } + }, + "required": [ + "type", + "scheme" + ] + }, + "then": { + "properties": { + "bearerFormat": { + "type": "string" + } + }, + "required": [ + "scheme" + ] + } + }, + "type-oauth2": { + "if": { + "properties": { + "type": { + "const": "oauth2" + } + }, + "required": [ + "type" + ] + }, + "then": { + "properties": { + "flows": { + "$ref": "#/$defs/oauth-flows" + } + }, + "required": [ + "flows" + ] + } + }, + "type-oidc": { + "if": { + "properties": { + "type": { + "const": "openIdConnect" + } + }, + "required": [ + "type" + ] + }, + "then": { + "properties": { + "openIdConnectUrl": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "openIdConnectUrl" + ] + } + } + } + }, + "security-scheme-or-reference": { + "if": { + "required": [ + "$ref" + ] + }, + "then": { + "$ref": "#/$defs/reference" + }, + "else": { + "$ref": "#/$defs/security-scheme" + } + }, + "oauth-flows": { + "type": "object", + "properties": { + "implicit": { + "$ref": "#/$defs/oauth-flows/$defs/implicit" + }, + "password": { + "$ref": "#/$defs/oauth-flows/$defs/password" + }, + "clientCredentials": { + "$ref": "#/$defs/oauth-flows/$defs/client-credentials" + }, + "authorizationCode": { + "$ref": "#/$defs/oauth-flows/$defs/authorization-code" + } + }, + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false, + "$defs": { + "implicit": { + "type": "object", + "properties": { + "authorizationUrl": { + "type": "string" + }, + "refreshUrl": { + "type": "string" + }, + "scopes": { + "$ref": "#/$defs/map-of-strings" + } + }, + "required": [ + "authorizationUrl", + "scopes" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "password": { + "type": "object", + "properties": { + "tokenUrl": { + "type": "string" + }, + "refreshUrl": { + "type": "string" + }, + "scopes": { + "$ref": "#/$defs/map-of-strings" + } + }, + "required": [ + "tokenUrl", + "scopes" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "client-credentials": { + "type": "object", + "properties": { + "tokenUrl": { + "type": "string" + }, + "refreshUrl": { + "type": "string" + }, + "scopes": { + "$ref": "#/$defs/map-of-strings" + } + }, + "required": [ + "tokenUrl", + "scopes" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + }, + "authorization-code": { + "type": "object", + "properties": { + "authorizationUrl": { + "type": "string" + }, + "tokenUrl": { + "type": "string" + }, + "refreshUrl": { + "type": "string" + }, + "scopes": { + "$ref": "#/$defs/map-of-strings" + } + }, + "required": [ + "authorizationUrl", + "tokenUrl", + "scopes" + ], + "$ref": "#/$defs/specification-extensions", + "unevaluatedProperties": false + } + } + }, + "security-requirement": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "specification-extensions": { + "patternProperties": { + "^x-": true + } + }, + "examples": { + "properties": { + "example": true, + "examples": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/example-or-reference" + } + } + } + }, + "map-of-strings": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } +} diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index b4199ad..58ffc7f 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -2,7 +2,7 @@ import string from jsonschema.validators import RefResolver -from openapi_schema_validator import OAS30Validator, oas30_format_checker +from openapi_schema_validator import OAS31Validator, oas31_format_checker from openapi_spec_validator.exceptions import ( ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, @@ -123,6 +123,8 @@ def __init__(self, dereferencer): @wraps_errors def iter_errors(self, schema, require_properties=True): schema_deref = self.dereferencer.dereference(schema) + if not isinstance(schema_deref, dict): + return if 'allOf' in schema_deref: for inner_schema in schema_deref['allOf']: @@ -338,10 +340,10 @@ def __init__(self, dereferencer): @wraps_errors def iter_errors(self, schema, value): - validator = OAS30Validator( + validator = OAS31Validator( schema, resolver=self.dereferencer.resolver_manager.resolver, - format_checker=oas30_format_checker, + format_checker=oas31_format_checker, ) for err in validator.iter_errors(value): yield err diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 6418a76..fe11f58 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -6,7 +6,8 @@ from yaml import safe_load from openapi_spec_validator import (openapi_v3_spec_validator, - openapi_v2_spec_validator) + openapi_v2_spec_validator, + openapi_v31_spec_validator) from openapi_spec_validator.schemas import read_yaml_file @@ -46,6 +47,11 @@ def validator(): return openapi_v3_spec_validator +@pytest.fixture +def validator_v31(): + return openapi_v31_spec_validator + + @pytest.fixture def swagger_validator(): return openapi_v2_spec_validator diff --git a/tests/integration/test_validate.py b/tests/integration/test_validate.py index 843f689..dbb5245 100644 --- a/tests/integration/test_validate.py +++ b/tests/integration/test_validate.py @@ -2,6 +2,14 @@ from openapi_spec_validator.exceptions import OpenAPIValidationError +REMOTE_SOURCE_URL = 'https://raw.githubusercontent.com/' \ + 'OAI/OpenAPI-Specification/' \ + 'd9ac75b00c8bf405c2c90cfa9f20370564371dec/' + + +def remote_test_suite_file_path(test_file): + return "{}{}".format(REMOTE_SOURCE_URL, test_file) + class BaseTestValidOpenAPIv3Validator(object): @@ -98,3 +106,44 @@ def spec(self, factory): 'api-with-examples.yaml' ) return factory.spec_from_url(url) + + +class TestValidOpeAPIv31Validator(BaseTestValidOpenAPIv3Validator): + + @pytest.mark.parametrize('spec_file', [ + 'comp_pathitems.yaml', + 'info_summary.yaml', + 'license_identifier.yaml', + 'mega.yaml', + 'minimal_comp.yaml', + 'minimal_hooks.yaml', + 'minimal_paths.yaml', + 'path_no_response.yaml', + 'path_var_empty_pathitem.yaml', + 'schema.yaml', + 'servers.yaml', + 'valid_schema_types.yaml', + ]) + def test_valid(self, factory, validator_v31, spec_file, spec_url): + url = remote_test_suite_file_path( + '{}{}'.format('tests/v3.1/pass/', spec_file) + ) + spec = factory.spec_from_url(url) + + return validator_v31.validate(spec, spec_url=spec_url) + + @pytest.mark.parametrize('spec_file', [ + 'invalid_schema_types.yaml', + 'no_containers.yaml', + 'server_enum_empty.yaml', + 'servers.yaml', + 'unknown_container.yaml', + ]) + def test_failed(self, factory, validator_v31, spec_file, spec_url): + url = remote_test_suite_file_path( + '{}{}'.format('tests/v3.1/fail/', spec_file) + ) + spec = factory.spec_from_url(url) + + with pytest.raises(OpenAPIValidationError): + validator_v31.validate(spec, spec_url=spec_url) diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 5172b88..d2f7c54 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -253,7 +253,7 @@ def test_default_value_wrong_type(self, validator): assert len(errors_list) == 1 assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( - "'invaldtype' is not of type integer" + "'invaldtype' is not of type 'integer'" ) def test_parameter_default_value_wrong_type(self, validator): @@ -293,7 +293,7 @@ def test_parameter_default_value_wrong_type(self, validator): assert len(errors_list) == 1 assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( - "'invaldtype' is not of type integer" + "'invaldtype' is not of type 'integer'" ) def test_parameter_default_value_wrong_type_swagger(self, @@ -332,7 +332,7 @@ def test_parameter_default_value_wrong_type_swagger(self, assert len(errors_list) == 1 assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == ( - "'invaldtype' is not of type integer" + "'invaldtype' is not of type 'integer'" ) def test_parameter_default_value_with_reference(self, validator): From 5df6816ea53f5454865e6d49dfe7235d71fb5fee Mon Sep 17 00:00:00 2001 From: Harald Nezbeda Date: Mon, 24 Jan 2022 17:17:59 +0100 Subject: [PATCH 105/371] p1c2u/openapi-core#296: Extend alises and adapt tests for OpenAPI 3.1 --- openapi_spec_validator/__init__.py | 29 ++++-- openapi_spec_validator/__main__.py | 13 ++- tests/integration/conftest.py | 16 ++-- tests/integration/data/v3.1/petstore.yaml | 112 ++++++++++++++++++++++ tests/integration/test_main.py | 27 ++++-- tests/integration/test_shortcuts.py | 22 ++--- tests/integration/test_validate.py | 8 +- tests/integration/test_validators.py | 48 +++++----- 8 files changed, 206 insertions(+), 69 deletions(-) create mode 100644 tests/integration/data/v3.1/petstore.yaml diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index c19ef01..a1a478e 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -17,12 +17,17 @@ __all__ = [ 'openapi_v2_spec_validator', 'openapi_v3_spec_validator', + 'openapi_v30_spec_validator', 'openapi_v31_spec_validator', 'validate_v2_spec', 'validate_v3_spec', + 'validate_v30_spec', + 'validate_v31_spec', 'validate_spec', 'validate_v2_spec_url', 'validate_v3_spec_url', + 'validate_v30_spec_url', + 'validate_v31_spec_url', 'validate_spec_url', ] @@ -47,13 +52,13 @@ ) # v3.0 spec -schema_v3, schema_v3_url = get_openapi_schema('3.0') -openapi_v3_validator_factory = Draft4JSONSpecValidatorFactory( - schema_v3, schema_v3_url, +schema_v30, schema_v30_url = get_openapi_schema('3.0') +openapi_v30_validator_factory = Draft4JSONSpecValidatorFactory( + schema_v30, schema_v30_url, resolver_handlers=default_handlers, ) -openapi_v3_spec_validator = SpecValidator( - openapi_v3_validator_factory, +openapi_v30_spec_validator = SpecValidator( + openapi_v30_validator_factory, resolver_handlers=default_handlers, ) @@ -68,21 +73,27 @@ resolver_handlers=default_handlers, ) - # shortcuts validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator.validate) validate_v2_spec_url = validate_spec_url_factory( openapi_v2_spec_validator.validate, default_handlers) -validate_v3_spec = validate_spec_factory(openapi_v3_spec_validator.validate) -validate_v3_spec_url = validate_spec_url_factory( - openapi_v3_spec_validator.validate, default_handlers) +validate_v30_spec = validate_spec_factory(openapi_v30_spec_validator.validate) +validate_v30_spec_url = validate_spec_url_factory( + openapi_v30_spec_validator.validate, default_handlers) validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator.validate) validate_v31_spec_url = validate_spec_url_factory( openapi_v31_spec_validator.validate, default_handlers) +# aliases to the latest v3 version +schema_v3 = schema_v31 +schema_v3_url = schema_v31_url +openapi_v3_validator_factory = openapi_v31_validator_factory +openapi_v3_spec_validator = openapi_v31_spec_validator +validate_v3_spec = validate_v31_spec +validate_v3_spec_url = validate_v31_spec_url # aliases to the latest version validate_spec = validate_v3_spec diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 19abb60..9ef3478 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -5,7 +5,9 @@ from jsonschema.exceptions import best_match from openapi_spec_validator import ( - openapi_v2_spec_validator, openapi_v3_spec_validator, + openapi_v2_spec_validator, + openapi_v30_spec_validator, + openapi_v31_spec_validator, ) from openapi_spec_validator.exceptions import ValidationError from openapi_spec_validator.readers import read_from_stdin, read_from_filename @@ -50,10 +52,10 @@ def main(args=None): ) parser.add_argument( '--schema', - help="OpenAPI schema (default: 3.0.0)", + help="OpenAPI schema (default: 3.1.0)", type=str, - choices=['2.0', '3.0.0'], - default='3.0.0' + choices=['2.0', '3.0.0', '3.1.0'], + default='3.1.0' ) args = parser.parse_args(args) @@ -72,7 +74,8 @@ def main(args=None): # choose the validator validators = { '2.0': openapi_v2_spec_validator, - '3.0.0': openapi_v3_spec_validator, + '3.0.0': openapi_v30_spec_validator, + '3.1.0': openapi_v31_spec_validator, } validator = validators[args.schema] diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index fe11f58..2c6c81f 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -5,8 +5,8 @@ from urllib.parse import urlunparse from yaml import safe_load -from openapi_spec_validator import (openapi_v3_spec_validator, - openapi_v2_spec_validator, +from openapi_spec_validator import (openapi_v2_spec_validator, + openapi_v30_spec_validator, openapi_v31_spec_validator) from openapi_spec_validator.schemas import read_yaml_file @@ -43,15 +43,15 @@ def factory(): @pytest.fixture -def validator(): - return openapi_v3_spec_validator +def validator_v2(): + return openapi_v2_spec_validator @pytest.fixture -def validator_v31(): - return openapi_v31_spec_validator +def validator_v30(): + return openapi_v30_spec_validator @pytest.fixture -def swagger_validator(): - return openapi_v2_spec_validator +def validator_v31(): + return openapi_v31_spec_validator diff --git a/tests/integration/data/v3.1/petstore.yaml b/tests/integration/data/v3.1/petstore.yaml new file mode 100644 index 0000000..d4e2ba4 --- /dev/null +++ b/tests/integration/data/v3.1/petstore.yaml @@ -0,0 +1,112 @@ +openapi: "3.1.0" +info: + version: 1.0.0 + title: Swagger Petstore + license: + name: MIT License + identifier: MIT +servers: + - url: http://petstore.swagger.io/v1 +paths: + /pets: + get: + summary: List all pets + operationId: listPets + tags: + - pets + parameters: + - name: limit + in: query + description: How many items to return at one time (max 100) + required: false + schema: + type: integer + format: int32 + responses: + 200: + description: An paged array of pets + headers: + x-next: + description: A link to the next page of responses + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + post: + summary: Create a pet + operationId: createPets + tags: + - pets + responses: + '201': + description: Null response + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /pets/{petId}: + get: + summary: Info for a specific pet + operationId: showPetById + tags: + - pets + parameters: + - name: petId + in: path + required: true + description: The id of the pet to retrieve + schema: + type: string + responses: + '200': + description: Expected response to a valid request + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" +components: + schemas: + Pet: + required: + - id + - name + properties: + id: + type: integer + format: int64 + name: + type: string + tag: + type: string + $ref: + type: string + Pets: + type: array + items: + $ref: "#/components/schemas/Pet" + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + message: + type: string \ No newline at end of file diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index 979ae0c..a99f4f7 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -7,13 +7,20 @@ def test_schema_default(): - """Test default schema is 3.0.0""" - testargs = ['./tests/integration/data/v3.0/petstore.yaml'] + """Test default schema is 3.1.0""" + testargs = ['./tests/integration/data/v3.1/petstore.yaml'] main(testargs) -def test_schema_v3(): - """No errors when calling proper v3 file.""" +def test_schema_v31(): + """No errors when calling proper v3.1 file.""" + testargs = ['--schema', '3.1.0', + './tests/integration/data/v3.1/petstore.yaml'] + main(testargs) + + +def test_schema_v30(): + """No errors when calling proper v3.0 file.""" testargs = ['--schema', '3.0.0', './tests/integration/data/v3.0/petstore.yaml'] main(testargs) @@ -28,7 +35,10 @@ def test_schema_v2(): def test_errors_on_missing_description_best(capsys): """An error is obviously printed given an empty schema.""" - testargs = ['./tests/integration/data/v3.0/missing-description.yaml'] + testargs = [ + './tests/integration/data/v3.0/missing-description.yaml', + '--schema=3.0.0' + ] with pytest.raises(SystemExit): main(testargs) out, err = capsys.readouterr() @@ -42,7 +52,8 @@ def test_errors_on_missing_description_full(capsys): """An error is obviously printed given an empty schema.""" testargs = [ "./tests/integration/data/v3.0/missing-description.yaml", - "--errors=all" + "--errors=all", + "--schema=3.0.0", ] with pytest.raises(SystemExit): main(testargs) @@ -70,7 +81,7 @@ def test_validation_error(): @mock.patch( - 'openapi_spec_validator.__main__.openapi_v3_spec_validator.validate', + 'openapi_spec_validator.__main__.openapi_v30_spec_validator.validate', side_effect=Exception, ) def test_unknown_error(m_validate): @@ -95,6 +106,6 @@ def test_schema_stdin(): spec_lines = spec_file.readlines() spec_io = StringIO("".join(spec_lines)) - testargs = ['-'] + testargs = ['--schema', '3.0.0', '-'] with mock.patch('openapi_spec_validator.__main__.sys.stdin', spec_io): main(testargs) diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 3b15688..94e48d1 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -1,10 +1,10 @@ import pytest from openapi_spec_validator import ( - validate_spec, validate_spec_url, validate_v2_spec, validate_v2_spec_url, validate_spec_url_factory, - openapi_v2_spec_validator, openapi_v3_spec_validator, + openapi_v2_spec_validator, openapi_v30_spec_validator, + validate_v30_spec_url, validate_v30_spec, ) from openapi_spec_validator.exceptions import OpenAPIValidationError from openapi_spec_validator.handlers.urllib import UrllibHandler @@ -26,14 +26,14 @@ def test_failed(self, spec): class BaseTestValidValidteSpec: def test_valid(self, spec): - validate_spec(spec) + validate_v30_spec(spec) class BaseTestFaliedValidateSpec: def test_failed(self, spec): with pytest.raises(OpenAPIValidationError): - validate_spec(spec) + validate_v30_spec(spec) class BaseTestValidValidateSpecUrl: @@ -70,15 +70,15 @@ def test_failed(self, spec_url): validate_v2_spec_url(spec_url) -class BaseTestValidValidateV3SpecUrl(BaseTestValidValidateSpecUrl): +class BaseTestValidValidateV30SpecUrl(BaseTestValidValidateSpecUrl): @pytest.fixture def validate_spec_url_callable(self, urllib_handlers): return validate_spec_url_factory( - openapi_v3_spec_validator.validate, urllib_handlers) + openapi_v30_spec_validator.validate, urllib_handlers) def test_default_valid(self, spec_url): - validate_spec_url(spec_url) + validate_v30_spec_url(spec_url) def test_urllib_valid(self, validate_spec_url_callable, spec_url): validate_spec_url_callable(spec_url) @@ -88,7 +88,7 @@ class BaseTestFaliedValidateSpecUrl: def test_failed(self, spec_url): with pytest.raises(OpenAPIValidationError): - validate_spec_url(spec_url) + validate_v30_spec_url(spec_url) class TestLocalEmptyExample(BaseTestFaliedValidateSpec): @@ -145,7 +145,7 @@ def spec_url(self): ) -class TestPetstoreExample(BaseTestValidValidateV3SpecUrl): +class TestPetstoreExample(BaseTestValidValidateV30SpecUrl): @pytest.fixture def spec_url(self): @@ -156,7 +156,7 @@ def spec_url(self): ) -class TestApiWithExample(BaseTestValidValidateV3SpecUrl): +class TestApiWithExample(BaseTestValidValidateV30SpecUrl): @pytest.fixture def spec_url(self): @@ -167,7 +167,7 @@ def spec_url(self): ) -class TestPetstoreExpandedExample(BaseTestValidValidateV3SpecUrl): +class TestPetstoreExpandedExample(BaseTestValidValidateV30SpecUrl): @pytest.fixture def spec_url(self): diff --git a/tests/integration/test_validate.py b/tests/integration/test_validate.py index dbb5245..87d8b7b 100644 --- a/tests/integration/test_validate.py +++ b/tests/integration/test_validate.py @@ -17,8 +17,8 @@ class BaseTestValidOpenAPIv3Validator(object): def spec_url(self): return '' - def test_valid(self, validator, spec, spec_url): - return validator.validate(spec, spec_url=spec_url) + def test_valid(self, validator_v30, spec, spec_url): + return validator_v30.validate(spec, spec_url=spec_url) class BaseTestFailedOpenAPIv3Validator(object): @@ -27,9 +27,9 @@ class BaseTestFailedOpenAPIv3Validator(object): def spec_url(self): return '' - def test_failed(self, validator, spec, spec_url): + def test_failed(self, validator_v30, spec, spec_url): with pytest.raises(OpenAPIValidationError): - validator.validate(spec, spec_url=spec_url) + validator_v30.validate(spec, spec_url=spec_url) class TestLocalEmptyExample(BaseTestFailedOpenAPIv3Validator): diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index d2f7c54..46e9716 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -6,10 +6,10 @@ class TestSpecValidatorIterErrors(object): - def test_empty(self, validator): + def test_empty(self, validator_v30): spec = {} - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list[0].__class__ == OpenAPIValidationError @@ -19,20 +19,20 @@ def test_empty(self, validator): assert errors_list[2].__class__ == OpenAPIValidationError assert errors_list[2].message == "'paths' is a required property" - def test_info_empty(self, validator): + def test_info_empty(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': {}, 'paths': {}, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == "'title' is a required property" - def test_minimalistic(self, validator): + def test_minimalistic(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -42,12 +42,12 @@ def test_minimalistic(self, validator): 'paths': {}, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list == [] - def test_same_parameters_names(self, validator): + def test_same_parameters_names(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -77,12 +77,12 @@ def test_same_parameters_names(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list == [] - def test_same_operation_ids(self, validator): + def test_same_operation_ids(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -121,14 +121,14 @@ def test_same_operation_ids(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert len(errors_list) == 2 assert errors_list[0].__class__ == DuplicateOperationIDError assert errors_list[1].__class__ == DuplicateOperationIDError - def test_allow_allof_required_no_properties(self, validator): + def test_allow_allof_required_no_properties(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -158,11 +158,11 @@ def test_allow_allof_required_no_properties(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list == [] - def test_extra_parameters_in_required(self, validator): + def test_extra_parameters_in_required(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -182,7 +182,7 @@ def test_extra_parameters_in_required(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list[0].__class__ == ExtraParametersError @@ -190,7 +190,7 @@ def test_extra_parameters_in_required(self, validator): "Required list has not defined properties: ['testparam1']" ) - def test_undocumented_parameter(self, validator): + def test_undocumented_parameter(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -220,7 +220,7 @@ def test_undocumented_parameter(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list[0].__class__ == UnresolvableParameterError @@ -229,7 +229,7 @@ def test_undocumented_parameter(self, validator): "'/test/{param1}/{param2}' was not resolved" ) - def test_default_value_wrong_type(self, validator): + def test_default_value_wrong_type(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -247,7 +247,7 @@ def test_default_value_wrong_type(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert len(errors_list) == 1 @@ -256,7 +256,7 @@ def test_default_value_wrong_type(self, validator): "'invaldtype' is not of type 'integer'" ) - def test_parameter_default_value_wrong_type(self, validator): + def test_parameter_default_value_wrong_type(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -287,7 +287,7 @@ def test_parameter_default_value_wrong_type(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert len(errors_list) == 1 @@ -297,7 +297,7 @@ def test_parameter_default_value_wrong_type(self, validator): ) def test_parameter_default_value_wrong_type_swagger(self, - swagger_validator): + validator_v2): spec = { 'swagger': '2.0', 'info': { @@ -326,7 +326,7 @@ def test_parameter_default_value_wrong_type_swagger(self, }, } - errors = swagger_validator.iter_errors(spec) + errors = validator_v2.iter_errors(spec) errors_list = list(errors) assert len(errors_list) == 1 @@ -335,7 +335,7 @@ def test_parameter_default_value_wrong_type_swagger(self, "'invaldtype' is not of type 'integer'" ) - def test_parameter_default_value_with_reference(self, validator): + def test_parameter_default_value_with_reference(self, validator_v30): spec = { 'openapi': '3.0.0', 'info': { @@ -374,7 +374,7 @@ def test_parameter_default_value_with_reference(self, validator): }, } - errors = validator.iter_errors(spec) + errors = validator_v30.iter_errors(spec) errors_list = list(errors) assert errors_list == [] From b2470c2aac5dea63ddac879c24aaa540cebc135d Mon Sep 17 00:00:00 2001 From: Harald Nezbeda Date: Mon, 24 Jan 2022 17:23:28 +0100 Subject: [PATCH 106/371] p1c2u/openapi-core#296: Update dependencies --- poetry.lock | 11 ++++++----- pyproject.toml | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index c8fcf41..c35f091 100644 --- a/poetry.lock +++ b/poetry.lock @@ -198,14 +198,15 @@ python-versions = "*" [[package]] name = "openapi-schema-validator" -version = "0.2.2" +version = "0.3.0a2" description = "OpenAPI schema validation for Python" category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" [package.dependencies] -jsonschema = ">=3.0.0,<5.0.0" +attrs = ">=19.2.0" +jsonschema = ">=4.0.0,<5.0.0" [package.extras] rfc3339-validator = ["rfc3339-validator"] @@ -491,7 +492,7 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "ed884279ad4d7b9f92b5cd523157c095c8f9fe9365e711b86ed14e31b6bc664c" +content-hash = "4ab4c42c305463dc8ba43594cf5001566600ce0bb858cb25affb1831efa6980a" [metadata.files] atomicwrites = [ @@ -609,8 +610,8 @@ nodeenv = [ {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, ] openapi-schema-validator = [ - {file = "openapi-schema-validator-0.2.2.tar.gz", hash = "sha256:a3778b986f6bdd831efbcd67b0da382dcdd69d24ed550a5afba68a7925f1346b"}, - {file = "openapi_schema_validator-0.2.2-py3-none-any.whl", hash = "sha256:fb3d058cbfdbf8fba3d58f96dad3e55c1286ebbbc049be944c435cddd7ed11d2"}, + {file = "openapi-schema-validator-0.3.0a2.tar.gz", hash = "sha256:adc84b86555528cae237b1d8c0197dd5ffa2e4d6b7991bd95556d36b3d4a8285"}, + {file = "openapi_schema_validator-0.3.0a2-py3-none-any.whl", hash = "sha256:6c73e8cccc16259ea58a4d73f39fbefb6a55f641601cb7cf7f2469a5cb617caa"}, ] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, diff --git a/pyproject.toml b/pyproject.toml index 52f0de6..2b93d15 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,8 +32,8 @@ classifiers = [ ] [tool.poetry.dependencies] -jsonschema = ">=3.2.0, <5.0.0" -openapi-schema-validator = "^0.2.0" +jsonschema = "^4.0.0" +openapi-schema-validator = {version = "^0.3.0a1", allow-prereleases = true} python = "^3.7.0" PyYAML = ">=5.1" requests = {version = "*", optional = true} From 3588f6f1275ba6b48de5d7cfa1f64115e30663b5 Mon Sep 17 00:00:00 2001 From: Harald Nezbeda Date: Tue, 25 Jan 2022 14:53:56 +0100 Subject: [PATCH 107/371] p1c2u/openapi-core#296: Extend readme for OpenAPI 3.1 support --- README.rst | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/README.rst b/README.rst index 6adaeba..fb6555e 100644 --- a/README.rst +++ b/README.rst @@ -19,12 +19,11 @@ About ##### OpenAPI Spec Validator is a Python library that validates OpenAPI Specs -against the `OpenAPI 2.0 (aka -Swagger) `__ -and `OpenAPI -3.0 `__ -specification. The validator aims to check for full compliance with the -Specification. +against the `OpenAPI 2.0 (aka Swagger) +`__, +`OpenAPI 3.0 `__ +and `OpenAPI 3.1 `__ +specification. The validator aims to check for full compliance with the Specification. Installation ############ @@ -73,7 +72,7 @@ or more pythonic way: Examples ******** -By default, OpenAPI v3 syntax is expected. To validate an OpenAPI v3 spec: +By default, OpenAPI v3.1 syntax is expected. To validate an OpenAPI v3.1 spec: .. code:: python @@ -91,7 +90,11 @@ By default, OpenAPI v3 syntax is expected. To validate an OpenAPI v3 spec: ... OpenAPIValidationError: 'openapi' is a required property -In order to validate a Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec`` instead of ``validate_spec``. You can also explicitly import ``validate_v3_spec`` if you want to disambiguate the expected version. +In order to validate a Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec`` instead of ``validate_spec``. +In order to validate a OpenAPI 3.0 spec file, import ``validate_v30_spec`` instead of ``validate_spec``. + +You can also explicitly import ``validate_v31_spec`` if you want to disambiguate the expected version or +explicitly import ``validate_v3_spec`` which is a shortcut to the latest v3 release. Add ``spec_url`` to validate spec with relative files: From feea4978ad26444083ab0f9c4374d208ddf5457b Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 28 Jan 2022 07:19:30 +0000 Subject: [PATCH 108/371] Update package description --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2b93d15..736297f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ output = "reports/coverage.xml" [tool.poetry] name = "openapi-spec-validator" version = "0.4.0" -description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator" +description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" readme = "README.rst" From ce49ffe0e6fe9ed0ec5ad392ca52329c0f81d7b2 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 28 Jan 2022 07:22:42 +0000 Subject: [PATCH 109/371] Version 0.5.0a1 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 3502e27..585bc09 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.4.0 +current_version = 0.5.0a1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index b5d3547..d0360d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.4.0 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0a1 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index a1a478e..164e21c 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -10,7 +10,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.4.0' +__version__ = '0.5.0a1' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' diff --git a/pyproject.toml b/pyproject.toml index 736297f..2d4823b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ output = "reports/coverage.xml" [tool.poetry] name = "openapi-spec-validator" -version = "0.4.0" +version = "0.5.0a1" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From e6c4b731303298abf6f7d474cbb47aa37dbfa6e0 Mon Sep 17 00:00:00 2001 From: Gregor D <33283245+gregor-d@users.noreply.github.com> Date: Fri, 25 Feb 2022 18:58:53 +0100 Subject: [PATCH 110/371] Update pyproject.toml Add version to setuptools in toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2d4823b..20bcf64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ openapi-schema-validator = {version = "^0.3.0a1", allow-prereleases = true} python = "^3.7.0" PyYAML = ">=5.1" requests = {version = "*", optional = true} -setuptools = "*" +setuptools = "^60.9.3" [tool.poetry.extras] dev = ["pre-commit"] From 9c9213ad91cf7518cbca8bcd57d762558f160ddd Mon Sep 17 00:00:00 2001 From: avisat Date: Tue, 24 May 2022 15:14:46 +0200 Subject: [PATCH 111/371] feat: handle allof when required linked to parent object (#97) --- openapi_spec_validator/validators.py | 16 ++++++++-- tests/integration/test_validators.py | 46 ++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index 58ffc7f..862ccec 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -120,23 +120,33 @@ class SchemaValidator(object): def __init__(self, dereferencer): self.dereferencer = dereferencer + def _nested_properties(self, schema): + schema_deref = self.dereferencer.dereference(schema) + return schema_deref.get("properties", {}).keys() + @wraps_errors def iter_errors(self, schema, require_properties=True): schema_deref = self.dereferencer.dereference(schema) if not isinstance(schema_deref, dict): return + nested_properties = [] if 'allOf' in schema_deref: for inner_schema in schema_deref['allOf']: for err in self.iter_errors( - inner_schema, - require_properties=False + inner_schema, + require_properties=False ): yield err + nested_properties = nested_properties + list(self._nested_properties(inner_schema)) required = schema_deref.get('required', []) properties = schema_deref.get('properties', {}).keys() - extra_properties = list(set(required) - set(properties)) + if 'allOf' in schema_deref: + extra_properties = list(set(required) - set(properties) - set(nested_properties)) + else: + extra_properties = list(set(required) - set(properties)) + if extra_properties and require_properties: yield ExtraParametersError( "Required list has not defined properties: {0}".format( diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 46e9716..03d3ef2 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -162,6 +162,52 @@ def test_allow_allof_required_no_properties(self, validator_v30): errors_list = list(errors) assert errors_list == [] + def test_allow_allof_when_required_is_linked_to_the_parent_object(self, validator_v30): + spec = { + 'openapi': '3.0.1', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + 'components': { + 'schemas': { + 'Address': { + 'type': 'object', + 'properties': { + 'SubdivisionCode': { + 'type': 'string', + 'description': 'State or region' + }, + 'Town': { + 'type': 'string', + 'description': 'Town or city' + }, + 'CountryCode': { + 'type': 'string', + } + } + }, + 'AddressCreation': { + 'required': [ + 'CountryCode', + 'Town' + ], + 'type': 'object', + 'allOf': [ + { + '$ref': '#/components/schemas/Address' + } + ] + } + } + } + } + + errors = validator_v30.iter_errors(spec) + errors_list = list(errors) + assert errors_list == [] + def test_extra_parameters_in_required(self, validator_v30): spec = { 'openapi': '3.0.0', From 4532fc42fbbb89f8ee9b9e08913927e6394aebe1 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Tue, 21 Jun 2022 05:49:34 +0100 Subject: [PATCH 112/371] use importlib_resources instead of pkg_resources --- openapi_spec_validator/schemas.py | 7 +- poetry.lock | 103 +++++++++++++++--------------- pyproject.toml | 2 +- 3 files changed, 55 insertions(+), 57 deletions(-) diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas.py index 22b9d0f..1013059 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas.py @@ -1,18 +1,19 @@ """OpenAIP spec validator schemas module.""" import os -from pkg_resources import resource_filename import urllib.parse import urllib.request from yaml import load +import importlib_resources from openapi_spec_validator.loaders import ExtendedSafeLoader def get_openapi_schema(version): path = 'resources/schemas/v{0}/schema.json'.format(version) - path_resource = resource_filename('openapi_spec_validator', path) - path_full = os.path.join(os.path.dirname(__file__), path_resource) + ref = importlib_resources.files('openapi_spec_validator') / path + with importlib_resources.as_file(ref) as path_resource: + path_full = os.path.join(os.path.dirname(__file__), path_resource) schema = read_yaml_file(path_full) schema_url = urllib.parse.urljoin('file:', urllib.request.pathname2url(path_full)) return schema, schema_url diff --git a/poetry.lock b/poetry.lock index c35f091..2f8ca79 100644 --- a/poetry.lock +++ b/poetry.lock @@ -57,14 +57,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "coverage" -version = "6.3" +version = "6.4.1" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] -tomli = {version = "*", optional = true, markers = "extra == \"toml\""} +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] toml = ["tomli"] @@ -140,18 +140,18 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytes [[package]] name = "importlib-resources" -version = "5.4.0" +version = "5.8.0" description = "Read resources from Python packages" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" @@ -492,7 +492,7 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "4ab4c42c305463dc8ba43594cf5001566600ce0bb858cb25affb1831efa6980a" +content-hash = "19303f08cfae419b01c822d71439c2b22aece643d179d3a8823d739c0c9b5c08" [metadata.files] atomicwrites = [ @@ -520,50 +520,47 @@ colorama = [ {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, ] coverage = [ - {file = "coverage-6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e8071e7d9ba9f457fc674afc3de054450be2c9b195c470147fbbc082468d8ff7"}, - {file = "coverage-6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86c91c511853dfda81c2cf2360502cb72783f4b7cebabef27869f00cbe1db07d"}, - {file = "coverage-6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4ce3b647bd1792d4394f5690d9df6dc035b00bcdbc5595099c01282a59ae01"}, - {file = "coverage-6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a491e159294d756e7fc8462f98175e2d2225e4dbe062cca7d3e0d5a75ba6260"}, - {file = "coverage-6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d008e0f67ac800b0ca04d7914b8501312c8c6c00ad8c7ba17754609fae1231a"}, - {file = "coverage-6.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4578728c36de2801c1deb1c6b760d31883e62e33f33c7ba8f982e609dc95167d"}, - {file = "coverage-6.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7ee317486593193e066fc5e98ac0ce712178c21529a85c07b7cb978171f25d53"}, - {file = "coverage-6.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2bc85664b06ba42d14bb74d6ddf19d8bfc520cb660561d2d9ce5786ae72f71b5"}, - {file = "coverage-6.3-cp310-cp310-win32.whl", hash = "sha256:27a94db5dc098c25048b0aca155f5fac674f2cf1b1736c5272ba28ead2fc267e"}, - {file = "coverage-6.3-cp310-cp310-win_amd64.whl", hash = "sha256:bde4aeabc0d1b2e52c4036c54440b1ad05beeca8113f47aceb4998bb7471e2c2"}, - {file = "coverage-6.3-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:509c68c3e2015022aeda03b003dd68fa19987cdcf64e9d4edc98db41cfc45d30"}, - {file = "coverage-6.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e4ff163602c5c77e7bb4ea81ba5d3b793b4419f8acd296aae149370902cf4e92"}, - {file = "coverage-6.3-cp311-cp311-win_amd64.whl", hash = "sha256:d1675db48490e5fa0b300f6329ecb8a9a37c29b9ab64fa9c964d34111788ca2d"}, - {file = "coverage-6.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7eed8459a2b81848cafb3280b39d7d49950d5f98e403677941c752e7e7ee47cb"}, - {file = "coverage-6.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b4285fde5286b946835a1a53bba3ad41ef74285ba9e8013e14b5ea93deaeafc"}, - {file = "coverage-6.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4748349734110fd32d46ff8897b561e6300d8989a494ad5a0a2e4f0ca974fc7"}, - {file = "coverage-6.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:823f9325283dc9565ba0aa2d240471a93ca8999861779b2b6c7aded45b58ee0f"}, - {file = "coverage-6.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fff16a30fdf57b214778eff86391301c4509e327a65b877862f7c929f10a4253"}, - {file = "coverage-6.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:da1a428bdbe71f9a8c270c7baab29e9552ac9d0e0cba5e7e9a4c9ee6465d258d"}, - {file = "coverage-6.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7d82c610a2e10372e128023c5baf9ce3d270f3029fe7274ff5bc2897c68f1318"}, - {file = "coverage-6.3-cp37-cp37m-win32.whl", hash = "sha256:11e61c5548ecf74ea1f8b059730b049871f0e32b74f88bd0d670c20c819ad749"}, - {file = "coverage-6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8e0c3525b1a182c8ffc9bca7e56b521e0c2b8b3e82f033c8e16d6d721f1b54d6"}, - {file = "coverage-6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a189036c50dcd56100746139a459f0d27540fef95b09aba03e786540b8feaa5f"}, - {file = "coverage-6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32168001f33025fd756884d56d01adebb34e6c8c0b3395ca8584cdcee9c7c9d2"}, - {file = "coverage-6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5d79c9af3f410a2b5acad91258b4ae179ee9c83897eb9de69151b179b0227f5"}, - {file = "coverage-6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:85c5fc9029043cf8b07f73fbb0a7ab6d3b717510c3b5642b77058ea55d7cacde"}, - {file = "coverage-6.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7596aa2f2b8fa5604129cfc9a27ad9beec0a96f18078cb424d029fdd707468d"}, - {file = "coverage-6.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ce443a3e6df90d692c38762f108fc4c88314bf477689f04de76b3f252e7a351c"}, - {file = "coverage-6.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:012157499ec4f135fc36cd2177e3d1a1840af9b236cbe80e9a5ccfc83d912a69"}, - {file = "coverage-6.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0a34d313105cdd0d3644c56df2d743fe467270d6ab93b5d4a347eb9fec8924d6"}, - {file = "coverage-6.3-cp38-cp38-win32.whl", hash = "sha256:6e78b1e25e5c5695dea012be473e442f7094d066925604be20b30713dbd47f89"}, - {file = "coverage-6.3-cp38-cp38-win_amd64.whl", hash = "sha256:433b99f7b0613bdcdc0b00cc3d39ed6d756797e3b078d2c43f8a38288520aec6"}, - {file = "coverage-6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9ed3244b415725f08ca3bdf02ed681089fd95e9465099a21c8e2d9c5d6ca2606"}, - {file = "coverage-6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab4fc4b866b279740e0d917402f0e9a08683e002f43fa408e9655818ed392196"}, - {file = "coverage-6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8582e9280f8d0f38114fe95a92ae8d0790b56b099d728cc4f8a2e14b1c4a18c"}, - {file = "coverage-6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c72bb4679283c6737f452eeb9b2a0e570acaef2197ad255fb20162adc80bea76"}, - {file = "coverage-6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca29c352389ea27a24c79acd117abdd8a865c6eb01576b6f0990cd9a4e9c9f48"}, - {file = "coverage-6.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:152cc2624381df4e4e604e21bd8e95eb8059535f7b768c1fb8b8ae0b26f47ab0"}, - {file = "coverage-6.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:51372e24b1f7143ee2df6b45cff6a721f3abe93b1e506196f3ffa4155c2497f7"}, - {file = "coverage-6.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:72d9d186508325a456475dd05b1756f9a204c7086b07fffb227ef8cee03b1dc2"}, - {file = "coverage-6.3-cp39-cp39-win32.whl", hash = "sha256:649df3641eb351cdfd0d5533c92fc9df507b6b2bf48a7ef8c71ab63cbc7b5c3c"}, - {file = "coverage-6.3-cp39-cp39-win_amd64.whl", hash = "sha256:e67ccd53da5958ea1ec833a160b96357f90859c220a00150de011b787c27b98d"}, - {file = "coverage-6.3-pp36.pp37.pp38-none-any.whl", hash = "sha256:27ac7cb84538e278e07569ceaaa6f807a029dc194b1c819a9820b9bb5dbf63ab"}, - {file = "coverage-6.3.tar.gz", hash = "sha256:987a84ff98a309994ca77ed3cc4b92424f824278e48e4bf7d1bb79a63cfe2099"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1d5aa2703e1dab4ae6cf416eb0095304f49d004c39e9db1d86f57924f43006b"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4ce1b258493cbf8aec43e9b50d89982346b98e9ffdfaae8ae5793bc112fb0068"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c4e737f60c6936460c5be330d296dd5b48b3963f48634c53b3f7deb0f34ec4"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84e65ef149028516c6d64461b95a8dbcfce95cfd5b9eb634320596173332ea84"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f69718750eaae75efe506406c490d6fc5a6161d047206cc63ce25527e8a3adad"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e57816f8ffe46b1df8f12e1b348f06d164fd5219beba7d9433ba79608ef011cc"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:01c5615d13f3dd3aa8543afc069e5319cfa0c7d712f6e04b920431e5c564a749"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ab269400706fab15981fd4bd5080c56bd5cc07c3bccb86aab5e1d5a88dc8f4"}, + {file = "coverage-6.4.1-cp310-cp310-win32.whl", hash = "sha256:a7f3049243783df2e6cc6deafc49ea123522b59f464831476d3d1448e30d72df"}, + {file = "coverage-6.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:ee2ddcac99b2d2aec413e36d7a429ae9ebcadf912946b13ffa88e7d4c9b712d6"}, + {file = "coverage-6.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb73e0011b8793c053bfa85e53129ba5f0250fdc0392c1591fd35d915ec75c46"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106c16dfe494de3193ec55cac9640dd039b66e196e4641fa8ac396181578b982"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f4f3df85aa39da00fd3ec4b5abeb7407e82b68c7c5ad181308b0e2526da5d4"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:961e2fb0680b4f5ad63234e0bf55dfb90d302740ae9c7ed0120677a94a1590cb"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cec3a0f75c8f1031825e19cd86ee787e87cf03e4fd2865c79c057092e69e3a3b"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:129cd05ba6f0d08a766d942a9ed4b29283aff7b2cccf5b7ce279d50796860bb3"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bf5601c33213d3cb19d17a796f8a14a9eaa5e87629a53979a5981e3e3ae166f6"}, + {file = "coverage-6.4.1-cp37-cp37m-win32.whl", hash = "sha256:269eaa2c20a13a5bf17558d4dc91a8d078c4fa1872f25303dddcbba3a813085e"}, + {file = "coverage-6.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f02cbbf8119db68455b9d763f2f8737bb7db7e43720afa07d8eb1604e5c5ae28"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ffa9297c3a453fba4717d06df579af42ab9a28022444cae7fa605af4df612d54"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:145f296d00441ca703a659e8f3eb48ae39fb083baba2d7ce4482fb2723e050d9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d44996140af8b84284e5e7d398e589574b376fb4de8ccd28d82ad8e3bea13"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2bd9a6fc18aab8d2e18f89b7ff91c0f34ff4d5e0ba0b33e989b3cd4194c81fd9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3384f2a3652cef289e38100f2d037956194a837221edd520a7ee5b42d00cc605"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9b3e07152b4563722be523e8cd0b209e0d1a373022cfbde395ebb6575bf6790d"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1480ff858b4113db2718848d7b2d1b75bc79895a9c22e76a221b9d8d62496428"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:865d69ae811a392f4d06bde506d531f6a28a00af36f5c8649684a9e5e4a85c83"}, + {file = "coverage-6.4.1-cp38-cp38-win32.whl", hash = "sha256:664a47ce62fe4bef9e2d2c430306e1428ecea207ffd68649e3b942fa8ea83b0b"}, + {file = "coverage-6.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:26dff09fb0d82693ba9e6231248641d60ba606150d02ed45110f9ec26404ed1c"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9c80df769f5ec05ad21ea34be7458d1dc51ff1fb4b2219e77fe24edf462d6df"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39ee53946bf009788108b4dd2894bf1349b4e0ca18c2016ffa7d26ce46b8f10d"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5b66caa62922531059bc5ac04f836860412f7f88d38a476eda0a6f11d4724f4"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd180ed867e289964404051a958f7cccabdeed423f91a899829264bb7974d3d3"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84631e81dd053e8a0d4967cedab6db94345f1c36107c71698f746cb2636c63e3"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8c08da0bd238f2970230c2a0d28ff0e99961598cb2e810245d7fc5afcf1254e8"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d42c549a8f41dc103a8004b9f0c433e2086add8a719da00e246e17cbe4056f72"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:309ce4a522ed5fca432af4ebe0f32b21d6d7ccbb0f5fcc99290e71feba67c264"}, + {file = "coverage-6.4.1-cp39-cp39-win32.whl", hash = "sha256:fdb6f7bd51c2d1714cea40718f6149ad9be6a2ee7d93b19e9f00934c0f2a74d9"}, + {file = "coverage-6.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:342d4aefd1c3e7f620a13f4fe563154d808b69cccef415415aece4c786665397"}, + {file = "coverage-6.4.1-pp36.pp37.pp38-none-any.whl", hash = "sha256:4803e7ccf93230accb928f3a68f00ffa80a88213af98ed338a57ad021ef06815"}, + {file = "coverage-6.4.1.tar.gz", hash = "sha256:4321f075095a096e70aff1d002030ee612b65a205a0a0f5b815280d5dc58100c"}, ] distlib = [ {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, @@ -590,8 +587,8 @@ importlib-metadata = [ {file = "importlib_metadata-4.2.0.tar.gz", hash = "sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31"}, ] importlib-resources = [ - {file = "importlib_resources-5.4.0-py3-none-any.whl", hash = "sha256:33a95faed5fc19b4bc16b29a6eeae248a3fe69dd55d4d229d2b480e23eeaad45"}, - {file = "importlib_resources-5.4.0.tar.gz", hash = "sha256:d756e2f85dd4de2ba89be0b21dba2a3bbec2e871a42a3a16719258a11f87506b"}, + {file = "importlib_resources-5.8.0-py3-none-any.whl", hash = "sha256:7952325ffd516c05a8ad0858c74dff2c3343f136fe66a6002b2623dd1d43f223"}, + {file = "importlib_resources-5.8.0.tar.gz", hash = "sha256:568c9f16cb204f9decc8d6d24a572eeea27dacbb4cee9e6b03a8025736769751"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, diff --git a/pyproject.toml b/pyproject.toml index 20bcf64..5f170f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ openapi-schema-validator = {version = "^0.3.0a1", allow-prereleases = true} python = "^3.7.0" PyYAML = ">=5.1" requests = {version = "*", optional = true} -setuptools = "^60.9.3" +importlib-resources = "^5.8.0" [tool.poetry.extras] dev = ["pre-commit"] From deaa1e8a310b94242fc364dbea71b79c1209eef5 Mon Sep 17 00:00:00 2001 From: Wim De Clercq Date: Wed, 16 Feb 2022 13:13:14 +0100 Subject: [PATCH 113/371] Use the json module to take care of the integer keys. This change allows the yaml loading to use the original yaml loaders which are much faster. Issue #145 --- openapi_spec_validator/constructors.py | 17 ----------------- openapi_spec_validator/handlers/file.py | 12 +++++++++--- openapi_spec_validator/loaders.py | 19 ------------------- openapi_spec_validator/schemas.py | 14 +++++++++----- 4 files changed, 18 insertions(+), 44 deletions(-) delete mode 100644 openapi_spec_validator/constructors.py delete mode 100644 openapi_spec_validator/loaders.py diff --git a/openapi_spec_validator/constructors.py b/openapi_spec_validator/constructors.py deleted file mode 100644 index f47e264..0000000 --- a/openapi_spec_validator/constructors.py +++ /dev/null @@ -1,17 +0,0 @@ -from yaml.constructor import SafeConstructor - - -class ExtendedSafeConstructor(SafeConstructor): - - def construct_mapping(self, node, deep=False): - """While yaml supports integer keys, these are not valid in - json, and will break jsonschema. This method coerces all keys - to strings. - """ - mapping = super(ExtendedSafeConstructor, self).construct_mapping( - node, deep) - - return { - (str(key) if isinstance(key, int) else key): mapping[key] - for key in mapping - } diff --git a/openapi_spec_validator/handlers/file.py b/openapi_spec_validator/handlers/file.py index abba9ce..02bed09 100644 --- a/openapi_spec_validator/handlers/file.py +++ b/openapi_spec_validator/handlers/file.py @@ -1,20 +1,26 @@ """OpenAPI spec validator handlers file module.""" import io +import json + from yaml import load from openapi_spec_validator.handlers.base import BaseHandler from openapi_spec_validator.handlers.utils import uri_to_path -from openapi_spec_validator.loaders import ExtendedSafeLoader + +try: + from yaml import CSafeLoader as SafeLoader +except ImportError: + from yaml import SafeLoader class FileObjectHandler(BaseHandler): """OpenAPI spec validator file-like object handler.""" - def __init__(self, loader=ExtendedSafeLoader): + def __init__(self, loader=SafeLoader): self.loader = loader def __call__(self, f): - return load(f, self.loader) + return json.loads(json.dumps(load(f, self.loader))) class FileHandler(FileObjectHandler): diff --git a/openapi_spec_validator/loaders.py b/openapi_spec_validator/loaders.py deleted file mode 100644 index 3786ce0..0000000 --- a/openapi_spec_validator/loaders.py +++ /dev/null @@ -1,19 +0,0 @@ -from yaml.composer import Composer -from yaml.parser import Parser -from yaml.reader import Reader -from yaml.resolver import Resolver -from yaml.scanner import Scanner - -from openapi_spec_validator.constructors import ExtendedSafeConstructor - - -class ExtendedSafeLoader( - Reader, Scanner, Parser, Composer, ExtendedSafeConstructor, Resolver): - - def __init__(self, stream): - Reader.__init__(self, stream) - Scanner.__init__(self) - Parser.__init__(self) - Composer.__init__(self) - ExtendedSafeConstructor.__init__(self) - Resolver.__init__(self) diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas.py index 1013059..06434ad 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas.py @@ -1,12 +1,16 @@ """OpenAIP spec validator schemas module.""" +import json import os - import urllib.parse import urllib.request -from yaml import load import importlib_resources -from openapi_spec_validator.loaders import ExtendedSafeLoader +from yaml import load + +try: + from yaml import CSafeLoader as SafeLoader +except ImportError: + from yaml import SafeLoader def get_openapi_schema(version): @@ -19,7 +23,7 @@ def get_openapi_schema(version): return schema, schema_url -def read_yaml_file(path, loader=ExtendedSafeLoader): +def read_yaml_file(path, loader=SafeLoader): """Open a file, read it and return its contents.""" with open(path) as fh: - return load(fh, loader) + return json.loads(json.dumps(load(fh, loader))) From a82db5ae0912f933ff8e9bfb96e85394a91a932f Mon Sep 17 00:00:00 2001 From: p1c2u Date: Tue, 21 Jun 2022 06:25:50 +0100 Subject: [PATCH 114/371] use csafeloader if available; use FileObjectHandler to read yaml file --- openapi_spec_validator/handlers/compat.py | 8 ++++++++ openapi_spec_validator/handlers/file.py | 6 +----- openapi_spec_validator/schemas.py | 10 +++------- 3 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 openapi_spec_validator/handlers/compat.py diff --git a/openapi_spec_validator/handlers/compat.py b/openapi_spec_validator/handlers/compat.py new file mode 100644 index 0000000..534e746 --- /dev/null +++ b/openapi_spec_validator/handlers/compat.py @@ -0,0 +1,8 @@ +# Use CSafeFile if available +try: + from yaml import CSafeLoader as SafeLoader +except ImportError: + from yaml import SafeLoader + + +__all__ = ['SafeLoader', ] diff --git a/openapi_spec_validator/handlers/file.py b/openapi_spec_validator/handlers/file.py index 02bed09..7c3ea65 100644 --- a/openapi_spec_validator/handlers/file.py +++ b/openapi_spec_validator/handlers/file.py @@ -5,13 +5,9 @@ from yaml import load from openapi_spec_validator.handlers.base import BaseHandler +from openapi_spec_validator.handlers.compat import SafeLoader from openapi_spec_validator.handlers.utils import uri_to_path -try: - from yaml import CSafeLoader as SafeLoader -except ImportError: - from yaml import SafeLoader - class FileObjectHandler(BaseHandler): """OpenAPI spec validator file-like object handler.""" diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas.py index 06434ad..bd0c816 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas.py @@ -1,16 +1,12 @@ """OpenAIP spec validator schemas module.""" -import json import os import urllib.parse import urllib.request import importlib_resources -from yaml import load -try: - from yaml import CSafeLoader as SafeLoader -except ImportError: - from yaml import SafeLoader +from openapi_spec_validator.handlers.compat import SafeLoader +from openapi_spec_validator.handlers.file import FileObjectHandler def get_openapi_schema(version): @@ -26,4 +22,4 @@ def get_openapi_schema(version): def read_yaml_file(path, loader=SafeLoader): """Open a file, read it and return its contents.""" with open(path) as fh: - return json.loads(json.dumps(load(fh, loader))) + return FileObjectHandler(loader=loader)(fh) From a29b4f9dd64eed13e2f1c1e046d7b6cfe89a5b0c Mon Sep 17 00:00:00 2001 From: p1c2u Date: Tue, 21 Jun 2022 06:49:01 +0100 Subject: [PATCH 115/371] Version 0.5.0a2 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 585bc09..f8f49be 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.0a1 +current_version = 0.5.0a2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index d0360d7..8d4a69c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0a1 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0a2 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 164e21c..aadcacc 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -10,7 +10,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.5.0a1' +__version__ = '0.5.0a2' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' diff --git a/pyproject.toml b/pyproject.toml index 5f170f9..71e146b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ output = "reports/coverage.xml" [tool.poetry] name = "openapi-spec-validator" -version = "0.5.0a1" +version = "0.5.0a2" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 1c40f877bb720dac30a0bf16d4342636cc57b4dc Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 24 Aug 2022 11:36:06 +0100 Subject: [PATCH 116/371] jsonschema subclassing fix --- openapi_spec_validator/factories.py | 2 +- poetry.lock | 76 ++++++++--------------------- 2 files changed, 20 insertions(+), 58 deletions(-) diff --git a/openapi_spec_validator/factories.py b/openapi_spec_validator/factories.py index 5baf723..8dab5e5 100644 --- a/openapi_spec_validator/factories.py +++ b/openapi_spec_validator/factories.py @@ -8,7 +8,7 @@ ) -class Draft4ExtendedValidatorFactory(Draft4Validator): +class Draft4ExtendedValidatorFactory: """Draft4Validator with extra validators factory that follows $refs in the schema being validated.""" diff --git a/poetry.lock b/poetry.lock index 2f8ca79..a0fa709 100644 --- a/poetry.lock +++ b/poetry.lock @@ -57,7 +57,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "coverage" -version = "6.4.1" +version = "6.4.4" description = "Code coverage measurement for Python" category = "dev" optional = false @@ -163,7 +163,7 @@ python-versions = "*" [[package]] name = "jsonschema" -version = "4.4.0" +version = "4.14.0" description = "An implementation of JSON Schema validation for Python" category = "main" optional = false @@ -173,12 +173,13 @@ python-versions = ">=3.7" attrs = ">=17.4.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format_nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] [[package]] name = "mccabe" @@ -198,7 +199,7 @@ python-versions = "*" [[package]] name = "openapi-schema-validator" -version = "0.3.0a2" +version = "0.3.1" description = "OpenAPI schema validation for Python" category = "main" optional = false @@ -209,9 +210,9 @@ attrs = ">=19.2.0" jsonschema = ">=4.0.0,<5.0.0" [package.extras] -rfc3339-validator = ["rfc3339-validator"] -strict-rfc3339 = ["strict-rfc3339"] isodate = ["isodate"] +strict-rfc3339 = ["strict-rfc3339"] +rfc3339-validator = ["rfc3339-validator"] [[package]] name = "packaging" @@ -224,6 +225,14 @@ python-versions = ">=3.6" [package.dependencies] pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" +[[package]] +name = "pkgutil-resolve-name" +version = "1.3.10" +description = "Resolve a name to an object." +category = "main" +optional = false +python-versions = ">=3.6" + [[package]] name = "platformdirs" version = "2.4.1" @@ -519,49 +528,7 @@ colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, ] -coverage = [ - {file = "coverage-6.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1d5aa2703e1dab4ae6cf416eb0095304f49d004c39e9db1d86f57924f43006b"}, - {file = "coverage-6.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4ce1b258493cbf8aec43e9b50d89982346b98e9ffdfaae8ae5793bc112fb0068"}, - {file = "coverage-6.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c4e737f60c6936460c5be330d296dd5b48b3963f48634c53b3f7deb0f34ec4"}, - {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84e65ef149028516c6d64461b95a8dbcfce95cfd5b9eb634320596173332ea84"}, - {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f69718750eaae75efe506406c490d6fc5a6161d047206cc63ce25527e8a3adad"}, - {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e57816f8ffe46b1df8f12e1b348f06d164fd5219beba7d9433ba79608ef011cc"}, - {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:01c5615d13f3dd3aa8543afc069e5319cfa0c7d712f6e04b920431e5c564a749"}, - {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ab269400706fab15981fd4bd5080c56bd5cc07c3bccb86aab5e1d5a88dc8f4"}, - {file = "coverage-6.4.1-cp310-cp310-win32.whl", hash = "sha256:a7f3049243783df2e6cc6deafc49ea123522b59f464831476d3d1448e30d72df"}, - {file = "coverage-6.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:ee2ddcac99b2d2aec413e36d7a429ae9ebcadf912946b13ffa88e7d4c9b712d6"}, - {file = "coverage-6.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb73e0011b8793c053bfa85e53129ba5f0250fdc0392c1591fd35d915ec75c46"}, - {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106c16dfe494de3193ec55cac9640dd039b66e196e4641fa8ac396181578b982"}, - {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f4f3df85aa39da00fd3ec4b5abeb7407e82b68c7c5ad181308b0e2526da5d4"}, - {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:961e2fb0680b4f5ad63234e0bf55dfb90d302740ae9c7ed0120677a94a1590cb"}, - {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cec3a0f75c8f1031825e19cd86ee787e87cf03e4fd2865c79c057092e69e3a3b"}, - {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:129cd05ba6f0d08a766d942a9ed4b29283aff7b2cccf5b7ce279d50796860bb3"}, - {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bf5601c33213d3cb19d17a796f8a14a9eaa5e87629a53979a5981e3e3ae166f6"}, - {file = "coverage-6.4.1-cp37-cp37m-win32.whl", hash = "sha256:269eaa2c20a13a5bf17558d4dc91a8d078c4fa1872f25303dddcbba3a813085e"}, - {file = "coverage-6.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f02cbbf8119db68455b9d763f2f8737bb7db7e43720afa07d8eb1604e5c5ae28"}, - {file = "coverage-6.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ffa9297c3a453fba4717d06df579af42ab9a28022444cae7fa605af4df612d54"}, - {file = "coverage-6.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:145f296d00441ca703a659e8f3eb48ae39fb083baba2d7ce4482fb2723e050d9"}, - {file = "coverage-6.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d44996140af8b84284e5e7d398e589574b376fb4de8ccd28d82ad8e3bea13"}, - {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2bd9a6fc18aab8d2e18f89b7ff91c0f34ff4d5e0ba0b33e989b3cd4194c81fd9"}, - {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3384f2a3652cef289e38100f2d037956194a837221edd520a7ee5b42d00cc605"}, - {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9b3e07152b4563722be523e8cd0b209e0d1a373022cfbde395ebb6575bf6790d"}, - {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1480ff858b4113db2718848d7b2d1b75bc79895a9c22e76a221b9d8d62496428"}, - {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:865d69ae811a392f4d06bde506d531f6a28a00af36f5c8649684a9e5e4a85c83"}, - {file = "coverage-6.4.1-cp38-cp38-win32.whl", hash = "sha256:664a47ce62fe4bef9e2d2c430306e1428ecea207ffd68649e3b942fa8ea83b0b"}, - {file = "coverage-6.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:26dff09fb0d82693ba9e6231248641d60ba606150d02ed45110f9ec26404ed1c"}, - {file = "coverage-6.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9c80df769f5ec05ad21ea34be7458d1dc51ff1fb4b2219e77fe24edf462d6df"}, - {file = "coverage-6.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39ee53946bf009788108b4dd2894bf1349b4e0ca18c2016ffa7d26ce46b8f10d"}, - {file = "coverage-6.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5b66caa62922531059bc5ac04f836860412f7f88d38a476eda0a6f11d4724f4"}, - {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd180ed867e289964404051a958f7cccabdeed423f91a899829264bb7974d3d3"}, - {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84631e81dd053e8a0d4967cedab6db94345f1c36107c71698f746cb2636c63e3"}, - {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8c08da0bd238f2970230c2a0d28ff0e99961598cb2e810245d7fc5afcf1254e8"}, - {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d42c549a8f41dc103a8004b9f0c433e2086add8a719da00e246e17cbe4056f72"}, - {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:309ce4a522ed5fca432af4ebe0f32b21d6d7ccbb0f5fcc99290e71feba67c264"}, - {file = "coverage-6.4.1-cp39-cp39-win32.whl", hash = "sha256:fdb6f7bd51c2d1714cea40718f6149ad9be6a2ee7d93b19e9f00934c0f2a74d9"}, - {file = "coverage-6.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:342d4aefd1c3e7f620a13f4fe563154d808b69cccef415415aece4c786665397"}, - {file = "coverage-6.4.1-pp36.pp37.pp38-none-any.whl", hash = "sha256:4803e7ccf93230accb928f3a68f00ffa80a88213af98ed338a57ad021ef06815"}, - {file = "coverage-6.4.1.tar.gz", hash = "sha256:4321f075095a096e70aff1d002030ee612b65a205a0a0f5b815280d5dc58100c"}, -] +coverage = [] distlib = [ {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, @@ -594,10 +561,7 @@ iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] -jsonschema = [ - {file = "jsonschema-4.4.0-py3-none-any.whl", hash = "sha256:77281a1f71684953ee8b3d488371b162419767973789272434bbc3f29d9c8823"}, - {file = "jsonschema-4.4.0.tar.gz", hash = "sha256:636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83"}, -] +jsonschema = [] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, @@ -606,14 +570,12 @@ nodeenv = [ {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, ] -openapi-schema-validator = [ - {file = "openapi-schema-validator-0.3.0a2.tar.gz", hash = "sha256:adc84b86555528cae237b1d8c0197dd5ffa2e4d6b7991bd95556d36b3d4a8285"}, - {file = "openapi_schema_validator-0.3.0a2-py3-none-any.whl", hash = "sha256:6c73e8cccc16259ea58a4d73f39fbefb6a55f641601cb7cf7f2469a5cb617caa"}, -] +openapi-schema-validator = [] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] +pkgutil-resolve-name = [] platformdirs = [ {file = "platformdirs-2.4.1-py3-none-any.whl", hash = "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca"}, {file = "platformdirs-2.4.1.tar.gz", hash = "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda"}, From 7cbc3f6d1356cddc5eaf503d3f4a234a0202f690 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Tue, 30 Aug 2022 16:14:37 +0100 Subject: [PATCH 117/371] use jsonschema spec and yield from --- openapi_spec_validator/__init__.py | 47 +-- openapi_spec_validator/decorators.py | 42 -- openapi_spec_validator/factories.py | 94 ----- openapi_spec_validator/generators.py | 41 -- openapi_spec_validator/handlers/__init__.py | 11 - openapi_spec_validator/handlers/base.py | 8 - openapi_spec_validator/handlers/compat.py | 8 - openapi_spec_validator/handlers/file.py | 33 -- openapi_spec_validator/handlers/requests.py | 31 -- openapi_spec_validator/handlers/urllib.py | 24 -- openapi_spec_validator/handlers/utils.py | 12 - openapi_spec_validator/managers.py | 36 -- openapi_spec_validator/readers.py | 4 +- openapi_spec_validator/schemas.py | 6 +- openapi_spec_validator/validators.py | 375 ++++++------------ poetry.lock | 414 +++++++------------- pyproject.toml | 3 +- tests/integration/test_shortcuts.py | 27 +- 18 files changed, 284 insertions(+), 932 deletions(-) delete mode 100644 openapi_spec_validator/factories.py delete mode 100644 openapi_spec_validator/generators.py delete mode 100644 openapi_spec_validator/handlers/__init__.py delete mode 100644 openapi_spec_validator/handlers/base.py delete mode 100644 openapi_spec_validator/handlers/compat.py delete mode 100644 openapi_spec_validator/handlers/file.py delete mode 100644 openapi_spec_validator/handlers/requests.py delete mode 100644 openapi_spec_validator/handlers/urllib.py delete mode 100644 openapi_spec_validator/handlers/utils.py delete mode 100644 openapi_spec_validator/managers.py diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index aadcacc..890f88b 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,11 +1,14 @@ # -*- coding: utf-8 -*- +from jsonschema.validators import Draft202012Validator +from jsonschema.validators import Draft4Validator +from jsonschema_spec.handlers import default_handlers + +from openapi_schema_validator.validators import OAS30Validator +from openapi_schema_validator.validators import OAS31Validator from openapi_spec_validator.shortcuts import ( validate_spec_factory, validate_spec_url_factory, ) -from openapi_spec_validator.handlers import UrlHandler, FileObjectHandler from openapi_spec_validator.schemas import get_openapi_schema -from openapi_spec_validator.factories import \ - Draft202012JSONSpecValidatorFactory, Draft4JSONSpecValidatorFactory from openapi_spec_validator.validators import SpecValidator __author__ = 'Artur Maciag' @@ -31,45 +34,27 @@ 'validate_spec_url', ] -file_object_handler = FileObjectHandler() -all_urls_handler = UrlHandler('http', 'https', 'file') -default_handlers = { - '': all_urls_handler, - 'http': UrlHandler('http'), - 'https': UrlHandler('https'), - 'file': UrlHandler('file'), -} - # v2.0 spec -schema_v2, schema_v2_url = get_openapi_schema('2.0') -openapi_v2_validator_factory = Draft4JSONSpecValidatorFactory( - schema_v2, schema_v2_url, - resolver_handlers=default_handlers, -) +schema_v2, _ = get_openapi_schema('2.0') +openapi_v2_schema_validator = Draft4Validator(schema_v2) openapi_v2_spec_validator = SpecValidator( - openapi_v2_validator_factory, + openapi_v2_schema_validator, OAS30Validator, resolver_handlers=default_handlers, ) # v3.0 spec -schema_v30, schema_v30_url = get_openapi_schema('3.0') -openapi_v30_validator_factory = Draft4JSONSpecValidatorFactory( - schema_v30, schema_v30_url, - resolver_handlers=default_handlers, -) +schema_v30, _ = get_openapi_schema('3.0') +openapi_v30_schema_validator = Draft4Validator(schema_v30) openapi_v30_spec_validator = SpecValidator( - openapi_v30_validator_factory, + openapi_v30_schema_validator, OAS30Validator, resolver_handlers=default_handlers, ) # v3.1 spec -schema_v31, schema_v31_url = get_openapi_schema('3.1') -openapi_v31_validator_factory = Draft202012JSONSpecValidatorFactory( - schema_v31, schema_v31_url, - resolver_handlers=default_handlers, -) +schema_v31, _ = get_openapi_schema('3.1') +openapi_v31_schema_validator = Draft202012Validator(schema_v31) openapi_v31_spec_validator = SpecValidator( - openapi_v31_validator_factory, + openapi_v31_schema_validator, OAS31Validator, resolver_handlers=default_handlers, ) @@ -89,8 +74,6 @@ # aliases to the latest v3 version schema_v3 = schema_v31 -schema_v3_url = schema_v31_url -openapi_v3_validator_factory = openapi_v31_validator_factory openapi_v3_spec_validator = openapi_v31_spec_validator validate_v3_spec = validate_v31_spec validate_v3_spec_url = validate_v31_spec_url diff --git a/openapi_spec_validator/decorators.py b/openapi_spec_validator/decorators.py index 94529dd..14f163f 100644 --- a/openapi_spec_validator/decorators.py +++ b/openapi_spec_validator/decorators.py @@ -2,51 +2,9 @@ from functools import wraps import logging -from openapi_spec_validator.managers import VisitingManager - log = logging.getLogger(__name__) -class DerefValidatorDecorator: - """Dereferences instance if it is a $ref before passing it for validation. - - :param instance_resolver: Resolves refs in the openapi service spec - """ - def __init__(self, instance_resolver): - self.instance_resolver = instance_resolver - self.visiting = VisitingManager() - - def __call__(self, func): - def wrapped(validator, schema_element, instance, schema): - if (not isinstance(instance, dict) or '$ref' not in instance - or not instance['$ref'].__hash__): - for res in func(validator, schema_element, instance, schema): - yield res - return - - ref = instance['$ref'] - - # ref already visited - if ref in self.visiting: - return - - self._attach_scope(instance) - with self.visiting.visit(ref): - with self.instance_resolver.resolving(ref) as target: - for res in func(validator, schema_element, target, schema): - yield res - - return wrapped - - def _attach_scope(self, instance): - log.debug('Attaching x-scope to %s', instance) - if 'x-scope' in instance: - log.debug('Ref %s already has scope attached', instance['$ref']) - return - - instance['x-scope'] = list(self.instance_resolver._scopes_stack) - - class ValidationErrorWrapper(object): def __init__(self, error_class): diff --git a/openapi_spec_validator/factories.py b/openapi_spec_validator/factories.py deleted file mode 100644 index 8dab5e5..0000000 --- a/openapi_spec_validator/factories.py +++ /dev/null @@ -1,94 +0,0 @@ -"""OpenAPI spec validator factories module.""" -from jsonschema import validators -from jsonschema.validators import Draft4Validator, RefResolver, \ - Draft202012Validator - -from openapi_spec_validator.generators import ( - SpecValidatorsGeneratorFactory, -) - - -class Draft4ExtendedValidatorFactory: - """Draft4Validator with extra validators factory that follows $refs - in the schema being validated.""" - - @classmethod - def from_resolver(cls, spec_resolver): - """Creates a customized Draft4ExtendedValidator. - - :param spec_resolver: resolver for the spec - :type resolver: :class:`jsonschema.RefResolver` - """ - spec_validators = cls._get_spec_validators(spec_resolver) - return validators.extend(Draft4Validator, spec_validators) - - @classmethod - def _get_spec_validators(cls, spec_resolver): - generator = SpecValidatorsGeneratorFactory.from_spec_resolver( - spec_resolver) - return dict(list(generator)) - - -class BaseJSONSpecValidatorFactory: - """ - Json documents validator factory against a json schema. - - :param schema: schema for validation. - :param schema_url: schema base uri. - """ - - schema_validator_class = None - - def __init__(self, schema, schema_url='', resolver_handlers=None): - self.schema = schema - self.schema_url = schema_url - self.resolver_handlers = resolver_handlers or () - - self.schema_validator_class.check_schema(self.schema) - - -class Draft4JSONSpecValidatorFactory(BaseJSONSpecValidatorFactory): - """ - Json documents validator factory that uses Draft4Validator - - :param schema: schema for validation. - :param schema_url: schema base uri. - """ - schema_validator_class = Draft4Validator - spec_validator_factory = Draft4ExtendedValidatorFactory - - @property - def schema_resolver(self): - return self._get_resolver(self.schema_url, self.schema) - - def create(self, spec_resolver): - """Creates json documents validator from spec resolver. - :param spec_resolver: reference resolver. - - :return: RefResolver for spec with cached remote $refs used during - validation. - :rtype: :class:`jsonschema.RefResolver` - """ - validator_cls = self.spec_validator_factory.from_resolver( - spec_resolver) - - return validator_cls( - self.schema, resolver=self.schema_resolver) - - def _get_resolver(self, base_uri, referrer): - return RefResolver( - base_uri, referrer, handlers=self.resolver_handlers) - - -class Draft202012JSONSpecValidatorFactory(BaseJSONSpecValidatorFactory): - """ - Json documents validator factory that uses Draft202012Validator - - :param schema: schema for validation. - :param schema_url: schema base uri. - """ - - schema_validator_class = Draft202012Validator - - def create(self, spec_resolver): - return self.schema_validator_class(self.schema) diff --git a/openapi_spec_validator/generators.py b/openapi_spec_validator/generators.py deleted file mode 100644 index a7b9ee6..0000000 --- a/openapi_spec_validator/generators.py +++ /dev/null @@ -1,41 +0,0 @@ -"""OpenAPI spec validator generators module.""" -import logging - -from jsonschema.validators import Draft4Validator - -from openapi_spec_validator.decorators import DerefValidatorDecorator - -log = logging.getLogger(__name__) - - -class SpecValidatorsGeneratorFactory: - """Generator factory for customized validators that follows $refs - in the schema being validated. - """ - validators = { - '$ref', - 'properties', - 'additionalProperties', - 'patternProperties', - 'type', - 'dependencies', - 'required', - 'minProperties', - 'maxProperties', - 'allOf', - 'oneOf', - 'anyOf', - 'not', - } - - @classmethod - def from_spec_resolver(cls, spec_resolver): - """Creates validators generator for the spec resolver. - - :param spec_resolver: resolver for the spec - :type instance_resolver: :class:`jsonschema.RefResolver` - """ - deref = DerefValidatorDecorator(spec_resolver) - for key, validator_callable in Draft4Validator.VALIDATORS.items(): - if key in cls.validators: - yield key, deref(validator_callable) diff --git a/openapi_spec_validator/handlers/__init__.py b/openapi_spec_validator/handlers/__init__.py deleted file mode 100644 index b357f8d..0000000 --- a/openapi_spec_validator/handlers/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from openapi_spec_validator.handlers.file import FileObjectHandler -try: - from openapi_spec_validator.handlers.requests import ( - UrlRequestsHandler as UrlHandler, - ) -except ImportError: - from openapi_spec_validator.handlers.urllib import ( - UrllibHandler as UrlHandler, - ) - -__all__ = ['FileObjectHandler', 'UrlHandler'] diff --git a/openapi_spec_validator/handlers/base.py b/openapi_spec_validator/handlers/base.py deleted file mode 100644 index c6819a8..0000000 --- a/openapi_spec_validator/handlers/base.py +++ /dev/null @@ -1,8 +0,0 @@ -"""OpenAPI spec validator handlers file module.""" - - -class BaseHandler(object): - """OpenAPI spec validator base handler.""" - - def __call__(self, f): - raise NotImplementedError diff --git a/openapi_spec_validator/handlers/compat.py b/openapi_spec_validator/handlers/compat.py deleted file mode 100644 index 534e746..0000000 --- a/openapi_spec_validator/handlers/compat.py +++ /dev/null @@ -1,8 +0,0 @@ -# Use CSafeFile if available -try: - from yaml import CSafeLoader as SafeLoader -except ImportError: - from yaml import SafeLoader - - -__all__ = ['SafeLoader', ] diff --git a/openapi_spec_validator/handlers/file.py b/openapi_spec_validator/handlers/file.py deleted file mode 100644 index 7c3ea65..0000000 --- a/openapi_spec_validator/handlers/file.py +++ /dev/null @@ -1,33 +0,0 @@ -"""OpenAPI spec validator handlers file module.""" -import io -import json - -from yaml import load - -from openapi_spec_validator.handlers.base import BaseHandler -from openapi_spec_validator.handlers.compat import SafeLoader -from openapi_spec_validator.handlers.utils import uri_to_path - - -class FileObjectHandler(BaseHandler): - """OpenAPI spec validator file-like object handler.""" - - def __init__(self, loader=SafeLoader): - self.loader = loader - - def __call__(self, f): - return json.loads(json.dumps(load(f, self.loader))) - - -class FileHandler(FileObjectHandler): - """OpenAPI spec validator file path handler.""" - - def __call__(self, uri): - if isinstance(uri, io.StringIO): - return super(FileHandler, self).__call__(uri) - - assert uri.startswith("file") - - filepath = uri_to_path(uri) - with open(filepath) as fh: - return super(FileHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/requests.py b/openapi_spec_validator/handlers/requests.py deleted file mode 100644 index 05165f3..0000000 --- a/openapi_spec_validator/handlers/requests.py +++ /dev/null @@ -1,31 +0,0 @@ -"""OpenAPI spec validator handlers requests module.""" -import contextlib -import io -import requests -import urllib.parse - - -from openapi_spec_validator.handlers.file import FileHandler - - -class UrlRequestsHandler(FileHandler): - """OpenAPI spec validator URL (requests) scheme handler.""" - - def __init__(self, *allowed_schemes, **options): - self.timeout = options.pop('timeout', 10) - super(UrlRequestsHandler, self).__init__(**options) - self.allowed_schemes = allowed_schemes - - def __call__(self, url): - scheme = urllib.parse.urlparse(url).scheme - assert scheme in self.allowed_schemes - - if scheme == "file": - return super(UrlRequestsHandler, self).__call__(url) - - response = requests.get(url, timeout=self.timeout) - response.raise_for_status() - - data = io.StringIO(response.text) - with contextlib.closing(data) as fh: - return super(UrlRequestsHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/urllib.py b/openapi_spec_validator/handlers/urllib.py deleted file mode 100644 index 44c2419..0000000 --- a/openapi_spec_validator/handlers/urllib.py +++ /dev/null @@ -1,24 +0,0 @@ -"""OpenAPI spec validator handlers requests module.""" -import contextlib - -import urllib.parse -import urllib.request - -from openapi_spec_validator.handlers.file import FileObjectHandler - - -class UrllibHandler(FileObjectHandler): - """OpenAPI spec validator URL (urllib) scheme handler.""" - - def __init__(self, *allowed_schemes, **options): - self.timeout = options.pop('timeout', 10) - super(UrllibHandler, self).__init__(**options) - self.allowed_schemes = allowed_schemes - - def __call__(self, url): - assert urllib.parse.urlparse(url).scheme in self.allowed_schemes - - f = urllib.request.urlopen(url, timeout=self.timeout) - - with contextlib.closing(f) as fh: - return super(UrllibHandler, self).__call__(fh) diff --git a/openapi_spec_validator/handlers/utils.py b/openapi_spec_validator/handlers/utils.py deleted file mode 100644 index 2dd5a85..0000000 --- a/openapi_spec_validator/handlers/utils.py +++ /dev/null @@ -1,12 +0,0 @@ -import os.path - -import urllib.parse -import urllib.request - - -def uri_to_path(uri): - parsed = urllib.parse.urlparse(uri) - host = "{0}{0}{mnt}{0}".format(os.path.sep, mnt=parsed.netloc) - return os.path.normpath( - os.path.join(host, urllib.request.url2pathname(urllib.parse.unquote(parsed.path))) - ) diff --git a/openapi_spec_validator/managers.py b/openapi_spec_validator/managers.py deleted file mode 100644 index a4810e1..0000000 --- a/openapi_spec_validator/managers.py +++ /dev/null @@ -1,36 +0,0 @@ -"""OpenAPI spec validator managers module.""" -from contextlib import contextmanager - - -class VisitingManager(dict): - """Visiting manager. Mark keys which being visited.""" - - @contextmanager - def visit(self, key): - """Visits key and marks as visited. - Support context manager interface. - - :param key: key being visited. - """ - self[key] = key - try: - yield key - finally: - del self[key] - - -class ResolverManager(object): - def __init__(self, resolver): - self.resolver = resolver - - @contextmanager - def in_scope(self, item, scope='x-scope'): - if scope not in item: - yield self.resolver - else: - saved_scope_stack = self.resolver._scopes_stack - try: - self.resolver._scopes_stack = item[scope] - yield self.resolver - finally: - self.resolver._scopes_stack = saved_scope_stack diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index 7c4fe6c..2fc3ab9 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -2,11 +2,11 @@ import pathlib import sys -from openapi_spec_validator import all_urls_handler, file_object_handler +from jsonschema_spec.handlers import file_handler, all_urls_handler def read_from_stdin(filename): - return file_object_handler(sys.stdin), '' + return file_handler(sys.stdin), '' def read_from_filename(filename): diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas.py index bd0c816..4bd715a 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas.py @@ -5,8 +5,8 @@ import importlib_resources -from openapi_spec_validator.handlers.compat import SafeLoader -from openapi_spec_validator.handlers.file import FileObjectHandler +from jsonschema_spec.handlers.compat import SafeLoader +from jsonschema_spec.handlers.file import FileHandler def get_openapi_schema(version): @@ -22,4 +22,4 @@ def get_openapi_schema(version): def read_yaml_file(path, loader=SafeLoader): """Open a file, read it and return its contents.""" with open(path) as fh: - return FileObjectHandler(loader=loader)(fh) + return FileHandler(loader=loader)(fh) diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validators.py index 862ccec..56f857c 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validators.py @@ -2,6 +2,8 @@ import string from jsonschema.validators import RefResolver +from jsonschema_spec.accessors import SpecAccessor +from jsonschema_spec.paths import Spec from openapi_schema_validator import OAS31Validator, oas31_format_checker from openapi_spec_validator.exceptions import ( @@ -9,7 +11,6 @@ OpenAPIValidationError, DuplicateOperationIDError, ) from openapi_spec_validator.decorators import ValidationErrorWrapper -from openapi_spec_validator.managers import ResolverManager log = logging.getLogger(__name__) @@ -20,249 +21,74 @@ def is_ref(spec): return isinstance(spec, dict) and '$ref' in spec -class Dereferencer(object): - - def __init__(self, spec_resolver): - self.resolver_manager = ResolverManager(spec_resolver) - - def dereference(self, item): - log.debug("Dereferencing %s", item) - if item is None or not is_ref(item): - return item - - ref = item['$ref'] - with self.resolver_manager.in_scope(item) as resolver: - with resolver.resolving(ref) as target: - if is_ref(target): - target = self.dereference(target) - return target - - class SpecValidator(object): - def __init__(self, validator_factory, resolver_handlers): - self.validator_factory = validator_factory + OPERATIONS = [ + 'get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace', + ] + + def __init__(self, schema_validator, value_validator_class, resolver_handlers=None): + self.schema_validator = schema_validator + self.value_validator_class = value_validator_class self.resolver_handlers = resolver_handlers + self.operation_ids_registry = None + self.resolver = None + def validate(self, spec, spec_url=''): for err in self.iter_errors(spec, spec_url=spec_url): raise err @wraps_errors - def iter_errors(self, spec, spec_url=''): - spec_resolver = self._get_resolver(spec_url, spec) - dereferencer = self._get_dereferencer(spec_resolver) + def iter_errors(self, spec_dict, spec_url=''): + self.operation_ids_registry = [] + self.resolver = self._get_resolver(spec_url, spec_dict) - validator = self._get_validator(spec_resolver) - for err in validator.iter_errors(spec): - yield err + yield from self.schema_validator.iter_errors(spec_dict) + accessor = SpecAccessor(spec_dict, self.resolver) + spec = Spec(accessor) paths = spec.get('paths', {}) - for err in self._iter_paths_errors(paths, dereferencer): - yield err + yield from self._iter_paths_errors(paths) components = spec.get('components', {}) - for err in self._iter_components_errors(components, dereferencer): - yield err + yield from self._iter_components_errors(components) def _get_resolver(self, base_uri, referrer): return RefResolver( base_uri, referrer, handlers=self.resolver_handlers) - def _get_dereferencer(self, spec_resolver): - return Dereferencer(spec_resolver) - - def _get_validator(self, spec_resolver): - return self.validator_factory.create(spec_resolver) - - def _iter_paths_errors(self, paths, dereferencer): - return PathsValidator(dereferencer).iter_errors(paths) - - def _iter_components_errors(self, components, dereferencer): - return ComponentsValidator(dereferencer).iter_errors(components) - - -class ComponentsValidator(object): - - def __init__(self, dereferencer): - self.dereferencer = dereferencer - - @wraps_errors - def iter_errors(self, components): - components_deref = self.dereferencer.dereference(components) - - schemas = components_deref.get('schemas', {}) - for err in self._iter_schemas_errors(schemas): - yield err - - def _iter_schemas_errors(self, schemas): - return SchemasValidator(self.dereferencer).iter_errors(schemas) - - -class SchemasValidator(object): - - def __init__(self, dereferencer): - self.dereferencer = dereferencer - - @wraps_errors - def iter_errors(self, schemas): - schemas_deref = self.dereferencer.dereference(schemas) - for name, schema in schemas_deref.items(): - for err in self._iter_schema_errors(schema): - yield err - - def _iter_schema_errors(self, schema): - return SchemaValidator(self.dereferencer).iter_errors(schema) - - -class SchemaValidator(object): - - def __init__(self, dereferencer): - self.dereferencer = dereferencer - - def _nested_properties(self, schema): - schema_deref = self.dereferencer.dereference(schema) - return schema_deref.get("properties", {}).keys() - - @wraps_errors - def iter_errors(self, schema, require_properties=True): - schema_deref = self.dereferencer.dereference(schema) - if not isinstance(schema_deref, dict): - return - - nested_properties = [] - if 'allOf' in schema_deref: - for inner_schema in schema_deref['allOf']: - for err in self.iter_errors( - inner_schema, - require_properties=False - ): - yield err - nested_properties = nested_properties + list(self._nested_properties(inner_schema)) - - required = schema_deref.get('required', []) - properties = schema_deref.get('properties', {}).keys() - if 'allOf' in schema_deref: - extra_properties = list(set(required) - set(properties) - set(nested_properties)) - else: - extra_properties = list(set(required) - set(properties)) - - if extra_properties and require_properties: - yield ExtraParametersError( - "Required list has not defined properties: {0}".format( - extra_properties - ) - ) - - if 'default' in schema_deref: - default = schema_deref['default'] - nullable = schema_deref.get('nullable', False) - if default is not None or nullable is not True: - for err in self._iter_value_errors(schema_deref, default): - yield err - - def _iter_value_errors(self, schema, value): - return ValueValidator(self.dereferencer).iter_errors(schema, value) - - -class PathsValidator(object): - - def __init__(self, dereferencer, operation_ids_registry=None): - self.dereferencer = dereferencer - self.operation_ids_registry = [] if operation_ids_registry is None \ - else operation_ids_registry - - @wraps_errors - def iter_errors(self, paths): - paths_deref = self.dereferencer.dereference(paths) - for url, path_item in paths_deref.items(): - for err in self._iter_path_errors(url, path_item): - yield err + def _iter_paths_errors(self, paths): + for url, path_item in paths.items(): + yield from self._iter_path_errors(url, path_item) def _iter_path_errors(self, url, path_item): - return PathValidator( - self.dereferencer, self.operation_ids_registry).iter_errors( - url, path_item) - - -class PathValidator(object): - - def __init__(self, dereferencer, operation_ids_registry=None): - self.dereferencer = dereferencer - self.operation_ids_registry = [] if operation_ids_registry is None \ - else operation_ids_registry - - @wraps_errors - def iter_errors(self, url, path_item): - path_item_deref = self.dereferencer.dereference(path_item) - - for err in self._iter_path_item_errors(url, path_item_deref): - yield err + yield from self._iter_path_item_errors(url, path_item) def _iter_path_item_errors(self, url, path_item): - return PathItemValidator( - self.dereferencer, self.operation_ids_registry).iter_errors( - url, path_item) - - -class PathItemValidator(object): - - OPERATIONS = [ - 'get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace', - ] - - def __init__(self, dereferencer, operation_ids_registry=None): - self.dereferencer = dereferencer - self.operation_ids_registry = [] if operation_ids_registry is None \ - else operation_ids_registry - - @wraps_errors - def iter_errors(self, url, path_item): - path_item_deref = self.dereferencer.dereference(path_item) - - parameters = path_item_deref.get('parameters', []) - for err in self._iter_parameters_errors(parameters): - yield err + parameters = path_item.get('parameters', []) + yield from self._iter_parameters_errors(parameters) for field_name, operation in path_item.items(): if field_name not in self.OPERATIONS: continue - for err in self._iter_operation_errors( - url, field_name, operation, parameters): - yield err + yield from self._iter_operation_errors( + url, field_name, operation, parameters) def _iter_operation_errors(self, url, name, operation, path_parameters): - return OperationValidator( - self.dereferencer, self.operation_ids_registry).iter_errors( - url, name, operation, path_parameters) - - def _iter_parameters_errors(self, parameters): - return ParametersValidator(self.dereferencer).iter_errors(parameters) - - -class OperationValidator(object): - - def __init__(self, dereferencer, seen_ids=None): - self.dereferencer = dereferencer - self.seen_ids = [] if seen_ids is None else seen_ids - - @wraps_errors - def iter_errors(self, url, name, operation, path_parameters=None): path_parameters = path_parameters or [] - operation_deref = self.dereferencer.dereference(operation) - operation_id = operation_deref.get('operationId') - if operation_id is not None and operation_id in self.seen_ids: + operation_id = operation.getkey('operationId') + if operation_id is not None and operation_id in self.operation_ids_registry: yield DuplicateOperationIDError( "Operation ID '{0}' for '{1}' in '{2}' is not unique".format( operation_id, name, url) ) - self.seen_ids.append(operation_id) + self.operation_ids_registry.append(operation_id) - parameters = operation_deref.get('parameters', []) - for err in self._iter_parameters_errors(parameters): - yield err + parameters = operation.get('parameters', []) + yield from self._iter_parameters_errors(parameters) all_params = list(set( list(self._get_path_param_names(path_parameters)) + @@ -279,9 +105,8 @@ def iter_errors(self, url, name, operation, path_parameters=None): def _get_path_param_names(self, params): for param in params: - param_deref = self.dereferencer.dereference(param) - if param_deref['in'] == 'path': - yield param_deref['name'] + if param['in'] == 'path': + yield param['name'] def _get_path_params_from_url(self, url): formatter = string.Formatter() @@ -289,71 +114,107 @@ def _get_path_params_from_url(self, url): return filter(None, path_params) def _iter_parameters_errors(self, parameters): - return ParametersValidator(self.dereferencer).iter_errors(parameters) - - -class ParametersValidator(object): - - def __init__(self, dereferencer): - self.dereferencer = dereferencer - - @wraps_errors - def iter_errors(self, parameters): seen = set() for parameter in parameters: - parameter_deref = self.dereferencer.dereference(parameter) - for err in self._iter_parameter_errors(parameter_deref): - yield err + yield from self._iter_parameter_errors(parameter) - key = (parameter_deref['name'], parameter_deref['in']) + key = (parameter['name'], parameter['in']) if key in seen: yield ParameterDuplicateError( - "Duplicate parameter `{0}`".format(parameter_deref['name']) + "Duplicate parameter `{0}`".format(parameter['name']) ) seen.add(key) def _iter_parameter_errors(self, parameter): - return ParameterValidator(self.dereferencer).iter_errors(parameter) - - -class ParameterValidator(object): - - def __init__(self, dereferencer): - self.dereferencer = dereferencer - - @wraps_errors - def iter_errors(self, parameter): if 'schema' in parameter: - schema = parameter['schema'] - schema_deref = self.dereferencer.dereference(schema) - for err in self._iter_schema_errors(schema_deref): - yield err + schema = parameter / 'schema' + yield from self._iter_schema_errors(schema) if 'default' in parameter: # only possible in swagger 2.0 - default = parameter['default'] + default = parameter.getkey('default') if default is not None: - for err in self._iter_value_errors(parameter, default): - yield err + yield from self._iter_value_errors(parameter, default) def _iter_value_errors(self, schema, value): - return ValueValidator(self.dereferencer).iter_errors(schema, value) + with schema.open() as content: + validator = self.value_validator_class( + content, + resolver=self.resolver, + format_checker=oas31_format_checker, + ) + yield from validator.iter_errors(value) - def _iter_schema_errors(self, schema): - return SchemaValidator(self.dereferencer).iter_errors(schema) + def _iter_schema_errors(self, schema, require_properties=True): + if not hasattr(schema.content(), "__getitem__"): + return + nested_properties = [] + if 'allOf' in schema: + all_of = schema / "allOf" + for inner_schema in all_of: + yield from self._iter_schema_errors( + inner_schema, + require_properties=False, + ) + inner_schema_props = inner_schema.get("properties", {}) + inner_schema_props_keys = inner_schema_props.keys() + nested_properties = nested_properties + list(inner_schema_props_keys) + + if 'anyOf' in schema: + any_of = schema / "anyOf" + for inner_schema in any_of: + yield from self._iter_schema_errors( + inner_schema, + require_properties=False, + ) -class ValueValidator(object): + if 'oneOf' in schema: + one_of = schema / "oneOf" + for inner_schema in one_of: + yield from self._iter_schema_errors( + inner_schema, + require_properties=False, + ) + + if 'not' in schema: + not_schema = schema / "not" + yield from self._iter_schema_errors( + not_schema, + require_properties=False, + ) - def __init__(self, dereferencer): - self.dereferencer = dereferencer + if 'items' in schema: + array_schema = schema / "items" + yield from self._iter_schema_errors( + array_schema, + require_properties=False, + ) - @wraps_errors - def iter_errors(self, schema, value): - validator = OAS31Validator( - schema, - resolver=self.dereferencer.resolver_manager.resolver, - format_checker=oas31_format_checker, - ) - for err in validator.iter_errors(value): - yield err + required = schema.getkey('required', []) + properties = schema.get('properties', {}).keys() + if 'allOf' in schema: + extra_properties = list(set(required) - set(properties) - set(nested_properties)) + else: + extra_properties = list(set(required) - set(properties)) + + if extra_properties and require_properties: + yield ExtraParametersError( + "Required list has not defined properties: {0}".format( + extra_properties + ) + ) + + if 'default' in schema: + default = schema['default'] + nullable = schema.get('nullable', False) + if default is not None or nullable is not True: + yield from self._iter_value_errors(schema, default) + + def _iter_components_errors(self, components): + schemas = components.get('schemas', {}) + yield from self._iter_schemas_errors(schemas) + + def _iter_schemas_errors(self, schemas): + for _, schema in schemas.items(): + yield from self._iter_schema_errors(schema) diff --git a/poetry.lock b/poetry.lock index a0fa709..ca0ce77 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,6 +1,6 @@ [[package]] name = "atomicwrites" -version = "1.4.0" +version = "1.4.1" description = "Atomic file writes." category = "dev" optional = false @@ -8,25 +8,25 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "attrs" -version = "21.4.0" +version = "22.1.0" description = "Classes Without Boilerplate" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.5" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] [[package]] name = "certifi" -version = "2021.10.8" +version = "2022.6.15" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = true -python-versions = "*" +python-versions = ">=3.6" [[package]] name = "cfgv" @@ -38,18 +38,18 @@ python-versions = ">=3.6.1" [[package]] name = "charset-normalizer" -version = "2.0.10" +version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = true -python-versions = ">=3.5.0" +python-versions = ">=3.6.0" [package.extras] unicode_backport = ["unicodedata2"] [[package]] name = "colorama" -version = "0.4.4" +version = "0.4.5" description = "Cross-platform colored terminal text." category = "dev" optional = false @@ -71,7 +71,7 @@ toml = ["tomli"] [[package]] name = "distlib" -version = "0.3.4" +version = "0.3.6" description = "Distribution utilities" category = "dev" optional = false @@ -79,33 +79,33 @@ python-versions = "*" [[package]] name = "filelock" -version = "3.4.2" +version = "3.8.0" description = "A platform independent file lock." category = "dev" optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] -testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] +docs = ["furo (>=2022.6.21)", "sphinx (>=5.1.1)", "sphinx-autodoc-typehints (>=1.19.1)"] +testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pytest-cov (>=3)", "pytest-timeout (>=2.1)"] [[package]] name = "flake8" -version = "4.0.1" +version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [package.dependencies] -importlib-metadata = {version = "<4.3", markers = "python_version < \"3.8\""} +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} mccabe = ">=0.6.0,<0.7.0" -pycodestyle = ">=2.8.0,<2.9.0" -pyflakes = ">=2.4.0,<2.5.0" +pycodestyle = ">=2.7.0,<2.8.0" +pyflakes = ">=2.3.0,<2.4.0" [[package]] name = "identify" -version = "2.4.6" +version = "2.5.3" description = "File identification library for Python" category = "dev" optional = true @@ -124,23 +124,24 @@ python-versions = ">=3.5" [[package]] name = "importlib-metadata" -version = "4.2.0" +version = "4.12.0" description = "Read metadata from Python packages" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +perf = ["ipython"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] [[package]] name = "importlib-resources" -version = "5.8.0" +version = "5.9.0" description = "Read resources from Python packages" category = "main" optional = false @@ -150,8 +151,8 @@ python-versions = ">=3.7" zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" @@ -163,7 +164,7 @@ python-versions = "*" [[package]] name = "jsonschema" -version = "4.14.0" +version = "4.15.0" description = "An implementation of JSON Schema validation for Python" category = "main" optional = false @@ -181,6 +182,20 @@ typing-extensions = {version = "*", markers = "python_version < \"3.8\""} format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +[[package]] +name = "jsonschema-spec" +version = "0.1.1" +description = "JSONSchema Spec with object-oriented paths" +category = "main" +optional = false +python-versions = ">=3.7.0,<4.0.0" + +[package.dependencies] +jsonschema = ">=4.0.0,<5.0.0" +pathable = ">=0.4.1,<0.5.0" +PyYAML = ">=5.1" +typing-extensions = ">=4.3.0,<5.0.0" + [[package]] name = "mccabe" version = "0.6.1" @@ -191,15 +206,15 @@ python-versions = "*" [[package]] name = "nodeenv" -version = "1.6.0" +version = "1.7.0" description = "Node.js virtual environment builder" category = "dev" optional = true -python-versions = "*" +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" [[package]] name = "openapi-schema-validator" -version = "0.3.1" +version = "0.3.2" description = "OpenAPI schema validation for Python" category = "main" optional = false @@ -225,6 +240,14 @@ python-versions = ">=3.6" [package.dependencies] pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" +[[package]] +name = "pathable" +version = "0.4.2" +description = "Object-oriented paths" +category = "main" +optional = false +python-versions = ">=3.7.0,<4.0.0" + [[package]] name = "pkgutil-resolve-name" version = "1.3.10" @@ -235,15 +258,15 @@ python-versions = ">=3.6" [[package]] name = "platformdirs" -version = "2.4.1" +version = "2.5.2" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" [package.extras] -docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] -test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] +test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] [[package]] name = "pluggy" @@ -257,16 +280,16 @@ python-versions = ">=3.6" importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] +testing = ["pytest-benchmark", "pytest"] +dev = ["tox", "pre-commit"] [[package]] name = "pre-commit" -version = "2.17.0" +version = "2.20.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." category = "dev" optional = true -python-versions = ">=3.6.1" +python-versions = ">=3.7" [package.dependencies] cfgv = ">=2.0.0" @@ -287,15 +310,15 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "pycodestyle" -version = "2.8.0" +version = "2.7.0" description = "Python style guide checker" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pyflakes" -version = "2.4.0" +version = "2.3.1" description = "passive checker of Python programs" category = "dev" optional = false @@ -303,14 +326,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pyparsing" -version = "3.0.7" -description = "Python parsing module" +version = "3.0.9" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.6.8" [package.extras] -diagrams = ["jinja2", "railroad-diagrams"] +diagrams = ["railroad-diagrams", "jinja2"] [[package]] name = "pyrsistent" @@ -355,7 +378,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtualenv"] +testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"] [[package]] name = "pytest-flake8" @@ -379,21 +402,21 @@ python-versions = ">=3.6" [[package]] name = "requests" -version = "2.27.1" +version = "2.28.1" description = "Python HTTP for Humans." category = "main" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7, <4" [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +charset-normalizer = ">=2,<3" +idna = ">=2.5,<4" urllib3 = ">=1.21.1,<1.27" [package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "six" @@ -413,7 +436,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "tomli" -version = "2.0.0" +version = "2.0.1" description = "A lil' TOML parser" category = "dev" optional = false @@ -421,7 +444,7 @@ python-versions = ">=3.7" [[package]] name = "tox" -version = "3.24.5" +version = "3.25.1" description = "tox is a generic virtualenv management and test command line tool" category = "dev" optional = false @@ -444,55 +467,54 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytes [[package]] name = "typing-extensions" -version = "4.0.1" -description = "Backported and Experimental Type Hints for Python 3.6+" +version = "4.3.0" +description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [[package]] name = "urllib3" -version = "1.26.8" +version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] -brotli = ["brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "virtualenv" -version = "20.13.0" +version = "20.16.4" description = "Virtual Python Environment builder" category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6" [package.dependencies] -distlib = ">=0.3.1,<1" -filelock = ">=3.2,<4" -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -platformdirs = ">=2,<3" -six = ">=1.9.0,<2" +distlib = ">=0.3.5,<1" +filelock = ">=3.4.1,<4" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.8\""} +platformdirs = ">=2.4,<3" [package.extras] -docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] -testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"] +docs = ["proselint (>=0.13)", "sphinx (>=5.1.1)", "sphinx-argparse (>=0.3.1)", "sphinx-rtd-theme (>=1)", "towncrier (>=21.9)"] +testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=21.3)", "pytest (>=7.0.1)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.6.1)", "pytest-randomly (>=3.10.3)", "pytest-timeout (>=2.1)"] [[package]] name = "zipp" -version = "3.7.0" +version = "3.8.1" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [extras] dev = [] @@ -501,212 +523,50 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "19303f08cfae419b01c822d71439c2b22aece643d179d3a8823d739c0c9b5c08" +content-hash = "ae65829150610ff64c89427f0659e03bac83c36b00e8d98216f6aeb2d691d3ee" [metadata.files] -atomicwrites = [ - {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, - {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, -] -attrs = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] -certifi = [ - {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, - {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, -] -cfgv = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"}, - {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] +atomicwrites = [] +attrs = [] +certifi = [] +cfgv = [] +charset-normalizer = [] +colorama = [] coverage = [] -distlib = [ - {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, - {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, -] -filelock = [ - {file = "filelock-3.4.2-py3-none-any.whl", hash = "sha256:cf0fc6a2f8d26bd900f19bf33915ca70ba4dd8c56903eeb14e1e7a2fd7590146"}, - {file = "filelock-3.4.2.tar.gz", hash = "sha256:38b4f4c989f9d06d44524df1b24bd19e167d851f19b50bf3e3559952dddc5b80"}, -] -flake8 = [ - {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, - {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, -] -identify = [ - {file = "identify-2.4.6-py2.py3-none-any.whl", hash = "sha256:cf06b1639e0dca0c184b1504d8b73448c99a68e004a80524c7923b95f7b6837c"}, - {file = "identify-2.4.6.tar.gz", hash = "sha256:233679e3f61a02015d4293dbccf16aa0e4996f868bd114688b8c124f18826706"}, -] -idna = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.2.0-py3-none-any.whl", hash = "sha256:057e92c15bc8d9e8109738a48db0ccb31b4d9d5cfbee5a8670879a30be66304b"}, - {file = "importlib_metadata-4.2.0.tar.gz", hash = "sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31"}, -] -importlib-resources = [ - {file = "importlib_resources-5.8.0-py3-none-any.whl", hash = "sha256:7952325ffd516c05a8ad0858c74dff2c3343f136fe66a6002b2623dd1d43f223"}, - {file = "importlib_resources-5.8.0.tar.gz", hash = "sha256:568c9f16cb204f9decc8d6d24a572eeea27dacbb4cee9e6b03a8025736769751"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] +distlib = [] +filelock = [] +flake8 = [] +identify = [] +idna = [] +importlib-metadata = [] +importlib-resources = [] +iniconfig = [] jsonschema = [] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -nodeenv = [ - {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, - {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, -] +jsonschema-spec = [] +mccabe = [] +nodeenv = [] openapi-schema-validator = [] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] +packaging = [] +pathable = [] pkgutil-resolve-name = [] -platformdirs = [ - {file = "platformdirs-2.4.1-py3-none-any.whl", hash = "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca"}, - {file = "platformdirs-2.4.1.tar.gz", hash = "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -pre-commit = [ - {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, - {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pycodestyle = [ - {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"}, - {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"}, -] -pyflakes = [ - {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, - {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, -] -pyparsing = [ - {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, - {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, -] -pyrsistent = [ - {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, - {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, - {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, - {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, -] -pytest = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] -pytest-cov = [ - {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, - {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, -] -pytest-flake8 = [ - {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, - {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -requests = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.0-py3-none-any.whl", hash = "sha256:b5bde28da1fed24b9bd1d4d2b8cba62300bfb4ec9a6187a957e8ddb9434c5224"}, - {file = "tomli-2.0.0.tar.gz", hash = "sha256:c292c34f58502a1eb2bbb9f5bbc9a5ebc37bee10ffb8c2d6bbdfa8eb13cc14e1"}, -] -tox = [ - {file = "tox-3.24.5-py2.py3-none-any.whl", hash = "sha256:be3362472a33094bce26727f5f771ca0facf6dafa217f65875314e9a6600c95c"}, - {file = "tox-3.24.5.tar.gz", hash = "sha256:67e0e32c90e278251fea45b696d0fef3879089ccbe979b0c556d35d5a70e2993"}, -] -typing-extensions = [ - {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, - {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, -] -urllib3 = [ - {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, - {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, -] -virtualenv = [ - {file = "virtualenv-20.13.0-py2.py3-none-any.whl", hash = "sha256:339f16c4a86b44240ba7223d0f93a7887c3ca04b5f9c8129da7958447d079b09"}, - {file = "virtualenv-20.13.0.tar.gz", hash = "sha256:d8458cf8d59d0ea495ad9b34c2599487f8a7772d796f9910858376d1600dd2dd"}, -] -zipp = [ - {file = "zipp-3.7.0-py3-none-any.whl", hash = "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375"}, - {file = "zipp-3.7.0.tar.gz", hash = "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"}, -] +platformdirs = [] +pluggy = [] +pre-commit = [] +py = [] +pycodestyle = [] +pyflakes = [] +pyparsing = [] +pyrsistent = [] +pytest = [] +pytest-cov = [] +pytest-flake8 = [] +pyyaml = [] +requests = [] +six = [] +toml = [] +tomli = [] +tox = [] +typing-extensions = [] +urllib3 = [] +virtualenv = [] +zipp = [] diff --git a/pyproject.toml b/pyproject.toml index 71e146b..1a4ec0a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,11 +33,12 @@ classifiers = [ [tool.poetry.dependencies] jsonschema = "^4.0.0" -openapi-schema-validator = {version = "^0.3.0a1", allow-prereleases = true} +openapi-schema-validator = "^0.3.2" python = "^3.7.0" PyYAML = ">=5.1" requests = {version = "*", optional = true} importlib-resources = "^5.8.0" +jsonschema-spec = "^0.1.1" [tool.poetry.extras] dev = ["pre-commit"] diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 94e48d1..fe93f09 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -1,4 +1,5 @@ import pytest +from jsonschema_spec.handlers import default_handlers from openapi_spec_validator import ( validate_v2_spec, validate_v2_spec_url, @@ -7,7 +8,6 @@ validate_v30_spec_url, validate_v30_spec, ) from openapi_spec_validator.exceptions import OpenAPIValidationError -from openapi_spec_validator.handlers.urllib import UrllibHandler class BaseTestValidValidteV2Spec: @@ -36,25 +36,12 @@ def test_failed(self, spec): validate_v30_spec(spec) -class BaseTestValidValidateSpecUrl: +class BaseTestValidValidateV2SpecUrl: @pytest.fixture - def urllib_handlers(self): - all_urls_handler = UrllibHandler('http', 'https', 'file') - return { - '': all_urls_handler, - 'http': UrllibHandler('http'), - 'https': UrllibHandler('https'), - 'file': UrllibHandler('file'), - } - - -class BaseTestValidValidateV2SpecUrl(BaseTestValidValidateSpecUrl): - - @pytest.fixture - def validate_spec_url_callable(self, urllib_handlers): + def validate_spec_url_callable(self): return validate_spec_url_factory( - openapi_v2_spec_validator.validate, urllib_handlers) + openapi_v2_spec_validator.validate, default_handlers) def test_valid(self, spec_url): validate_v2_spec_url(spec_url) @@ -70,12 +57,12 @@ def test_failed(self, spec_url): validate_v2_spec_url(spec_url) -class BaseTestValidValidateV30SpecUrl(BaseTestValidValidateSpecUrl): +class BaseTestValidValidateV30SpecUrl: @pytest.fixture - def validate_spec_url_callable(self, urllib_handlers): + def validate_spec_url_callable(self): return validate_spec_url_factory( - openapi_v30_spec_validator.validate, urllib_handlers) + openapi_v30_spec_validator.validate, default_handlers) def test_default_valid(self, spec_url): validate_v30_spec_url(spec_url) From a72b0adb7d06dace9650522d9e074b8b8581ff28 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 31 Aug 2022 23:02:56 +0100 Subject: [PATCH 118/371] Version 0.5.0a3 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index f8f49be..942361a 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.0a2 +current_version = 0.5.0a3 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 8d4a69c..d14134a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0a2 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0a3 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 890f88b..403121c 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -13,7 +13,7 @@ __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' -__version__ = '0.5.0a2' +__version__ = '0.5.0a3' __url__ = 'https://github.com/p1c2u/openapi-spec-validator' __license__ = 'Apache License, Version 2.0' diff --git a/pyproject.toml b/pyproject.toml index 1a4ec0a..d17b4c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ output = "reports/coverage.xml" [tool.poetry] name = "openapi-spec-validator" -version = "0.5.0a2" +version = "0.5.0a3" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 7bca8cdca24a08f4f4c3cee327cc999e1d510b8e Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 1 Sep 2022 09:48:51 +0100 Subject: [PATCH 119/371] test suites refactor --- openapi_spec_validator/schemas.py | 25 +- tests/integration/conftest.py | 24 +- tests/integration/data/v2.0/empty.yaml | 1 + tests/integration/test_errors.py | 426 ++++++++++++++++++++ tests/integration/test_shortcuts.py | 203 ++++------ tests/integration/test_validate.py | 149 ------- tests/integration/test_validators.py | 526 +++++-------------------- 7 files changed, 630 insertions(+), 724 deletions(-) create mode 100644 tests/integration/data/v2.0/empty.yaml create mode 100644 tests/integration/test_errors.py delete mode 100644 tests/integration/test_validate.py diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas.py index 4bd715a..025da2e 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas.py @@ -1,25 +1,14 @@ """OpenAIP spec validator schemas module.""" -import os -import urllib.parse -import urllib.request +from os import path import importlib_resources -from jsonschema_spec.handlers.compat import SafeLoader -from jsonschema_spec.handlers.file import FileHandler +from jsonschema_spec.readers import FilePathReader def get_openapi_schema(version): - path = 'resources/schemas/v{0}/schema.json'.format(version) - ref = importlib_resources.files('openapi_spec_validator') / path - with importlib_resources.as_file(ref) as path_resource: - path_full = os.path.join(os.path.dirname(__file__), path_resource) - schema = read_yaml_file(path_full) - schema_url = urllib.parse.urljoin('file:', urllib.request.pathname2url(path_full)) - return schema, schema_url - - -def read_yaml_file(path, loader=SafeLoader): - """Open a file, read it and return its contents.""" - with open(path) as fh: - return FileHandler(loader=loader)(fh) + schema_path = 'resources/schemas/v{0}/schema.json'.format(version) + ref = importlib_resources.files('openapi_spec_validator') / schema_path + with importlib_resources.as_file(ref) as resource_path: + schema_path_full = path.join(path.dirname(__file__), resource_path) + return FilePathReader(schema_path_full).read() diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 2c6c81f..daf3661 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -1,17 +1,17 @@ from os import path +from pathlib import PurePath +from urllib.parse import urlunparse +from jsonschema_spec.handlers.file import FilePathHandler +from jsonschema_spec.handlers.urllib import UrllibHandler import pytest -from urllib import request -from urllib.parse import urlunparse -from yaml import safe_load -from openapi_spec_validator import (openapi_v2_spec_validator, - openapi_v30_spec_validator, - openapi_v31_spec_validator) -from openapi_spec_validator.schemas import read_yaml_file +from openapi_spec_validator import openapi_v2_spec_validator +from openapi_spec_validator import openapi_v30_spec_validator +from openapi_spec_validator import openapi_v31_spec_validator -def spec_url(spec_file, schema='file'): +def spec_file_url(spec_file, schema='file'): directory = path.abspath(path.dirname(__file__)) full_path = path.join(directory, spec_file) return urlunparse((schema, None, full_path, None, None, None)) @@ -20,12 +20,12 @@ def spec_url(spec_file, schema='file'): def spec_from_file(spec_file): directory = path.abspath(path.dirname(__file__)) path_full = path.join(directory, spec_file) - return read_yaml_file(path_full) + uri = PurePath(path_full).as_uri() + return FilePathHandler()(uri) def spec_from_url(spec_url): - content = request.urlopen(spec_url) - return safe_load(content) + return UrllibHandler("http", "https")(spec_url) class Factory(dict): @@ -36,7 +36,7 @@ class Factory(dict): @pytest.fixture def factory(): return Factory( - spec_url=spec_url, + spec_file_url=spec_file_url, spec_from_file=spec_from_file, spec_from_url=spec_from_url, ) diff --git a/tests/integration/data/v2.0/empty.yaml b/tests/integration/data/v2.0/empty.yaml new file mode 100644 index 0000000..5b308b0 --- /dev/null +++ b/tests/integration/data/v2.0/empty.yaml @@ -0,0 +1 @@ +swagger: "2.0" \ No newline at end of file diff --git a/tests/integration/test_errors.py b/tests/integration/test_errors.py new file mode 100644 index 0000000..03d3ef2 --- /dev/null +++ b/tests/integration/test_errors.py @@ -0,0 +1,426 @@ +from openapi_spec_validator.exceptions import ( + ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError, + DuplicateOperationIDError, +) + + +class TestSpecValidatorIterErrors(object): + + def test_empty(self, validator_v30): + spec = {} + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert errors_list[0].__class__ == OpenAPIValidationError + assert errors_list[0].message == "'openapi' is a required property" + assert errors_list[1].__class__ == OpenAPIValidationError + assert errors_list[1].message == "'info' is a required property" + assert errors_list[2].__class__ == OpenAPIValidationError + assert errors_list[2].message == "'paths' is a required property" + + def test_info_empty(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': {}, + 'paths': {}, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert errors_list[0].__class__ == OpenAPIValidationError + assert errors_list[0].message == "'title' is a required property" + + def test_minimalistic(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert errors_list == [] + + def test_same_parameters_names(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/{param1}': { + 'parameters': [ + { + 'name': 'param1', + 'in': 'query', + 'schema': { + 'type': 'integer', + }, + }, + { + 'name': 'param1', + 'in': 'path', + 'schema': { + 'type': 'integer', + }, + 'required': True, + }, + ], + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert errors_list == [] + + def test_same_operation_ids(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test': { + 'get': { + 'operationId': 'operation1', + 'responses': { + 'default': { + 'description': 'default response', + }, + }, + }, + 'post': { + 'operationId': 'operation1', + 'responses': { + 'default': { + 'description': 'default response', + }, + }, + }, + }, + '/test2': { + 'get': { + 'operationId': 'operation1', + 'responses': { + 'default': { + 'description': 'default response', + }, + }, + }, + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 2 + assert errors_list[0].__class__ == DuplicateOperationIDError + assert errors_list[1].__class__ == DuplicateOperationIDError + + def test_allow_allof_required_no_properties(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + 'components': { + 'schemas': { + 'Credit': { + 'type': 'object', + 'properties': { + 'clientId': {'type': 'string'}, + } + }, + 'CreditCreate': { + 'allOf': [ + { + '$ref': '#/components/schemas/Credit' + }, + { + 'required': ['clientId'] + } + ] + } + }, + }, + } + + errors = validator_v30.iter_errors(spec) + errors_list = list(errors) + assert errors_list == [] + + def test_allow_allof_when_required_is_linked_to_the_parent_object(self, validator_v30): + spec = { + 'openapi': '3.0.1', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + 'components': { + 'schemas': { + 'Address': { + 'type': 'object', + 'properties': { + 'SubdivisionCode': { + 'type': 'string', + 'description': 'State or region' + }, + 'Town': { + 'type': 'string', + 'description': 'Town or city' + }, + 'CountryCode': { + 'type': 'string', + } + } + }, + 'AddressCreation': { + 'required': [ + 'CountryCode', + 'Town' + ], + 'type': 'object', + 'allOf': [ + { + '$ref': '#/components/schemas/Address' + } + ] + } + } + } + } + + errors = validator_v30.iter_errors(spec) + errors_list = list(errors) + assert errors_list == [] + + def test_extra_parameters_in_required(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + 'components': { + 'schemas': { + 'testSchema': { + 'type': 'object', + 'required': [ + 'testparam1', + ] + } + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert errors_list[0].__class__ == ExtraParametersError + assert errors_list[0].message == ( + "Required list has not defined properties: ['testparam1']" + ) + + def test_undocumented_parameter(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/{param1}/{param2}': { + 'get': { + 'responses': { + 'default': { + 'description': 'default response', + }, + }, + }, + 'parameters': [ + { + 'name': 'param1', + 'in': 'path', + 'schema': { + 'type': 'integer', + }, + 'required': True, + }, + ], + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert errors_list[0].__class__ == UnresolvableParameterError + assert errors_list[0].message == ( + "Path parameter 'param2' for 'get' operation in " + "'/test/{param1}/{param2}' was not resolved" + ) + + def test_default_value_wrong_type(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': {}, + 'components': { + 'schemas': { + 'test': { + 'type': 'integer', + 'default': 'invaldtype', + }, + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == OpenAPIValidationError + assert errors_list[0].message == ( + "'invaldtype' is not of type 'integer'" + ) + + def test_parameter_default_value_wrong_type(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/{param1}': { + 'get': { + 'responses': { + 'default': { + 'description': 'default response', + }, + }, + }, + 'parameters': [ + { + 'name': 'param1', + 'in': 'path', + 'schema': { + 'type': 'integer', + 'default': 'invaldtype', + }, + 'required': True, + }, + ], + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == OpenAPIValidationError + assert errors_list[0].message == ( + "'invaldtype' is not of type 'integer'" + ) + + def test_parameter_default_value_wrong_type_swagger(self, + validator_v2): + spec = { + 'swagger': '2.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/': { + 'get': { + 'responses': { + '200': { + 'description': 'OK', + 'schema': {'type': 'object'}, + }, + }, + 'parameters': [ + { + 'name': 'param1', + 'in': 'query', + 'type': 'integer', + 'default': 'invaldtype', + }, + ], + }, + }, + }, + } + + errors = validator_v2.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == OpenAPIValidationError + assert errors_list[0].message == ( + "'invaldtype' is not of type 'integer'" + ) + + def test_parameter_default_value_with_reference(self, validator_v30): + spec = { + 'openapi': '3.0.0', + 'info': { + 'title': 'Test Api', + 'version': '0.0.1', + }, + 'paths': { + '/test/': { + 'get': { + 'responses': { + 'default': { + 'description': 'default response', + }, + }, + 'parameters': [ + { + 'name': 'param1', + 'in': 'query', + 'schema': { + 'allOf': [{ + '$ref': '#/components/schemas/type', + }], + 'default': 1, + }, + }, + ], + }, + }, + }, + 'components': { + 'schemas': { + 'type': { + 'type': 'integer', + } + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert errors_list == [] diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index fe93f09..9f8b07f 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -3,163 +3,122 @@ from openapi_spec_validator import ( validate_v2_spec, validate_v2_spec_url, - validate_spec_url_factory, + validate_spec_factory, validate_spec_url_factory, openapi_v2_spec_validator, openapi_v30_spec_validator, validate_v30_spec_url, validate_v30_spec, ) from openapi_spec_validator.exceptions import OpenAPIValidationError -class BaseTestValidValidteV2Spec: +class TestLocalOpenAPIv20Validator: - def test_valid(self, spec): - validate_v2_spec(spec) - - -class BaseTestFaliedValidateV2Spec: - - def test_failed(self, spec): - with pytest.raises(OpenAPIValidationError): - validate_v2_spec(spec) + LOCAL_SOURCE_DIRECTORY = "data/v2.0/" + def local_test_suite_file_path(self, test_file): + return "{}{}".format(self.LOCAL_SOURCE_DIRECTORY, test_file) -class BaseTestValidValidteSpec: + @pytest.mark.parametrize('spec_file', [ + "petstore.yaml", + ]) + def test_valid(self, factory, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) - def test_valid(self, spec): - validate_v30_spec(spec) + validate_v2_spec(spec) + validate_spec_factory( + openapi_v2_spec_validator.validate)(spec, spec_url) -class BaseTestFaliedValidateSpec: + @pytest.mark.parametrize('spec_file', [ + "empty.yaml", + ]) + def test_falied(self, factory, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) - def test_failed(self, spec): with pytest.raises(OpenAPIValidationError): - validate_v30_spec(spec) - - -class BaseTestValidValidateV2SpecUrl: - - @pytest.fixture - def validate_spec_url_callable(self): - return validate_spec_url_factory( - openapi_v2_spec_validator.validate, default_handlers) - - def test_valid(self, spec_url): - validate_v2_spec_url(spec_url) - - def test_urllib_valid(self, validate_spec_url_callable, spec_url): - validate_spec_url_callable(spec_url) - + validate_v2_spec(spec) -class BaseTestFaliedValidateV2SpecUrl: - def test_failed(self, spec_url): - with pytest.raises(OpenAPIValidationError): - validate_v2_spec_url(spec_url) +class TestLocalOpenAPIv30Validator: + LOCAL_SOURCE_DIRECTORY = "data/v3.0/" -class BaseTestValidValidateV30SpecUrl: + def local_test_suite_file_path(self, test_file): + return "{}{}".format(self.LOCAL_SOURCE_DIRECTORY, test_file) - @pytest.fixture - def validate_spec_url_callable(self): - return validate_spec_url_factory( - openapi_v30_spec_validator.validate, default_handlers) + @pytest.mark.parametrize('spec_file', [ + "petstore.yaml", + ]) + def test_valid(self, factory, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) - def test_default_valid(self, spec_url): - validate_v30_spec_url(spec_url) - - def test_urllib_valid(self, validate_spec_url_callable, spec_url): - validate_spec_url_callable(spec_url) + validate_v30_spec(spec) + validate_spec_factory( + openapi_v30_spec_validator.validate)(spec, spec_url) -class BaseTestFaliedValidateSpecUrl: + @pytest.mark.parametrize('spec_file', [ + "empty.yaml", + ]) + def test_falied(self, factory, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) - def test_failed(self, spec_url): with pytest.raises(OpenAPIValidationError): - validate_v30_spec_url(spec_url) - - -class TestLocalEmptyExample(BaseTestFaliedValidateSpec): - - @pytest.fixture - def spec(self, factory): - return factory.spec_from_file("data/v3.0/empty.yaml") - - -class TestLocalPetstoreV2Example(BaseTestValidValidteV2Spec): - - @pytest.fixture - def spec(self, factory): - return factory.spec_from_file("data/v2.0/petstore.yaml") - - -class TestLocalPetstoreExample(BaseTestValidValidteSpec): - - @pytest.fixture - def spec(self, factory): - return factory.spec_from_file("data/v3.0/petstore.yaml") - - -class TestPetstoreV2Example(BaseTestValidValidateV2SpecUrl): - - @pytest.fixture - def spec_url(self): - return ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' - 'yaml/petstore.yaml' - ) - + validate_v30_spec(spec) -class TestApiV2WithExampe(BaseTestValidValidateV2SpecUrl): - @pytest.fixture - def spec_url(self): - return ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' - 'yaml/api-with-examples.yaml' - ) +class TestRemoteValidateV20: + REMOTE_SOURCE_URL = ( + "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" + ) -class TestPetstoreV2ExpandedExample(BaseTestValidValidateV2SpecUrl): + def remote_test_suite_file_path(self, test_file): + return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) - @pytest.fixture - def spec_url(self): - return ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' - 'yaml/petstore-expanded.yaml' - ) + @pytest.mark.parametrize('spec_file', [ + 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' + 'yaml/petstore.yaml', + 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' + 'yaml/api-with-examples.yaml', + 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' + 'yaml/petstore-expanded.yaml', + ]) + def test_valid(self, spec_file): + spec_url = self.remote_test_suite_file_path(spec_file) + validate_v2_spec_url(spec_url) -class TestPetstoreExample(BaseTestValidValidateV30SpecUrl): + validate_spec_url_factory( + openapi_v2_spec_validator.validate, default_handlers)(spec_url) - @pytest.fixture - def spec_url(self): - return ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'petstore.yaml' - ) +class TestRemoteValidateV30: -class TestApiWithExample(BaseTestValidValidateV30SpecUrl): + REMOTE_SOURCE_URL = ( + "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" + ) - @pytest.fixture - def spec_url(self): - return ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'api-with-examples.yaml' - ) + def remote_test_suite_file_path(self, test_file): + return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) + @pytest.mark.parametrize('spec_file', [ + 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' + 'petstore.yaml', + 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' + 'api-with-examples.yaml', + '970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/' + 'api-with-examples.yaml' + ]) + def test_valid(self, spec_file): + spec_url = self.remote_test_suite_file_path(spec_file) -class TestPetstoreExpandedExample(BaseTestValidValidateV30SpecUrl): + validate_v30_spec_url(spec_url) - @pytest.fixture - def spec_url(self): - return ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - '970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/' - 'api-with-examples.yaml' - ) + validate_spec_url_factory( + openapi_v30_spec_validator.validate, default_handlers)(spec_url) diff --git a/tests/integration/test_validate.py b/tests/integration/test_validate.py deleted file mode 100644 index 87d8b7b..0000000 --- a/tests/integration/test_validate.py +++ /dev/null @@ -1,149 +0,0 @@ -import pytest - -from openapi_spec_validator.exceptions import OpenAPIValidationError - -REMOTE_SOURCE_URL = 'https://raw.githubusercontent.com/' \ - 'OAI/OpenAPI-Specification/' \ - 'd9ac75b00c8bf405c2c90cfa9f20370564371dec/' - - -def remote_test_suite_file_path(test_file): - return "{}{}".format(REMOTE_SOURCE_URL, test_file) - - -class BaseTestValidOpenAPIv3Validator(object): - - @pytest.fixture - def spec_url(self): - return '' - - def test_valid(self, validator_v30, spec, spec_url): - return validator_v30.validate(spec, spec_url=spec_url) - - -class BaseTestFailedOpenAPIv3Validator(object): - - @pytest.fixture - def spec_url(self): - return '' - - def test_failed(self, validator_v30, spec, spec_url): - with pytest.raises(OpenAPIValidationError): - validator_v30.validate(spec, spec_url=spec_url) - - -class TestLocalEmptyExample(BaseTestFailedOpenAPIv3Validator): - - @pytest.fixture - def spec(self, factory): - return factory.spec_from_file("data/v3.0/empty.yaml") - - -class TestLocalPetstoreExample(BaseTestValidOpenAPIv3Validator): - - @pytest.fixture - def spec(self, factory): - return factory.spec_from_file("data/v3.0/petstore.yaml") - - -class TestLocalPetstoreSeparateExample(BaseTestValidOpenAPIv3Validator): - - spec_file = "data/v3.0/petstore-separate/spec/openapi.yaml" - - @pytest.fixture - def spec_url(self, factory): - return factory.spec_url(self.spec_file) - - @pytest.fixture - def spec(self, factory): - return factory.spec_from_file(self.spec_file) - - -class TestLocalParentReferenceExample(BaseTestValidOpenAPIv3Validator): - - spec_file = "data/v3.0/parent-reference/openapi.yaml" - - @pytest.fixture - def spec_url(self, factory): - return factory.spec_url(self.spec_file) - - @pytest.fixture - def spec(self, factory): - return factory.spec_from_file(self.spec_file) - - -class TestPetstoreExample(BaseTestValidOpenAPIv3Validator): - - @pytest.fixture - def spec(self, factory): - url = ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'petstore.yaml' - ) - return factory.spec_from_url(url) - - -class TestApiWithExample(BaseTestValidOpenAPIv3Validator): - - @pytest.fixture - def spec(self, factory): - url = ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'api-with-examples.yaml' - ) - return factory.spec_from_url(url) - - -class TestPetstoreExpandedExample(BaseTestValidOpenAPIv3Validator): - - @pytest.fixture - def spec(self, factory): - url = ( - 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/' - '970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/' - 'api-with-examples.yaml' - ) - return factory.spec_from_url(url) - - -class TestValidOpeAPIv31Validator(BaseTestValidOpenAPIv3Validator): - - @pytest.mark.parametrize('spec_file', [ - 'comp_pathitems.yaml', - 'info_summary.yaml', - 'license_identifier.yaml', - 'mega.yaml', - 'minimal_comp.yaml', - 'minimal_hooks.yaml', - 'minimal_paths.yaml', - 'path_no_response.yaml', - 'path_var_empty_pathitem.yaml', - 'schema.yaml', - 'servers.yaml', - 'valid_schema_types.yaml', - ]) - def test_valid(self, factory, validator_v31, spec_file, spec_url): - url = remote_test_suite_file_path( - '{}{}'.format('tests/v3.1/pass/', spec_file) - ) - spec = factory.spec_from_url(url) - - return validator_v31.validate(spec, spec_url=spec_url) - - @pytest.mark.parametrize('spec_file', [ - 'invalid_schema_types.yaml', - 'no_containers.yaml', - 'server_enum_empty.yaml', - 'servers.yaml', - 'unknown_container.yaml', - ]) - def test_failed(self, factory, validator_v31, spec_file, spec_url): - url = remote_test_suite_file_path( - '{}{}'.format('tests/v3.1/fail/', spec_file) - ) - spec = factory.spec_from_url(url) - - with pytest.raises(OpenAPIValidationError): - validator_v31.validate(spec, spec_url=spec_url) diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 03d3ef2..6e95b3d 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -1,426 +1,106 @@ -from openapi_spec_validator.exceptions import ( - ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError, - DuplicateOperationIDError, -) - - -class TestSpecValidatorIterErrors(object): - - def test_empty(self, validator_v30): - spec = {} - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert errors_list[0].__class__ == OpenAPIValidationError - assert errors_list[0].message == "'openapi' is a required property" - assert errors_list[1].__class__ == OpenAPIValidationError - assert errors_list[1].message == "'info' is a required property" - assert errors_list[2].__class__ == OpenAPIValidationError - assert errors_list[2].message == "'paths' is a required property" - - def test_info_empty(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': {}, - 'paths': {}, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert errors_list[0].__class__ == OpenAPIValidationError - assert errors_list[0].message == "'title' is a required property" - - def test_minimalistic(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': {}, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert errors_list == [] - - def test_same_parameters_names(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': { - '/test/{param1}': { - 'parameters': [ - { - 'name': 'param1', - 'in': 'query', - 'schema': { - 'type': 'integer', - }, - }, - { - 'name': 'param1', - 'in': 'path', - 'schema': { - 'type': 'integer', - }, - 'required': True, - }, - ], - }, - }, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert errors_list == [] - - def test_same_operation_ids(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': { - '/test': { - 'get': { - 'operationId': 'operation1', - 'responses': { - 'default': { - 'description': 'default response', - }, - }, - }, - 'post': { - 'operationId': 'operation1', - 'responses': { - 'default': { - 'description': 'default response', - }, - }, - }, - }, - '/test2': { - 'get': { - 'operationId': 'operation1', - 'responses': { - 'default': { - 'description': 'default response', - }, - }, - }, - }, - }, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert len(errors_list) == 2 - assert errors_list[0].__class__ == DuplicateOperationIDError - assert errors_list[1].__class__ == DuplicateOperationIDError - - def test_allow_allof_required_no_properties(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': {}, - 'components': { - 'schemas': { - 'Credit': { - 'type': 'object', - 'properties': { - 'clientId': {'type': 'string'}, - } - }, - 'CreditCreate': { - 'allOf': [ - { - '$ref': '#/components/schemas/Credit' - }, - { - 'required': ['clientId'] - } - ] - } - }, - }, - } - - errors = validator_v30.iter_errors(spec) - errors_list = list(errors) - assert errors_list == [] - - def test_allow_allof_when_required_is_linked_to_the_parent_object(self, validator_v30): - spec = { - 'openapi': '3.0.1', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': {}, - 'components': { - 'schemas': { - 'Address': { - 'type': 'object', - 'properties': { - 'SubdivisionCode': { - 'type': 'string', - 'description': 'State or region' - }, - 'Town': { - 'type': 'string', - 'description': 'Town or city' - }, - 'CountryCode': { - 'type': 'string', - } - } - }, - 'AddressCreation': { - 'required': [ - 'CountryCode', - 'Town' - ], - 'type': 'object', - 'allOf': [ - { - '$ref': '#/components/schemas/Address' - } - ] - } - } - } - } - - errors = validator_v30.iter_errors(spec) - errors_list = list(errors) - assert errors_list == [] - - def test_extra_parameters_in_required(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': {}, - 'components': { - 'schemas': { - 'testSchema': { - 'type': 'object', - 'required': [ - 'testparam1', - ] - } - }, - }, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert errors_list[0].__class__ == ExtraParametersError - assert errors_list[0].message == ( - "Required list has not defined properties: ['testparam1']" - ) - - def test_undocumented_parameter(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': { - '/test/{param1}/{param2}': { - 'get': { - 'responses': { - 'default': { - 'description': 'default response', - }, - }, - }, - 'parameters': [ - { - 'name': 'param1', - 'in': 'path', - 'schema': { - 'type': 'integer', - }, - 'required': True, - }, - ], - }, - }, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert errors_list[0].__class__ == UnresolvableParameterError - assert errors_list[0].message == ( - "Path parameter 'param2' for 'get' operation in " - "'/test/{param1}/{param2}' was not resolved" - ) - - def test_default_value_wrong_type(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': {}, - 'components': { - 'schemas': { - 'test': { - 'type': 'integer', - 'default': 'invaldtype', - }, - }, - }, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert len(errors_list) == 1 - assert errors_list[0].__class__ == OpenAPIValidationError - assert errors_list[0].message == ( - "'invaldtype' is not of type 'integer'" - ) - - def test_parameter_default_value_wrong_type(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': { - '/test/{param1}': { - 'get': { - 'responses': { - 'default': { - 'description': 'default response', - }, - }, - }, - 'parameters': [ - { - 'name': 'param1', - 'in': 'path', - 'schema': { - 'type': 'integer', - 'default': 'invaldtype', - }, - 'required': True, - }, - ], - }, - }, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert len(errors_list) == 1 - assert errors_list[0].__class__ == OpenAPIValidationError - assert errors_list[0].message == ( - "'invaldtype' is not of type 'integer'" +import pytest + +from openapi_spec_validator.exceptions import OpenAPIValidationError + + +class TestLocalOpenAPIv30Validator: + + LOCAL_SOURCE_DIRECTORY = "data/v3.0/" + + def local_test_suite_file_path(self, test_file): + return "{}{}".format(self.LOCAL_SOURCE_DIRECTORY, test_file) + + @pytest.mark.parametrize('spec_file', [ + "petstore.yaml", + "petstore-separate/spec/openapi.yaml", + "parent-reference/openapi.yaml", + ]) + def test_valid(self, factory, validator_v30, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) + + return validator_v30.validate(spec, spec_url=spec_url) + + @pytest.mark.parametrize('spec_file', [ + "empty.yaml", + ]) + def test_falied(self, factory, validator_v30, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) + + with pytest.raises(OpenAPIValidationError): + validator_v30.validate(spec, spec_url=spec_url) + + +class TestRemoteOpenAPIv30Validator: + + REMOTE_SOURCE_URL = ( + "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" + ) + + def remote_test_suite_file_path(self, test_file): + return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) + + @pytest.mark.parametrize('spec_file', [ + 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' + 'petstore.yaml', + 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' + 'api-with-examples.yaml', + '970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/' + 'api-with-examples.yaml' + ]) + def test_valid(self, factory, validator_v30, spec_file): + spec_url = self.remote_test_suite_file_path(spec_file) + spec = factory.spec_from_url(spec_url) + + return validator_v30.validate(spec, spec_url=spec_url) + + +class TestRemoteOpeAPIv31Validator: + + REMOTE_SOURCE_URL = 'https://raw.githubusercontent.com/' \ + 'OAI/OpenAPI-Specification/' \ + 'd9ac75b00c8bf405c2c90cfa9f20370564371dec/' + + def remote_test_suite_file_path(self, test_file): + return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) + + @pytest.mark.parametrize('spec_file', [ + 'comp_pathitems.yaml', + 'info_summary.yaml', + 'license_identifier.yaml', + 'mega.yaml', + 'minimal_comp.yaml', + 'minimal_hooks.yaml', + 'minimal_paths.yaml', + 'path_no_response.yaml', + 'path_var_empty_pathitem.yaml', + 'schema.yaml', + 'servers.yaml', + 'valid_schema_types.yaml', + ]) + def test_valid(self, factory, validator_v31, spec_file): + spec_url = self.remote_test_suite_file_path( + '{}{}'.format('tests/v3.1/pass/', spec_file) ) - - def test_parameter_default_value_wrong_type_swagger(self, - validator_v2): - spec = { - 'swagger': '2.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': { - '/test/': { - 'get': { - 'responses': { - '200': { - 'description': 'OK', - 'schema': {'type': 'object'}, - }, - }, - 'parameters': [ - { - 'name': 'param1', - 'in': 'query', - 'type': 'integer', - 'default': 'invaldtype', - }, - ], - }, - }, - }, - } - - errors = validator_v2.iter_errors(spec) - - errors_list = list(errors) - assert len(errors_list) == 1 - assert errors_list[0].__class__ == OpenAPIValidationError - assert errors_list[0].message == ( - "'invaldtype' is not of type 'integer'" + spec = factory.spec_from_url(spec_url) + + return validator_v31.validate(spec, spec_url=spec_url) + + @pytest.mark.parametrize('spec_file', [ + 'invalid_schema_types.yaml', + 'no_containers.yaml', + 'server_enum_empty.yaml', + 'servers.yaml', + 'unknown_container.yaml', + ]) + def test_failed(self, factory, validator_v31, spec_file): + spec_url = self.remote_test_suite_file_path( + '{}{}'.format('tests/v3.1/fail/', spec_file) ) + spec = factory.spec_from_url(spec_url) - def test_parameter_default_value_with_reference(self, validator_v30): - spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', - }, - 'paths': { - '/test/': { - 'get': { - 'responses': { - 'default': { - 'description': 'default response', - }, - }, - 'parameters': [ - { - 'name': 'param1', - 'in': 'query', - 'schema': { - 'allOf': [{ - '$ref': '#/components/schemas/type', - }], - 'default': 1, - }, - }, - ], - }, - }, - }, - 'components': { - 'schemas': { - 'type': { - 'type': 'integer', - } - }, - }, - } - - errors = validator_v30.iter_errors(spec) - - errors_list = list(errors) - assert errors_list == [] + with pytest.raises(OpenAPIValidationError): + validator_v31.validate(spec, spec_url=spec_url) From 70325f638001c615909978381bb48ad3d924dafd Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 1 Sep 2022 10:42:08 +0100 Subject: [PATCH 120/371] schemas and validation refactor --- openapi_spec_validator/__init__.py | 37 ++-------------- openapi_spec_validator/__main__.py | 2 +- openapi_spec_validator/schemas/__init__.py | 11 +++++ .../{schemas.py => schemas/utils.py} | 4 +- openapi_spec_validator/validation/__init__.py | 44 +++++++++++++++++++ .../{ => validation}/decorators.py | 2 +- .../{ => validation}/exceptions.py | 0 .../{ => validation}/validators.py | 11 ++--- tests/integration/test_errors.py | 2 +- tests/integration/test_shortcuts.py | 2 +- tests/integration/test_validators.py | 2 +- 11 files changed, 72 insertions(+), 45 deletions(-) create mode 100644 openapi_spec_validator/schemas/__init__.py rename openapi_spec_validator/{schemas.py => schemas/utils.py} (84%) create mode 100644 openapi_spec_validator/validation/__init__.py rename openapi_spec_validator/{ => validation}/decorators.py (91%) rename openapi_spec_validator/{ => validation}/exceptions.py (100%) rename openapi_spec_validator/{ => validation}/validators.py (95%) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 403121c..aaf4a3a 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,15 +1,13 @@ # -*- coding: utf-8 -*- -from jsonschema.validators import Draft202012Validator -from jsonschema.validators import Draft4Validator from jsonschema_spec.handlers import default_handlers -from openapi_schema_validator.validators import OAS30Validator -from openapi_schema_validator.validators import OAS31Validator from openapi_spec_validator.shortcuts import ( validate_spec_factory, validate_spec_url_factory, ) -from openapi_spec_validator.schemas import get_openapi_schema -from openapi_spec_validator.validators import SpecValidator +from openapi_spec_validator.validation import openapi_v2_spec_validator +from openapi_spec_validator.validation import openapi_v3_spec_validator +from openapi_spec_validator.validation import openapi_v30_spec_validator +from openapi_spec_validator.validation import openapi_v31_spec_validator __author__ = 'Artur Maciag' __email__ = 'maciag.artur@gmail.com' @@ -34,30 +32,6 @@ 'validate_spec_url', ] -# v2.0 spec -schema_v2, _ = get_openapi_schema('2.0') -openapi_v2_schema_validator = Draft4Validator(schema_v2) -openapi_v2_spec_validator = SpecValidator( - openapi_v2_schema_validator, OAS30Validator, - resolver_handlers=default_handlers, -) - -# v3.0 spec -schema_v30, _ = get_openapi_schema('3.0') -openapi_v30_schema_validator = Draft4Validator(schema_v30) -openapi_v30_spec_validator = SpecValidator( - openapi_v30_schema_validator, OAS30Validator, - resolver_handlers=default_handlers, -) - -# v3.1 spec -schema_v31, _ = get_openapi_schema('3.1') -openapi_v31_schema_validator = Draft202012Validator(schema_v31) -openapi_v31_spec_validator = SpecValidator( - openapi_v31_schema_validator, OAS31Validator, - resolver_handlers=default_handlers, -) - # shortcuts validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator.validate) validate_v2_spec_url = validate_spec_url_factory( @@ -67,14 +41,11 @@ validate_v30_spec_url = validate_spec_url_factory( openapi_v30_spec_validator.validate, default_handlers) - validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator.validate) validate_v31_spec_url = validate_spec_url_factory( openapi_v31_spec_validator.validate, default_handlers) # aliases to the latest v3 version -schema_v3 = schema_v31 -openapi_v3_spec_validator = openapi_v31_spec_validator validate_v3_spec = validate_v31_spec validate_v3_spec_url = validate_v31_spec_url diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 9ef3478..0fa2cc5 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -9,7 +9,7 @@ openapi_v30_spec_validator, openapi_v31_spec_validator, ) -from openapi_spec_validator.exceptions import ValidationError +from openapi_spec_validator.validation.exceptions import ValidationError from openapi_spec_validator.readers import read_from_stdin, read_from_filename logger = logging.getLogger(__name__) diff --git a/openapi_spec_validator/schemas/__init__.py b/openapi_spec_validator/schemas/__init__.py new file mode 100644 index 0000000..8858b78 --- /dev/null +++ b/openapi_spec_validator/schemas/__init__.py @@ -0,0 +1,11 @@ +"""OpenAIP spec validator schemas module.""" +from openapi_spec_validator.schemas.utils import get_schema + +__all__ = ["schema_v2", "schema_v3", "schema_v30", "schema_v31"] + +schema_v2, _ = get_schema('2.0') +schema_v30, _ = get_schema('3.0') +schema_v31, _ = get_schema('3.1') + +# alias to the latest v3 version +schema_v3 = schema_v31 diff --git a/openapi_spec_validator/schemas.py b/openapi_spec_validator/schemas/utils.py similarity index 84% rename from openapi_spec_validator/schemas.py rename to openapi_spec_validator/schemas/utils.py index 025da2e..d7666de 100644 --- a/openapi_spec_validator/schemas.py +++ b/openapi_spec_validator/schemas/utils.py @@ -1,4 +1,4 @@ -"""OpenAIP spec validator schemas module.""" +"""OpenAIP spec validator schemas utils module.""" from os import path import importlib_resources @@ -6,7 +6,7 @@ from jsonschema_spec.readers import FilePathReader -def get_openapi_schema(version): +def get_schema(version): schema_path = 'resources/schemas/v{0}/schema.json'.format(version) ref = importlib_resources.files('openapi_spec_validator') / schema_path with importlib_resources.as_file(ref) as resource_path: diff --git a/openapi_spec_validator/validation/__init__.py b/openapi_spec_validator/validation/__init__.py new file mode 100644 index 0000000..13bc218 --- /dev/null +++ b/openapi_spec_validator/validation/__init__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +from jsonschema.validators import Draft202012Validator +from jsonschema.validators import Draft4Validator +from jsonschema_spec.handlers import default_handlers +from openapi_schema_validator import oas30_format_checker +from openapi_schema_validator import oas31_format_checker +from openapi_schema_validator.validators import OAS30Validator +from openapi_schema_validator.validators import OAS31Validator + +from openapi_spec_validator.schemas import schema_v2 +from openapi_spec_validator.schemas import schema_v30 +from openapi_spec_validator.schemas import schema_v31 +from openapi_spec_validator.validation.validators import SpecValidator + +__all__ = [ + 'openapi_v2_spec_validator', + 'openapi_v3_spec_validator', + 'openapi_v30_spec_validator', + 'openapi_v31_spec_validator', +] + +# v2.0 spec +openapi_v2_schema_validator = Draft4Validator(schema_v2) +openapi_v2_spec_validator = SpecValidator( + openapi_v2_schema_validator, OAS30Validator, oas30_format_checker, + resolver_handlers=default_handlers, +) + +# v3.0 spec +openapi_v30_schema_validator = Draft4Validator(schema_v30) +openapi_v30_spec_validator = SpecValidator( + openapi_v30_schema_validator, OAS30Validator, oas30_format_checker, + resolver_handlers=default_handlers, +) + +# v3.1 spec +openapi_v31_schema_validator = Draft202012Validator(schema_v31) +openapi_v31_spec_validator = SpecValidator( + openapi_v31_schema_validator, OAS31Validator, oas31_format_checker, + resolver_handlers=default_handlers, +) + +# alias to the latest v3 version +openapi_v3_spec_validator = openapi_v31_spec_validator diff --git a/openapi_spec_validator/decorators.py b/openapi_spec_validator/validation/decorators.py similarity index 91% rename from openapi_spec_validator/decorators.py rename to openapi_spec_validator/validation/decorators.py index 14f163f..3f4744a 100644 --- a/openapi_spec_validator/decorators.py +++ b/openapi_spec_validator/validation/decorators.py @@ -1,4 +1,4 @@ -"""OpenAPI spec validator decorators module.""" +"""OpenAPI spec validator validation decorators module.""" from functools import wraps import logging diff --git a/openapi_spec_validator/exceptions.py b/openapi_spec_validator/validation/exceptions.py similarity index 100% rename from openapi_spec_validator/exceptions.py rename to openapi_spec_validator/validation/exceptions.py diff --git a/openapi_spec_validator/validators.py b/openapi_spec_validator/validation/validators.py similarity index 95% rename from openapi_spec_validator/validators.py rename to openapi_spec_validator/validation/validators.py index 56f857c..5b3cde1 100644 --- a/openapi_spec_validator/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -1,16 +1,16 @@ +"""OpenAPI spec validator validation validators module.""" import logging import string from jsonschema.validators import RefResolver from jsonschema_spec.accessors import SpecAccessor from jsonschema_spec.paths import Spec -from openapi_schema_validator import OAS31Validator, oas31_format_checker -from openapi_spec_validator.exceptions import ( +from openapi_spec_validator.validation.exceptions import ( ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError, DuplicateOperationIDError, ) -from openapi_spec_validator.decorators import ValidationErrorWrapper +from openapi_spec_validator.validation.decorators import ValidationErrorWrapper log = logging.getLogger(__name__) @@ -27,9 +27,10 @@ class SpecValidator(object): 'get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace', ] - def __init__(self, schema_validator, value_validator_class, resolver_handlers=None): + def __init__(self, schema_validator, value_validator_class, value_validator_format_checker, resolver_handlers=None): self.schema_validator = schema_validator self.value_validator_class = value_validator_class + self.value_validator_format_checker = value_validator_format_checker self.resolver_handlers = resolver_handlers self.operation_ids_registry = None @@ -141,7 +142,7 @@ def _iter_value_errors(self, schema, value): validator = self.value_validator_class( content, resolver=self.resolver, - format_checker=oas31_format_checker, + format_checker=self.value_validator_format_checker, ) yield from validator.iter_errors(value) diff --git a/tests/integration/test_errors.py b/tests/integration/test_errors.py index 03d3ef2..0841aa8 100644 --- a/tests/integration/test_errors.py +++ b/tests/integration/test_errors.py @@ -1,4 +1,4 @@ -from openapi_spec_validator.exceptions import ( +from openapi_spec_validator.validation.exceptions import ( ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError, DuplicateOperationIDError, ) diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 9f8b07f..d5aa085 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -7,7 +7,7 @@ openapi_v2_spec_validator, openapi_v30_spec_validator, validate_v30_spec_url, validate_v30_spec, ) -from openapi_spec_validator.exceptions import OpenAPIValidationError +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError class TestLocalOpenAPIv20Validator: diff --git a/tests/integration/test_validators.py b/tests/integration/test_validators.py index 6e95b3d..4cee021 100644 --- a/tests/integration/test_validators.py +++ b/tests/integration/test_validators.py @@ -1,6 +1,6 @@ import pytest -from openapi_spec_validator.exceptions import OpenAPIValidationError +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError class TestLocalOpenAPIv30Validator: From 54e901b58c110bc4198d290f2d79fcbb914e1e25 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 1 Sep 2022 11:33:59 +0100 Subject: [PATCH 121/371] detect spec schema version --- README.rst | 28 +++++++++---- openapi_spec_validator/__init__.py | 35 ++++++++++------ openapi_spec_validator/exceptions.py | 6 +++ openapi_spec_validator/shortcuts.py | 40 ++++++++++++++---- tests/integration/data/empty.yaml | 1 + tests/integration/test_shortcuts.py | 42 +++++++++++++++---- .../test_exceptions.py} | 0 .../{ => validation}/test_validators.py | 0 8 files changed, 115 insertions(+), 37 deletions(-) create mode 100644 openapi_spec_validator/exceptions.py create mode 100644 tests/integration/data/empty.yaml rename tests/integration/{test_errors.py => validation/test_exceptions.py} (100%) rename tests/integration/{ => validation}/test_validators.py (100%) diff --git a/README.rst b/README.rst index fb6555e..a2fb75c 100644 --- a/README.rst +++ b/README.rst @@ -84,17 +84,21 @@ By default, OpenAPI v3.1 syntax is expected. To validate an OpenAPI v3.1 spec: # If no exception is raised by validate_spec(), the spec is valid. validate_spec(spec_dict) - validate_spec({}) + validate_spec({'openapi': '3.1.0'}) Traceback (most recent call last): ... - OpenAPIValidationError: 'openapi' is a required property + OpenAPIValidationError: 'info' is a required property -In order to validate a Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec`` instead of ``validate_spec``. -In order to validate a OpenAPI 3.0 spec file, import ``validate_v30_spec`` instead of ``validate_spec``. +In order to explicitly validate a: -You can also explicitly import ``validate_v31_spec`` if you want to disambiguate the expected version or -explicitly import ``validate_v3_spec`` which is a shortcut to the latest v3 release. +* Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec`` +* OpenAPI 3.0 spec file, import ``validate_v30_spec`` +* OpenAPI 3.1 spec file, import ``validate_v31_spec`` + +instead of ``validate_spec``. + +You can also explicitly import ``validate_v3_spec`` which is a shortcut to the latest v3 release. Add ``spec_url`` to validate spec with relative files: @@ -111,6 +115,16 @@ You can also validate spec from url: # If no exception is raised by validate_spec_url(), the spec is valid. validate_spec_url('http://example.com/openapi.json') +In order to explicitly validate a: + +* Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec_url`` +* OpenAPI 3.0 spec file, import ``validate_v30_spec_url`` +* OpenAPI 3.1 spec file, import ``validate_v31_spec_url`` + +instead of ``validate_spec_url``. + +You can also explicitly import ``validate_v3_spec_url`` which is a shortcut to the latest v3 release. + If you want to iterate through validation errors: .. code:: python @@ -130,4 +144,4 @@ Related projects License ####### -Copyright (c) 2017-2021, Artur Maciag, All rights reserved. Apache v2 +Copyright (c) 2017-2022, Artur Maciag, All rights reserved. Apache v2 diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index aaf4a3a..b104f5f 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- from jsonschema_spec.handlers import default_handlers -from openapi_spec_validator.shortcuts import ( - validate_spec_factory, validate_spec_url_factory, -) +from openapi_spec_validator.shortcuts import validate_spec_detect_factory +from openapi_spec_validator.shortcuts import validate_spec_url_detect_factory +from openapi_spec_validator.shortcuts import validate_spec_factory +from openapi_spec_validator.shortcuts import validate_spec_url_factory from openapi_spec_validator.validation import openapi_v2_spec_validator from openapi_spec_validator.validation import openapi_v3_spec_validator from openapi_spec_validator.validation import openapi_v30_spec_validator @@ -33,22 +34,30 @@ ] # shortcuts -validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator.validate) +validate_spec = validate_spec_detect_factory({ + ("swagger", "2.0"): openapi_v2_spec_validator, + ("openapi", "3.0"): openapi_v30_spec_validator, + ("openapi", "3.1"): openapi_v31_spec_validator, + }, +) +validate_spec_url = validate_spec_url_detect_factory({ + ("swagger", "2.0"): openapi_v2_spec_validator, + ("openapi", "3.0"): openapi_v30_spec_validator, + ("openapi", "3.1"): openapi_v31_spec_validator, + }, +) +validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator) validate_v2_spec_url = validate_spec_url_factory( - openapi_v2_spec_validator.validate, default_handlers) + openapi_v2_spec_validator) -validate_v30_spec = validate_spec_factory(openapi_v30_spec_validator.validate) +validate_v30_spec = validate_spec_factory(openapi_v30_spec_validator) validate_v30_spec_url = validate_spec_url_factory( - openapi_v30_spec_validator.validate, default_handlers) + openapi_v30_spec_validator) -validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator.validate) +validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator) validate_v31_spec_url = validate_spec_url_factory( - openapi_v31_spec_validator.validate, default_handlers) + openapi_v31_spec_validator) # aliases to the latest v3 version validate_v3_spec = validate_v31_spec validate_v3_spec_url = validate_v31_spec_url - -# aliases to the latest version -validate_spec = validate_v3_spec -validate_spec_url = validate_v3_spec_url diff --git a/openapi_spec_validator/exceptions.py b/openapi_spec_validator/exceptions.py new file mode 100644 index 0000000..f850b52 --- /dev/null +++ b/openapi_spec_validator/exceptions.py @@ -0,0 +1,6 @@ +class OpenAPISpecValidatorError(Exception): + pass + + +class ValidatorDetectError(OpenAPISpecValidatorError): + pass diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index ef5ee29..878b5c6 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -1,17 +1,41 @@ """OpenAPI spec validator shortcuts module.""" import urllib.parse +from jsonschema_spec.handlers import all_urls_handler -def validate_spec_factory(validator_callable): +from openapi_spec_validator.exceptions import ValidatorDetectError + + +def detect_validator(choices, spec): + for (key, value), validator in choices.items(): + if key in spec and spec[key].startswith(value): + return validator + raise ValidatorDetectError("Spec schema version not detected") + + +def validate_spec_detect_factory(choices): def validate(spec, spec_url=''): - return validator_callable(spec, spec_url=spec_url) + validator_class = detect_validator(choices, spec) + return validator_class.validate(spec, spec_url=spec_url) + return validate + + +def validate_spec_factory(validator_class): + def validate(spec, spec_url=''): + return validator_class.validate(spec, spec_url=spec_url) + return validate + + +def validate_spec_url_detect_factory(choices): + def validate(spec_url): + spec = all_urls_handler(spec_url) + validator_class = detect_validator(choices, spec) + return validator_class.validate(spec, spec_url=spec_url) return validate -def validate_spec_url_factory(validator_callable, handlers): - def validate(url): - result = urllib.parse.urlparse(url) - handler = handlers[result.scheme] - spec = handler(url) - return validator_callable(spec, spec_url=url) +def validate_spec_url_factory(validator_class): + def validate(spec_url): + spec = all_urls_handler(spec_url) + return validator_class.validate(spec, spec_url=spec_url) return validate diff --git a/tests/integration/data/empty.yaml b/tests/integration/data/empty.yaml new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/tests/integration/data/empty.yaml @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index d5aa085..2256ce5 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -1,16 +1,36 @@ import pytest -from jsonschema_spec.handlers import default_handlers from openapi_spec_validator import ( + validate_spec, validate_spec_url, validate_v2_spec, validate_v2_spec_url, validate_spec_factory, validate_spec_url_factory, openapi_v2_spec_validator, openapi_v30_spec_validator, validate_v30_spec_url, validate_v30_spec, ) +from openapi_spec_validator.exceptions import ValidatorDetectError from openapi_spec_validator.validation.exceptions import OpenAPIValidationError -class TestLocalOpenAPIv20Validator: +class TestValidateSpec: + + def test_spec_schema_version_not_detected(self): + spec = {} + + with pytest.raises(ValidatorDetectError): + validate_spec(spec) + + +class TestValidateSpecUrl: + + def test_spec_schema_version_not_detected(self, factory): + spec_path = "data/empty.yaml" + spec_url = factory.spec_file_url(spec_path) + + with pytest.raises(ValidatorDetectError): + validate_spec_url(spec_url) + + +class TestValidatev2Spec: LOCAL_SOURCE_DIRECTORY = "data/v2.0/" @@ -25,10 +45,11 @@ def test_valid(self, factory, spec_file): spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) + validate_spec(spec) validate_v2_spec(spec) validate_spec_factory( - openapi_v2_spec_validator.validate)(spec, spec_url) + openapi_v2_spec_validator)(spec, spec_url) @pytest.mark.parametrize('spec_file', [ "empty.yaml", @@ -41,7 +62,7 @@ def test_falied(self, factory, spec_file): validate_v2_spec(spec) -class TestLocalOpenAPIv30Validator: +class TestValidatev30Spec: LOCAL_SOURCE_DIRECTORY = "data/v3.0/" @@ -56,10 +77,11 @@ def test_valid(self, factory, spec_file): spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) + validate_spec(spec) validate_v30_spec(spec) validate_spec_factory( - openapi_v30_spec_validator.validate)(spec, spec_url) + openapi_v30_spec_validator)(spec, spec_url) @pytest.mark.parametrize('spec_file', [ "empty.yaml", @@ -72,7 +94,7 @@ def test_falied(self, factory, spec_file): validate_v30_spec(spec) -class TestRemoteValidateV20: +class TestValidatev2SpecUrl: REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" @@ -92,13 +114,14 @@ def remote_test_suite_file_path(self, test_file): def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) + validate_spec_url(spec_url) validate_v2_spec_url(spec_url) validate_spec_url_factory( - openapi_v2_spec_validator.validate, default_handlers)(spec_url) + openapi_v2_spec_validator)(spec_url) -class TestRemoteValidateV30: +class TestValidatev30SpecUrl: REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" @@ -118,7 +141,8 @@ def remote_test_suite_file_path(self, test_file): def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) + validate_spec_url(spec_url) validate_v30_spec_url(spec_url) validate_spec_url_factory( - openapi_v30_spec_validator.validate, default_handlers)(spec_url) + openapi_v30_spec_validator)(spec_url) diff --git a/tests/integration/test_errors.py b/tests/integration/validation/test_exceptions.py similarity index 100% rename from tests/integration/test_errors.py rename to tests/integration/validation/test_exceptions.py diff --git a/tests/integration/test_validators.py b/tests/integration/validation/test_validators.py similarity index 100% rename from tests/integration/test_validators.py rename to tests/integration/validation/test_validators.py From f457a9bf2a40e04e804fee1cd35c1fdf3fd8cc9a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 1 Sep 2022 12:35:27 +0100 Subject: [PATCH 122/371] Mypy static type check --- .github/workflows/python-test.yml | 3 + .pre-commit-config.yaml | 39 ++ MANIFEST.in | 1 + openapi_spec_validator/__init__.py | 56 ++- openapi_spec_validator/__main__.py | 57 +-- openapi_spec_validator/py.typed | 0 openapi_spec_validator/readers.py | 25 +- openapi_spec_validator/schemas/__init__.py | 6 +- openapi_spec_validator/schemas/utils.py | 11 +- openapi_spec_validator/shortcuts.py | 41 +- openapi_spec_validator/validation/__init__.py | 23 +- .../validation/decorators.py | 18 +- .../validation/exceptions.py | 2 +- .../validation/validators.py | 193 +++++---- poetry.lock | 127 +++++- pyproject.toml | 12 + tests/integration/conftest.py | 4 +- tests/integration/test_main.py | 70 ++-- tests/integration/test_shortcuts.py | 117 +++--- .../integration/validation/test_exceptions.py | 393 +++++++++--------- .../integration/validation/test_validators.py | 113 ++--- 21 files changed, 800 insertions(+), 511 deletions(-) create mode 100644 .pre-commit-config.yaml create mode 100644 openapi_spec_validator/py.typed diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index d511ca9..94eb53f 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -57,5 +57,8 @@ jobs: PYTEST_ADDOPTS: "--color=yes" run: poetry run pytest + - name: Static type check + run: poetry run mypy + - name: Upload coverage uses: codecov/codecov-action@v1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..2068ea6 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,39 @@ +--- +default_stages: [commit, push] +default_language_version: + # force all unspecified python hooks to run python3 + python: python3 +minimum_pre_commit_version: "1.20.0" +repos: + - repo: meta + hooks: + - id: check-hooks-apply + + - repo: https://github.com/asottile/pyupgrade + rev: v2.19.0 + hooks: + - id: pyupgrade + args: ["--py36-plus"] + + - repo: local + hooks: + - id: flynt + name: Convert to f-strings with flynt + entry: flynt + language: python + additional_dependencies: ['flynt==0.76'] + + - id: black + name: black + entry: black + language: system + require_serial: true + types: [python] + + - id: isort + name: isort + entry: isort + args: ['--filter-files'] + language: system + require_serial: true + types: [python] diff --git a/MANIFEST.in b/MANIFEST.in index 33b678f..14f5ea3 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,6 @@ include README.md include requirements.txt include requirements_dev.txt +include openapi_spec_validator/py.typed include openapi_spec_validator/resources/schemas/*/* include LICENSE diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index b104f5f..23b8d36 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,62 +1,60 @@ -# -*- coding: utf-8 -*- from jsonschema_spec.handlers import default_handlers from openapi_spec_validator.shortcuts import validate_spec_detect_factory -from openapi_spec_validator.shortcuts import validate_spec_url_detect_factory from openapi_spec_validator.shortcuts import validate_spec_factory +from openapi_spec_validator.shortcuts import validate_spec_url_detect_factory from openapi_spec_validator.shortcuts import validate_spec_url_factory from openapi_spec_validator.validation import openapi_v2_spec_validator from openapi_spec_validator.validation import openapi_v3_spec_validator from openapi_spec_validator.validation import openapi_v30_spec_validator from openapi_spec_validator.validation import openapi_v31_spec_validator -__author__ = 'Artur Maciag' -__email__ = 'maciag.artur@gmail.com' -__version__ = '0.5.0a3' -__url__ = 'https://github.com/p1c2u/openapi-spec-validator' -__license__ = 'Apache License, Version 2.0' +__author__ = "Artur Maciag" +__email__ = "maciag.artur@gmail.com" +__version__ = "0.5.0a3" +__url__ = "https://github.com/p1c2u/openapi-spec-validator" +__license__ = "Apache License, Version 2.0" __all__ = [ - 'openapi_v2_spec_validator', - 'openapi_v3_spec_validator', - 'openapi_v30_spec_validator', - 'openapi_v31_spec_validator', - 'validate_v2_spec', - 'validate_v3_spec', - 'validate_v30_spec', - 'validate_v31_spec', - 'validate_spec', - 'validate_v2_spec_url', - 'validate_v3_spec_url', - 'validate_v30_spec_url', - 'validate_v31_spec_url', - 'validate_spec_url', + "openapi_v2_spec_validator", + "openapi_v3_spec_validator", + "openapi_v30_spec_validator", + "openapi_v31_spec_validator", + "validate_v2_spec", + "validate_v3_spec", + "validate_v30_spec", + "validate_v31_spec", + "validate_spec", + "validate_v2_spec_url", + "validate_v3_spec_url", + "validate_v30_spec_url", + "validate_v31_spec_url", + "validate_spec_url", ] # shortcuts -validate_spec = validate_spec_detect_factory({ +validate_spec = validate_spec_detect_factory( + { ("swagger", "2.0"): openapi_v2_spec_validator, ("openapi", "3.0"): openapi_v30_spec_validator, ("openapi", "3.1"): openapi_v31_spec_validator, }, ) -validate_spec_url = validate_spec_url_detect_factory({ +validate_spec_url = validate_spec_url_detect_factory( + { ("swagger", "2.0"): openapi_v2_spec_validator, ("openapi", "3.0"): openapi_v30_spec_validator, ("openapi", "3.1"): openapi_v31_spec_validator, }, ) validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator) -validate_v2_spec_url = validate_spec_url_factory( - openapi_v2_spec_validator) +validate_v2_spec_url = validate_spec_url_factory(openapi_v2_spec_validator) validate_v30_spec = validate_spec_factory(openapi_v30_spec_validator) -validate_v30_spec_url = validate_spec_url_factory( - openapi_v30_spec_validator) +validate_v30_spec_url = validate_spec_url_factory(openapi_v30_spec_validator) validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator) -validate_v31_spec_url = validate_spec_url_factory( - openapi_v31_spec_validator) +validate_v31_spec_url = validate_spec_url_factory(openapi_v31_spec_validator) # aliases to the latest v3 version validate_v3_spec = validate_v31_spec diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 0fa2cc5..f534268 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -1,25 +1,26 @@ +from argparse import ArgumentParser import logging -import argparse import sys +from typing import Optional +from typing import Sequence from jsonschema.exceptions import best_match +from jsonschema.exceptions import ValidationError -from openapi_spec_validator import ( - openapi_v2_spec_validator, - openapi_v30_spec_validator, - openapi_v31_spec_validator, -) -from openapi_spec_validator.validation.exceptions import ValidationError -from openapi_spec_validator.readers import read_from_stdin, read_from_filename +from openapi_spec_validator import openapi_v2_spec_validator +from openapi_spec_validator import openapi_v30_spec_validator +from openapi_spec_validator import openapi_v31_spec_validator +from openapi_spec_validator.readers import read_from_filename +from openapi_spec_validator.readers import read_from_stdin logger = logging.getLogger(__name__) logging.basicConfig( - format='%(asctime)s %(levelname)s %(name)s %(message)s', - level=logging.WARNING + format="%(asctime)s %(levelname)s %(name)s %(message)s", + level=logging.WARNING, ) -def print_validationerror(exc, errors="best-match"): +def print_validationerror(exc: ValidationError, errors: str = "best-match") -> None: print("# Validation Error\n") print(exc) if exc.cause: @@ -35,14 +36,14 @@ def print_validationerror(exc, errors="best-match"): print("## " + str(best_match(exc.context))) if len(exc.context) > 1: print( - "\n({} more subschemas errors,".format(len(exc.context) - 1), + f"\n({len(exc.context) - 1} more subschemas errors,", "use --errors=all to see them.)", ) -def main(args=None): - parser = argparse.ArgumentParser() - parser.add_argument('filename', help="Absolute or relative path to file") +def main(args: Optional[Sequence[str]] = None) -> None: + parser = ArgumentParser() + parser.add_argument("filename", help="Absolute or relative path to file") parser.add_argument( "--errors", choices=("best-match", "all"), @@ -51,46 +52,46 @@ def main(args=None): """use "all" to get all subschema errors.""", ) parser.add_argument( - '--schema', + "--schema", help="OpenAPI schema (default: 3.1.0)", type=str, - choices=['2.0', '3.0.0', '3.1.0'], - default='3.1.0' + choices=["2.0", "3.0.0", "3.1.0"], + default="3.1.0", ) - args = parser.parse_args(args) + args_parsed = parser.parse_args(args) # choose source reader = read_from_filename - if args.filename in ['-', '/-']: + if args_parsed.filename in ["-", "/-"]: reader = read_from_stdin # read source try: - spec, spec_url = reader(args.filename) + spec, spec_url = reader(args_parsed.filename) except Exception as exc: print(exc) sys.exit(1) # choose the validator validators = { - '2.0': openapi_v2_spec_validator, - '3.0.0': openapi_v30_spec_validator, - '3.1.0': openapi_v31_spec_validator, + "2.0": openapi_v2_spec_validator, + "3.0.0": openapi_v30_spec_validator, + "3.1.0": openapi_v31_spec_validator, } - validator = validators[args.schema] + validator = validators[args_parsed.schema] # validate try: validator.validate(spec, spec_url=spec_url) except ValidationError as exc: - print_validationerror(exc, args.errors) + print_validationerror(exc, args_parsed.errors) sys.exit(1) except Exception as exc: print(exc) sys.exit(2) else: - print('OK') + print("OK") -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/openapi_spec_validator/py.typed b/openapi_spec_validator/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index 2fc3ab9..d46c3aa 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -1,18 +1,23 @@ -import os -import pathlib +from os import path +from pathlib import Path import sys +from typing import Any +from typing import Hashable +from typing import Mapping +from typing import Tuple -from jsonschema_spec.handlers import file_handler, all_urls_handler +from jsonschema_spec.handlers import all_urls_handler +from jsonschema_spec.handlers import file_handler -def read_from_stdin(filename): - return file_handler(sys.stdin), '' +def read_from_stdin(filename: str) -> Tuple[Mapping[Hashable, Any], str]: + return file_handler(sys.stdin), "" # type: ignore -def read_from_filename(filename): - if not os.path.isfile(filename): - raise IOError("No such file: {0}".format(filename)) +def read_from_filename(filename: str) -> Tuple[Mapping[Hashable, Any], str]: + if not path.isfile(filename): + raise OSError(f"No such file: {filename}") - filename = os.path.abspath(filename) - uri = pathlib.Path(filename).as_uri() + filename = path.abspath(filename) + uri = Path(filename).as_uri() return all_urls_handler(uri), uri diff --git a/openapi_spec_validator/schemas/__init__.py b/openapi_spec_validator/schemas/__init__.py index 8858b78..6c72b45 100644 --- a/openapi_spec_validator/schemas/__init__.py +++ b/openapi_spec_validator/schemas/__init__.py @@ -3,9 +3,9 @@ __all__ = ["schema_v2", "schema_v3", "schema_v30", "schema_v31"] -schema_v2, _ = get_schema('2.0') -schema_v30, _ = get_schema('3.0') -schema_v31, _ = get_schema('3.1') +schema_v2, _ = get_schema("2.0") +schema_v30, _ = get_schema("3.0") +schema_v31, _ = get_schema("3.1") # alias to the latest v3 version schema_v3 = schema_v31 diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index d7666de..e101f07 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -1,14 +1,17 @@ """OpenAIP spec validator schemas utils module.""" from os import path +from typing import Any +from typing import Hashable +from typing import Mapping +from typing import Tuple import importlib_resources - from jsonschema_spec.readers import FilePathReader -def get_schema(version): - schema_path = 'resources/schemas/v{0}/schema.json'.format(version) - ref = importlib_resources.files('openapi_spec_validator') / schema_path +def get_schema(version: str) -> Tuple[Mapping[Hashable, Any], str]: + schema_path = f"resources/schemas/v{version}/schema.json" + ref = importlib_resources.files("openapi_spec_validator") / schema_path with importlib_resources.as_file(ref) as resource_path: schema_path_full = path.join(path.dirname(__file__), resource_path) return FilePathReader(schema_path_full).read() diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 878b5c6..acca20b 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -1,41 +1,50 @@ """OpenAPI spec validator shortcuts module.""" -import urllib.parse +from typing import Any +from typing import Callable +from typing import Hashable +from typing import Mapping +from typing import Tuple from jsonschema_spec.handlers import all_urls_handler from openapi_spec_validator.exceptions import ValidatorDetectError +from openapi_spec_validator.validation.validators import SpecValidator -def detect_validator(choices, spec): +def detect_validator(choices: Mapping[Tuple[str, str], SpecValidator], spec: Mapping[Hashable, Any]) -> SpecValidator: for (key, value), validator in choices.items(): if key in spec and spec[key].startswith(value): return validator raise ValidatorDetectError("Spec schema version not detected") -def validate_spec_detect_factory(choices): - def validate(spec, spec_url=''): - validator_class = detect_validator(choices, spec) - return validator_class.validate(spec, spec_url=spec_url) +def validate_spec_detect_factory(choices: Mapping[Tuple[str, str], SpecValidator]) -> Callable[[Mapping[Hashable, Any], str], None]: + def validate(spec: Mapping[Hashable, Any], spec_url: str = "") -> None: + validator = detect_validator(choices, spec) + return validator.validate(spec, spec_url=spec_url) + return validate -def validate_spec_factory(validator_class): - def validate(spec, spec_url=''): - return validator_class.validate(spec, spec_url=spec_url) +def validate_spec_factory(validator: SpecValidator) -> Callable[[Mapping[Hashable, Any], str], None]: + def validate(spec: Mapping[Hashable, Any], spec_url: str = "") -> None: + return validator.validate(spec, spec_url=spec_url) + return validate -def validate_spec_url_detect_factory(choices): - def validate(spec_url): +def validate_spec_url_detect_factory(choices: Mapping[Tuple[str, str], SpecValidator]) -> Callable[[str], None]: + def validate(spec_url: str) -> None: spec = all_urls_handler(spec_url) - validator_class = detect_validator(choices, spec) - return validator_class.validate(spec, spec_url=spec_url) + validator = detect_validator(choices, spec) + return validator.validate(spec, spec_url=spec_url) + return validate -def validate_spec_url_factory(validator_class): - def validate(spec_url): +def validate_spec_url_factory(validator: SpecValidator) -> Callable[[str], None]: + def validate(spec_url: str) -> None: spec = all_urls_handler(spec_url) - return validator_class.validate(spec, spec_url=spec_url) + return validator.validate(spec, spec_url=spec_url) + return validate diff --git a/openapi_spec_validator/validation/__init__.py b/openapi_spec_validator/validation/__init__.py index 13bc218..28ea552 100644 --- a/openapi_spec_validator/validation/__init__.py +++ b/openapi_spec_validator/validation/__init__.py @@ -1,6 +1,5 @@ -# -*- coding: utf-8 -*- -from jsonschema.validators import Draft202012Validator from jsonschema.validators import Draft4Validator +from jsonschema.validators import Draft202012Validator from jsonschema_spec.handlers import default_handlers from openapi_schema_validator import oas30_format_checker from openapi_schema_validator import oas31_format_checker @@ -13,30 +12,36 @@ from openapi_spec_validator.validation.validators import SpecValidator __all__ = [ - 'openapi_v2_spec_validator', - 'openapi_v3_spec_validator', - 'openapi_v30_spec_validator', - 'openapi_v31_spec_validator', + "openapi_v2_spec_validator", + "openapi_v3_spec_validator", + "openapi_v30_spec_validator", + "openapi_v31_spec_validator", ] # v2.0 spec openapi_v2_schema_validator = Draft4Validator(schema_v2) openapi_v2_spec_validator = SpecValidator( - openapi_v2_schema_validator, OAS30Validator, oas30_format_checker, + openapi_v2_schema_validator, + OAS30Validator, + oas30_format_checker, resolver_handlers=default_handlers, ) # v3.0 spec openapi_v30_schema_validator = Draft4Validator(schema_v30) openapi_v30_spec_validator = SpecValidator( - openapi_v30_schema_validator, OAS30Validator, oas30_format_checker, + openapi_v30_schema_validator, + OAS30Validator, + oas30_format_checker, resolver_handlers=default_handlers, ) # v3.1 spec openapi_v31_schema_validator = Draft202012Validator(schema_v31) openapi_v31_spec_validator = SpecValidator( - openapi_v31_schema_validator, OAS31Validator, oas31_format_checker, + openapi_v31_schema_validator, + OAS31Validator, + oas31_format_checker, resolver_handlers=default_handlers, ) diff --git a/openapi_spec_validator/validation/decorators.py b/openapi_spec_validator/validation/decorators.py index 3f4744a..988b3b8 100644 --- a/openapi_spec_validator/validation/decorators.py +++ b/openapi_spec_validator/validation/decorators.py @@ -1,18 +1,23 @@ """OpenAPI spec validator validation decorators module.""" -from functools import wraps import logging +from functools import wraps +from typing import Any +from typing import Callable +from typing import Iterator +from typing import Type -log = logging.getLogger(__name__) +from jsonschema.exceptions import ValidationError +log = logging.getLogger(__name__) -class ValidationErrorWrapper(object): - def __init__(self, error_class): +class ValidationErrorWrapper: + def __init__(self, error_class: Type[ValidationError]): self.error_class = error_class - def __call__(self, f): + def __call__(self, f: Callable[..., Any]) -> Callable[..., Any]: @wraps(f) - def wrapper(*args, **kwds): + def wrapper(*args: Any, **kwds: Any) -> Iterator[ValidationError]: errors = f(*args, **kwds) for err in errors: if not isinstance(err, self.error_class): @@ -20,4 +25,5 @@ def wrapper(*args, **kwds): yield self.error_class.create_from(err) else: yield err + return wrapper diff --git a/openapi_spec_validator/validation/exceptions.py b/openapi_spec_validator/validation/exceptions.py index bb44ce0..f081aa7 100644 --- a/openapi_spec_validator/validation/exceptions.py +++ b/openapi_spec_validator/validation/exceptions.py @@ -1,7 +1,7 @@ from jsonschema.exceptions import ValidationError -class OpenAPIValidationError(ValidationError): +class OpenAPIValidationError(ValidationError): # type: ignore pass diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index 5b3cde1..5e5238e 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -1,47 +1,78 @@ """OpenAPI spec validator validation validators module.""" import logging import string - +from typing import Any +from typing import Callable +from typing import Hashable +from typing import Iterator +from typing import List +from typing import Mapping +from typing import Optional +from typing import Type + +from jsonschema._format import FormatChecker +from jsonschema.exceptions import ValidationError +from jsonschema.protocols import Validator from jsonschema.validators import RefResolver from jsonschema_spec.accessors import SpecAccessor from jsonschema_spec.paths import Spec +from openapi_spec_validator.validation.decorators import ValidationErrorWrapper from openapi_spec_validator.validation.exceptions import ( - ParameterDuplicateError, ExtraParametersError, UnresolvableParameterError, - OpenAPIValidationError, DuplicateOperationIDError, + DuplicateOperationIDError, +) +from openapi_spec_validator.validation.exceptions import ExtraParametersError +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError +from openapi_spec_validator.validation.exceptions import ( + ParameterDuplicateError, +) +from openapi_spec_validator.validation.exceptions import ( + UnresolvableParameterError, ) -from openapi_spec_validator.validation.decorators import ValidationErrorWrapper log = logging.getLogger(__name__) wraps_errors = ValidationErrorWrapper(OpenAPIValidationError) -def is_ref(spec): - return isinstance(spec, dict) and '$ref' in spec +def is_ref(spec: Any) -> bool: + return isinstance(spec, dict) and "$ref" in spec -class SpecValidator(object): +class SpecValidator: OPERATIONS = [ - 'get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace', + "get", + "put", + "post", + "delete", + "options", + "head", + "patch", + "trace", ] - def __init__(self, schema_validator, value_validator_class, value_validator_format_checker, resolver_handlers=None): + def __init__( + self, + schema_validator: Validator, + value_validator_class: Type[Validator], + value_validator_format_checker: FormatChecker, + resolver_handlers: Optional[Mapping[str, Callable[[str], Any]]] = None, + ): self.schema_validator = schema_validator self.value_validator_class = value_validator_class self.value_validator_format_checker = value_validator_format_checker self.resolver_handlers = resolver_handlers - self.operation_ids_registry = None + self.operation_ids_registry: Optional[List[str]] = None self.resolver = None - def validate(self, spec, spec_url=''): - for err in self.iter_errors(spec, spec_url=spec_url): + def validate(self, spec_dict: Mapping[Hashable, Any], spec_url: str = "") -> None: + for err in self.iter_errors(spec_dict, spec_url=spec_url): raise err @wraps_errors - def iter_errors(self, spec_dict, spec_url=''): + def iter_errors(self, spec_dict: Mapping[Hashable, Any], spec_url: str = "") -> Iterator[ValidationError]: self.operation_ids_registry = [] self.resolver = self._get_resolver(spec_url, spec_dict) @@ -49,95 +80,103 @@ def iter_errors(self, spec_dict, spec_url=''): accessor = SpecAccessor(spec_dict, self.resolver) spec = Spec(accessor) - paths = spec.get('paths', {}) - yield from self._iter_paths_errors(paths) + if "paths" in spec: + paths = spec / "paths" + yield from self._iter_paths_errors(paths) - components = spec.get('components', {}) - yield from self._iter_components_errors(components) + if "components" in spec: + components = spec / "components" + yield from self._iter_components_errors(components) - def _get_resolver(self, base_uri, referrer): - return RefResolver( - base_uri, referrer, handlers=self.resolver_handlers) + def _get_resolver(self, base_uri: str, referrer: Mapping[Hashable, Any]) -> RefResolver: + return RefResolver(base_uri, referrer, handlers=self.resolver_handlers) - def _iter_paths_errors(self, paths): + def _iter_paths_errors(self, paths: Spec) -> Iterator[ValidationError]: for url, path_item in paths.items(): yield from self._iter_path_errors(url, path_item) - def _iter_path_errors(self, url, path_item): - yield from self._iter_path_item_errors(url, path_item) - - def _iter_path_item_errors(self, url, path_item): - parameters = path_item.get('parameters', []) - yield from self._iter_parameters_errors(parameters) + def _iter_path_errors(self, url: str, path_item: Spec) -> Iterator[ValidationError]: + parameters = None + if "parameters" in path_item: + parameters = path_item / "parameters" + yield from self._iter_parameters_errors(parameters) for field_name, operation in path_item.items(): if field_name not in self.OPERATIONS: continue yield from self._iter_operation_errors( - url, field_name, operation, parameters) + url, field_name, operation, parameters + ) - def _iter_operation_errors(self, url, name, operation, path_parameters): - path_parameters = path_parameters or [] + def _iter_operation_errors(self, url: str, name: str, operation: Spec, path_parameters: Optional[Spec]) -> Iterator[ValidationError]: + assert self.operation_ids_registry is not None - operation_id = operation.getkey('operationId') - if operation_id is not None and operation_id in self.operation_ids_registry: + operation_id = operation.getkey("operationId") + if ( + operation_id is not None + and operation_id in self.operation_ids_registry + ): yield DuplicateOperationIDError( - "Operation ID '{0}' for '{1}' in '{2}' is not unique".format( - operation_id, name, url) + f"Operation ID '{operation_id}' for '{name}' in '{url}' is not unique" ) self.operation_ids_registry.append(operation_id) - parameters = operation.get('parameters', []) - yield from self._iter_parameters_errors(parameters) + names = [] + + parameters = None + if "parameters" in operation: + parameters = operation / "parameters" + yield from self._iter_parameters_errors(parameters) + names += list(self._get_path_param_names(parameters)) + + if path_parameters is not None: + names += list(self._get_path_param_names(path_parameters)) - all_params = list(set( - list(self._get_path_param_names(path_parameters)) + - list(self._get_path_param_names(parameters)) - )) + all_params = list(set(names)) for path in self._get_path_params_from_url(url): if path not in all_params: yield UnresolvableParameterError( - "Path parameter '{0}' for '{1}' operation in '{2}' " + "Path parameter '{}' for '{}' operation in '{}' " "was not resolved".format(path, name, url) ) return - def _get_path_param_names(self, params): + def _get_path_param_names(self, params: Spec) -> Iterator[str]: for param in params: - if param['in'] == 'path': - yield param['name'] + if param["in"] == "path": + yield param["name"] - def _get_path_params_from_url(self, url): + def _get_path_params_from_url(self, url: str) -> Iterator[str]: formatter = string.Formatter() path_params = [item[1] for item in formatter.parse(url)] return filter(None, path_params) - def _iter_parameters_errors(self, parameters): + def _iter_parameters_errors(self, parameters: Spec) -> Iterator[ValidationError]: seen = set() for parameter in parameters: yield from self._iter_parameter_errors(parameter) - key = (parameter['name'], parameter['in']) + key = (parameter["name"], parameter["in"]) if key in seen: yield ParameterDuplicateError( - "Duplicate parameter `{0}`".format(parameter['name']) + f"Duplicate parameter `{parameter['name']}`" ) seen.add(key) - def _iter_parameter_errors(self, parameter): - if 'schema' in parameter: - schema = parameter / 'schema' + def _iter_parameter_errors(self, parameter: Spec) -> Iterator[ValidationError]: + if "schema" in parameter: + schema = parameter / "schema" yield from self._iter_schema_errors(schema) - if 'default' in parameter: + if "default" in parameter: # only possible in swagger 2.0 - default = parameter.getkey('default') + default = parameter.getkey("default") if default is not None: yield from self._iter_value_errors(parameter, default) - def _iter_value_errors(self, schema, value): + def _iter_value_errors(self, schema: Spec, value: Any) -> Iterator[ValidationError]: with schema.open() as content: validator = self.value_validator_class( content, @@ -146,23 +185,25 @@ def _iter_value_errors(self, schema, value): ) yield from validator.iter_errors(value) - def _iter_schema_errors(self, schema, require_properties=True): + def _iter_schema_errors(self, schema: Spec, require_properties: bool = True) -> Iterator[ValidationError]: if not hasattr(schema.content(), "__getitem__"): return nested_properties = [] - if 'allOf' in schema: + if "allOf" in schema: all_of = schema / "allOf" for inner_schema in all_of: yield from self._iter_schema_errors( inner_schema, require_properties=False, ) - inner_schema_props = inner_schema.get("properties", {}) + if "properties" not in inner_schema: + continue + inner_schema_props = inner_schema / "properties" inner_schema_props_keys = inner_schema_props.keys() - nested_properties = nested_properties + list(inner_schema_props_keys) + nested_properties += list(inner_schema_props_keys) - if 'anyOf' in schema: + if "anyOf" in schema: any_of = schema / "anyOf" for inner_schema in any_of: yield from self._iter_schema_errors( @@ -170,52 +211,52 @@ def _iter_schema_errors(self, schema, require_properties=True): require_properties=False, ) - if 'oneOf' in schema: + if "oneOf" in schema: one_of = schema / "oneOf" for inner_schema in one_of: yield from self._iter_schema_errors( inner_schema, require_properties=False, ) - - if 'not' in schema: + + if "not" in schema: not_schema = schema / "not" yield from self._iter_schema_errors( not_schema, require_properties=False, ) - if 'items' in schema: + if "items" in schema: array_schema = schema / "items" yield from self._iter_schema_errors( array_schema, require_properties=False, ) - required = schema.getkey('required', []) - properties = schema.get('properties', {}).keys() - if 'allOf' in schema: - extra_properties = list(set(required) - set(properties) - set(nested_properties)) + required = schema.getkey("required", []) + properties = schema.get("properties", {}).keys() + if "allOf" in schema: + extra_properties = list( + set(required) - set(properties) - set(nested_properties) + ) else: extra_properties = list(set(required) - set(properties)) if extra_properties and require_properties: yield ExtraParametersError( - "Required list has not defined properties: {0}".format( - extra_properties - ) + f"Required list has not defined properties: {extra_properties}" ) - if 'default' in schema: - default = schema['default'] - nullable = schema.get('nullable', False) + if "default" in schema: + default = schema["default"] + nullable = schema.get("nullable", False) if default is not None or nullable is not True: yield from self._iter_value_errors(schema, default) - def _iter_components_errors(self, components): - schemas = components.get('schemas', {}) + def _iter_components_errors(self, components: Spec) -> Iterator[ValidationError]: + schemas = components.get("schemas", {}) yield from self._iter_schemas_errors(schemas) - def _iter_schemas_errors(self, schemas): + def _iter_schemas_errors(self, schemas: Spec) -> Iterator[ValidationError]: for _, schema in schemas.items(): yield from self._iter_schema_errors(schema) diff --git a/poetry.lock b/poetry.lock index ca0ce77..cd90f29 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,11 @@ +[[package]] +name = "astor" +version = "0.8.1" +description = "Read/rewrite/write Python ASTs" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + [[package]] name = "atomicwrites" version = "1.4.1" @@ -20,6 +28,29 @@ docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] +[[package]] +name = "black" +version = "22.8.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} +typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} +typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + [[package]] name = "certifi" version = "2022.6.15" @@ -47,6 +78,18 @@ python-versions = ">=3.6.0" [package.extras] unicode_backport = ["unicodedata2"] +[[package]] +name = "click" +version = "8.1.3" +description = "Composable command line interface toolkit" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} + [[package]] name = "colorama" version = "0.4.5" @@ -103,6 +146,18 @@ mccabe = ">=0.6.0,<0.7.0" pycodestyle = ">=2.7.0,<2.8.0" pyflakes = ">=2.3.0,<2.4.0" +[[package]] +name = "flynt" +version = "0.76" +description = "CLI tool to convert a python project's %-formatted strings to f-strings." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +astor = "*" +tomli = ">=1.1.0" + [[package]] name = "identify" version = "2.5.3" @@ -162,6 +217,20 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "isort" +version = "5.10.1" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.6.1,<4.0" + +[package.extras] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +requirements_deprecated_finder = ["pipreqs", "pip-api"] +colors = ["colorama (>=0.4.3,<0.5.0)"] +plugins = ["setuptools"] + [[package]] name = "jsonschema" version = "4.15.0" @@ -204,6 +273,33 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "mypy" +version = "0.971" +description = "Optional static typing for Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "nodeenv" version = "1.7.0" @@ -214,7 +310,7 @@ python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.* [[package]] name = "openapi-schema-validator" -version = "0.3.2" +version = "0.3.3" description = "OpenAPI schema validation for Python" category = "main" optional = false @@ -242,12 +338,20 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pathable" -version = "0.4.2" +version = "0.4.3" description = "Object-oriented paths" category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" +[[package]] +name = "pathspec" +version = "0.10.0" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=3.7" + [[package]] name = "pkgutil-resolve-name" version = "1.3.10" @@ -465,6 +569,14 @@ virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2, docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "psutil (>=5.6.1)", "pathlib2 (>=2.3.3)"] +[[package]] +name = "typed-ast" +version = "1.5.4" +description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "typing-extensions" version = "4.3.0" @@ -523,31 +635,39 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "ae65829150610ff64c89427f0659e03bac83c36b00e8d98216f6aeb2d691d3ee" +content-hash = "ef6f3182b5cadd5b5771b0d10e16211bd7724a06c09112e70ade2a20866ed339" [metadata.files] +astor = [] atomicwrites = [] attrs = [] +black = [] certifi = [] cfgv = [] charset-normalizer = [] +click = [] colorama = [] coverage = [] distlib = [] filelock = [] flake8 = [] +flynt = [] identify = [] idna = [] importlib-metadata = [] importlib-resources = [] iniconfig = [] +isort = [] jsonschema = [] jsonschema-spec = [] mccabe = [] +mypy = [] +mypy-extensions = [] nodeenv = [] openapi-schema-validator = [] packaging = [] pathable = [] +pathspec = [] pkgutil-resolve-name = [] platformdirs = [] pluggy = [] @@ -566,6 +686,7 @@ six = [] toml = [] tomli = [] tox = [] +typed-ast = [] typing-extensions = [] urllib3 = [] virtualenv = [] diff --git a/pyproject.toml b/pyproject.toml index d17b4c8..8216ca2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,6 +9,14 @@ source =["openapi_spec_validator"] [tool.coverage.xml] output = "reports/coverage.xml" +[tool.mypy] +files = "openapi_spec_validator" +strict = true + +[[tool.mypy.overrides]] +module = "jsonschema.*" +ignore_missing_imports = true + [tool.poetry] name = "openapi-spec-validator" version = "0.5.0a3" @@ -50,6 +58,10 @@ pytest = "^6.2.5" pytest-flake8 = "=1.0.7" pytest-cov = "^3.0.0" tox = "*" +mypy = "^0.971" +isort = "^5.10.1" +black = "^22.8.0" +flynt = "^0.76" [tool.poetry.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index daf3661..2657e76 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -2,16 +2,16 @@ from pathlib import PurePath from urllib.parse import urlunparse +import pytest from jsonschema_spec.handlers.file import FilePathHandler from jsonschema_spec.handlers.urllib import UrllibHandler -import pytest from openapi_spec_validator import openapi_v2_spec_validator from openapi_spec_validator import openapi_v30_spec_validator from openapi_spec_validator import openapi_v31_spec_validator -def spec_file_url(spec_file, schema='file'): +def spec_file_url(spec_file, schema="file"): directory = path.abspath(path.dirname(__file__)) full_path = path.join(directory, spec_file) return urlunparse((schema, None, full_path, None, None, None)) diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index a99f4f7..1879bda 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -1,43 +1,52 @@ -import pytest from io import StringIO +from unittest import mock -from openapi_spec_validator.__main__ import main +import pytest -from unittest import mock +from openapi_spec_validator.__main__ import main def test_schema_default(): """Test default schema is 3.1.0""" - testargs = ['./tests/integration/data/v3.1/petstore.yaml'] + testargs = ["./tests/integration/data/v3.1/petstore.yaml"] main(testargs) def test_schema_v31(): """No errors when calling proper v3.1 file.""" - testargs = ['--schema', '3.1.0', - './tests/integration/data/v3.1/petstore.yaml'] + testargs = [ + "--schema", + "3.1.0", + "./tests/integration/data/v3.1/petstore.yaml", + ] main(testargs) def test_schema_v30(): """No errors when calling proper v3.0 file.""" - testargs = ['--schema', '3.0.0', - './tests/integration/data/v3.0/petstore.yaml'] + testargs = [ + "--schema", + "3.0.0", + "./tests/integration/data/v3.0/petstore.yaml", + ] main(testargs) def test_schema_v2(): """No errors when calling with proper v2 file.""" - testargs = ['--schema', '2.0', - './tests/integration/data/v2.0/petstore.yaml'] + testargs = [ + "--schema", + "2.0", + "./tests/integration/data/v2.0/petstore.yaml", + ] main(testargs) def test_errors_on_missing_description_best(capsys): """An error is obviously printed given an empty schema.""" testargs = [ - './tests/integration/data/v3.0/missing-description.yaml', - '--schema=3.0.0' + "./tests/integration/data/v3.0/missing-description.yaml", + "--schema=3.0.0", ] with pytest.raises(SystemExit): main(testargs) @@ -45,7 +54,7 @@ def test_errors_on_missing_description_best(capsys): assert "Failed validating" in out assert "'description' is a required property" in out assert "'$ref' is a required property" not in out - assert '1 more subschemas errors' in out + assert "1 more subschemas errors" in out def test_errors_on_missing_description_full(capsys): @@ -61,51 +70,60 @@ def test_errors_on_missing_description_full(capsys): assert "Failed validating" in out assert "'description' is a required property" in out assert "'$ref' is a required property" in out - assert '1 more subschema error' not in out + assert "1 more subschema error" not in out def test_schema_unknown(): """Errors on running with unknown schema.""" - testargs = ['--schema', 'x.x', - './tests/integration/data/v2.0/petstore.yaml'] + testargs = [ + "--schema", + "x.x", + "./tests/integration/data/v2.0/petstore.yaml", + ] with pytest.raises(SystemExit): main(testargs) def test_validation_error(): """SystemExit on running with ValidationError.""" - testargs = ['--schema', '3.0.0', - './tests/integration/data/v2.0/petstore.yaml'] + testargs = [ + "--schema", + "3.0.0", + "./tests/integration/data/v2.0/petstore.yaml", + ] with pytest.raises(SystemExit): main(testargs) @mock.patch( - 'openapi_spec_validator.__main__.openapi_v30_spec_validator.validate', + "openapi_spec_validator.__main__.openapi_v30_spec_validator.validate", side_effect=Exception, ) def test_unknown_error(m_validate): """SystemExit on running with unknown error.""" - testargs = ['--schema', '3.0.0', - './tests/integration/data/v2.0/petstore.yaml'] + testargs = [ + "--schema", + "3.0.0", + "./tests/integration/data/v2.0/petstore.yaml", + ] with pytest.raises(SystemExit): main(testargs) def test_nonexisting_file(): """Calling with non-existing file should sys.exit.""" - testargs = ['i_dont_exist.yaml'] + testargs = ["i_dont_exist.yaml"] with pytest.raises(SystemExit): main(testargs) def test_schema_stdin(): """Test schema from STDIN""" - spes_path = './tests/integration/data/v3.0/petstore.yaml' - with open(spes_path, 'r') as spec_file: + spes_path = "./tests/integration/data/v3.0/petstore.yaml" + with open(spes_path) as spec_file: spec_lines = spec_file.readlines() spec_io = StringIO("".join(spec_lines)) - testargs = ['--schema', '3.0.0', '-'] - with mock.patch('openapi_spec_validator.__main__.sys.stdin', spec_io): + testargs = ["--schema", "3.0.0", "-"] + with mock.patch("openapi_spec_validator.__main__.sys.stdin", spec_io): main(testargs) diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 2256ce5..ce97340 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -1,18 +1,20 @@ import pytest -from openapi_spec_validator import ( - validate_spec, validate_spec_url, - validate_v2_spec, validate_v2_spec_url, - validate_spec_factory, validate_spec_url_factory, - openapi_v2_spec_validator, openapi_v30_spec_validator, - validate_v30_spec_url, validate_v30_spec, -) +from openapi_spec_validator import openapi_v2_spec_validator +from openapi_spec_validator import openapi_v30_spec_validator +from openapi_spec_validator import validate_spec +from openapi_spec_validator import validate_spec_factory +from openapi_spec_validator import validate_spec_url +from openapi_spec_validator import validate_spec_url_factory +from openapi_spec_validator import validate_v2_spec +from openapi_spec_validator import validate_v2_spec_url +from openapi_spec_validator import validate_v30_spec +from openapi_spec_validator import validate_v30_spec_url from openapi_spec_validator.exceptions import ValidatorDetectError from openapi_spec_validator.validation.exceptions import OpenAPIValidationError class TestValidateSpec: - def test_spec_schema_version_not_detected(self): spec = {} @@ -21,7 +23,6 @@ def test_spec_schema_version_not_detected(self): class TestValidateSpecUrl: - def test_spec_schema_version_not_detected(self, factory): spec_path = "data/empty.yaml" spec_url = factory.spec_file_url(spec_path) @@ -35,11 +36,14 @@ class TestValidatev2Spec: LOCAL_SOURCE_DIRECTORY = "data/v2.0/" def local_test_suite_file_path(self, test_file): - return "{}{}".format(self.LOCAL_SOURCE_DIRECTORY, test_file) + return f"{self.LOCAL_SOURCE_DIRECTORY}{test_file}" - @pytest.mark.parametrize('spec_file', [ - "petstore.yaml", - ]) + @pytest.mark.parametrize( + "spec_file", + [ + "petstore.yaml", + ], + ) def test_valid(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) @@ -48,12 +52,14 @@ def test_valid(self, factory, spec_file): validate_spec(spec) validate_v2_spec(spec) - validate_spec_factory( - openapi_v2_spec_validator)(spec, spec_url) + validate_spec_factory(openapi_v2_spec_validator)(spec, spec_url) - @pytest.mark.parametrize('spec_file', [ - "empty.yaml", - ]) + @pytest.mark.parametrize( + "spec_file", + [ + "empty.yaml", + ], + ) def test_falied(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) @@ -67,11 +73,14 @@ class TestValidatev30Spec: LOCAL_SOURCE_DIRECTORY = "data/v3.0/" def local_test_suite_file_path(self, test_file): - return "{}{}".format(self.LOCAL_SOURCE_DIRECTORY, test_file) + return f"{self.LOCAL_SOURCE_DIRECTORY}{test_file}" - @pytest.mark.parametrize('spec_file', [ - "petstore.yaml", - ]) + @pytest.mark.parametrize( + "spec_file", + [ + "petstore.yaml", + ], + ) def test_valid(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) @@ -80,12 +89,14 @@ def test_valid(self, factory, spec_file): validate_spec(spec) validate_v30_spec(spec) - validate_spec_factory( - openapi_v30_spec_validator)(spec, spec_url) + validate_spec_factory(openapi_v30_spec_validator)(spec, spec_url) - @pytest.mark.parametrize('spec_file', [ - "empty.yaml", - ]) + @pytest.mark.parametrize( + "spec_file", + [ + "empty.yaml", + ], + ) def test_falied(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) @@ -101,24 +112,26 @@ class TestValidatev2SpecUrl: ) def remote_test_suite_file_path(self, test_file): - return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) - - @pytest.mark.parametrize('spec_file', [ - 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' - 'yaml/petstore.yaml', - 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' - 'yaml/api-with-examples.yaml', - 'f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/' - 'yaml/petstore-expanded.yaml', - ]) + return f"{self.REMOTE_SOURCE_URL}{test_file}" + + @pytest.mark.parametrize( + "spec_file", + [ + "f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/" + "yaml/petstore.yaml", + "f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/" + "yaml/api-with-examples.yaml", + "f25a1d44cff9669703257173e562376cc5bd0ec6/examples/v2.0/" + "yaml/petstore-expanded.yaml", + ], + ) def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) validate_spec_url(spec_url) validate_v2_spec_url(spec_url) - validate_spec_url_factory( - openapi_v2_spec_validator)(spec_url) + validate_spec_url_factory(openapi_v2_spec_validator)(spec_url) class TestValidatev30SpecUrl: @@ -128,21 +141,23 @@ class TestValidatev30SpecUrl: ) def remote_test_suite_file_path(self, test_file): - return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) - - @pytest.mark.parametrize('spec_file', [ - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'petstore.yaml', - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'api-with-examples.yaml', - '970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/' - 'api-with-examples.yaml' - ]) + return f"{self.REMOTE_SOURCE_URL}{test_file}" + + @pytest.mark.parametrize( + "spec_file", + [ + "f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/" + "petstore.yaml", + "f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/" + "api-with-examples.yaml", + "970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/" + "api-with-examples.yaml", + ], + ) def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) validate_spec_url(spec_url) validate_v30_spec_url(spec_url) - validate_spec_url_factory( - openapi_v30_spec_validator)(spec_url) + validate_spec_url_factory(openapi_v30_spec_validator)(spec_url) diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index 0841aa8..1b67570 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -1,11 +1,14 @@ from openapi_spec_validator.validation.exceptions import ( - ExtraParametersError, UnresolvableParameterError, OpenAPIValidationError, DuplicateOperationIDError, ) +from openapi_spec_validator.validation.exceptions import ExtraParametersError +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError +from openapi_spec_validator.validation.exceptions import ( + UnresolvableParameterError, +) -class TestSpecValidatorIterErrors(object): - +class TestSpecValidatorIterErrors: def test_empty(self, validator_v30): spec = {} @@ -21,9 +24,9 @@ def test_empty(self, validator_v30): def test_info_empty(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': {}, - 'paths': {}, + "openapi": "3.0.0", + "info": {}, + "paths": {}, } errors = validator_v30.iter_errors(spec) @@ -34,12 +37,12 @@ def test_info_empty(self, validator_v30): def test_minimalistic(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': {}, + "paths": {}, } errors = validator_v30.iter_errors(spec) @@ -49,28 +52,28 @@ def test_minimalistic(self, validator_v30): def test_same_parameters_names(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': { - '/test/{param1}': { - 'parameters': [ + "paths": { + "/test/{param1}": { + "parameters": [ { - 'name': 'param1', - 'in': 'query', - 'schema': { - 'type': 'integer', + "name": "param1", + "in": "query", + "schema": { + "type": "integer", }, }, { - 'name': 'param1', - 'in': 'path', - 'schema': { - 'type': 'integer', + "name": "param1", + "in": "path", + "schema": { + "type": "integer", }, - 'required': True, + "required": True, }, ], }, @@ -84,36 +87,36 @@ def test_same_parameters_names(self, validator_v30): def test_same_operation_ids(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': { - '/test': { - 'get': { - 'operationId': 'operation1', - 'responses': { - 'default': { - 'description': 'default response', + "paths": { + "/test": { + "get": { + "operationId": "operation1", + "responses": { + "default": { + "description": "default response", }, }, }, - 'post': { - 'operationId': 'operation1', - 'responses': { - 'default': { - 'description': 'default response', + "post": { + "operationId": "operation1", + "responses": { + "default": { + "description": "default response", }, }, }, }, - '/test2': { - 'get': { - 'operationId': 'operation1', - 'responses': { - 'default': { - 'description': 'default response', + "/test2": { + "get": { + "operationId": "operation1", + "responses": { + "default": { + "description": "default response", }, }, }, @@ -130,30 +133,26 @@ def test_same_operation_ids(self, validator_v30): def test_allow_allof_required_no_properties(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': {}, - 'components': { - 'schemas': { - 'Credit': { - 'type': 'object', - 'properties': { - 'clientId': {'type': 'string'}, - } + "paths": {}, + "components": { + "schemas": { + "Credit": { + "type": "object", + "properties": { + "clientId": {"type": "string"}, + }, }, - 'CreditCreate': { - 'allOf': [ - { - '$ref': '#/components/schemas/Credit' - }, - { - 'required': ['clientId'] - } + "CreditCreate": { + "allOf": [ + {"$ref": "#/components/schemas/Credit"}, + {"required": ["clientId"]}, ] - } + }, }, }, } @@ -162,46 +161,41 @@ def test_allow_allof_required_no_properties(self, validator_v30): errors_list = list(errors) assert errors_list == [] - def test_allow_allof_when_required_is_linked_to_the_parent_object(self, validator_v30): + def test_allow_allof_when_required_is_linked_to_the_parent_object( + self, validator_v30 + ): spec = { - 'openapi': '3.0.1', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.1", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': {}, - 'components': { - 'schemas': { - 'Address': { - 'type': 'object', - 'properties': { - 'SubdivisionCode': { - 'type': 'string', - 'description': 'State or region' + "paths": {}, + "components": { + "schemas": { + "Address": { + "type": "object", + "properties": { + "SubdivisionCode": { + "type": "string", + "description": "State or region", + }, + "Town": { + "type": "string", + "description": "Town or city", }, - 'Town': { - 'type': 'string', - 'description': 'Town or city' + "CountryCode": { + "type": "string", }, - 'CountryCode': { - 'type': 'string', - } - } + }, + }, + "AddressCreation": { + "required": ["CountryCode", "Town"], + "type": "object", + "allOf": [{"$ref": "#/components/schemas/Address"}], }, - 'AddressCreation': { - 'required': [ - 'CountryCode', - 'Town' - ], - 'type': 'object', - 'allOf': [ - { - '$ref': '#/components/schemas/Address' - } - ] - } } - } + }, } errors = validator_v30.iter_errors(spec) @@ -210,19 +204,19 @@ def test_allow_allof_when_required_is_linked_to_the_parent_object(self, validato def test_extra_parameters_in_required(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': {}, - 'components': { - 'schemas': { - 'testSchema': { - 'type': 'object', - 'required': [ - 'testparam1', - ] + "paths": {}, + "components": { + "schemas": { + "testSchema": { + "type": "object", + "required": [ + "testparam1", + ], } }, }, @@ -238,28 +232,28 @@ def test_extra_parameters_in_required(self, validator_v30): def test_undocumented_parameter(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': { - '/test/{param1}/{param2}': { - 'get': { - 'responses': { - 'default': { - 'description': 'default response', + "paths": { + "/test/{param1}/{param2}": { + "get": { + "responses": { + "default": { + "description": "default response", }, }, }, - 'parameters': [ + "parameters": [ { - 'name': 'param1', - 'in': 'path', - 'schema': { - 'type': 'integer', + "name": "param1", + "in": "path", + "schema": { + "type": "integer", }, - 'required': True, + "required": True, }, ], }, @@ -277,17 +271,17 @@ def test_undocumented_parameter(self, validator_v30): def test_default_value_wrong_type(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': {}, - 'components': { - 'schemas': { - 'test': { - 'type': 'integer', - 'default': 'invaldtype', + "paths": {}, + "components": { + "schemas": { + "test": { + "type": "integer", + "default": "invaldtype", }, }, }, @@ -304,29 +298,29 @@ def test_default_value_wrong_type(self, validator_v30): def test_parameter_default_value_wrong_type(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': { - '/test/{param1}': { - 'get': { - 'responses': { - 'default': { - 'description': 'default response', + "paths": { + "/test/{param1}": { + "get": { + "responses": { + "default": { + "description": "default response", }, }, }, - 'parameters': [ + "parameters": [ { - 'name': 'param1', - 'in': 'path', - 'schema': { - 'type': 'integer', - 'default': 'invaldtype', + "name": "param1", + "in": "path", + "schema": { + "type": "integer", + "default": "invaldtype", }, - 'required': True, + "required": True, }, ], }, @@ -342,29 +336,28 @@ def test_parameter_default_value_wrong_type(self, validator_v30): "'invaldtype' is not of type 'integer'" ) - def test_parameter_default_value_wrong_type_swagger(self, - validator_v2): + def test_parameter_default_value_wrong_type_swagger(self, validator_v2): spec = { - 'swagger': '2.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "swagger": "2.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': { - '/test/': { - 'get': { - 'responses': { - '200': { - 'description': 'OK', - 'schema': {'type': 'object'}, + "paths": { + "/test/": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": {"type": "object"}, }, }, - 'parameters': [ + "parameters": [ { - 'name': 'param1', - 'in': 'query', - 'type': 'integer', - 'default': 'invaldtype', + "name": "param1", + "in": "query", + "type": "integer", + "default": "invaldtype", }, ], }, @@ -383,38 +376,40 @@ def test_parameter_default_value_wrong_type_swagger(self, def test_parameter_default_value_with_reference(self, validator_v30): spec = { - 'openapi': '3.0.0', - 'info': { - 'title': 'Test Api', - 'version': '0.0.1', + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", }, - 'paths': { - '/test/': { - 'get': { - 'responses': { - 'default': { - 'description': 'default response', + "paths": { + "/test/": { + "get": { + "responses": { + "default": { + "description": "default response", }, }, - 'parameters': [ + "parameters": [ { - 'name': 'param1', - 'in': 'query', - 'schema': { - 'allOf': [{ - '$ref': '#/components/schemas/type', - }], - 'default': 1, + "name": "param1", + "in": "query", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/type", + } + ], + "default": 1, }, }, ], }, }, }, - 'components': { - 'schemas': { - 'type': { - 'type': 'integer', + "components": { + "schemas": { + "type": { + "type": "integer", } }, }, diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 4cee021..ca7264c 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -8,13 +8,16 @@ class TestLocalOpenAPIv30Validator: LOCAL_SOURCE_DIRECTORY = "data/v3.0/" def local_test_suite_file_path(self, test_file): - return "{}{}".format(self.LOCAL_SOURCE_DIRECTORY, test_file) - - @pytest.mark.parametrize('spec_file', [ - "petstore.yaml", - "petstore-separate/spec/openapi.yaml", - "parent-reference/openapi.yaml", - ]) + return f"{self.LOCAL_SOURCE_DIRECTORY}{test_file}" + + @pytest.mark.parametrize( + "spec_file", + [ + "petstore.yaml", + "petstore-separate/spec/openapi.yaml", + "parent-reference/openapi.yaml", + ], + ) def test_valid(self, factory, validator_v30, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) @@ -22,9 +25,12 @@ def test_valid(self, factory, validator_v30, spec_file): return validator_v30.validate(spec, spec_url=spec_url) - @pytest.mark.parametrize('spec_file', [ - "empty.yaml", - ]) + @pytest.mark.parametrize( + "spec_file", + [ + "empty.yaml", + ], + ) def test_falied(self, factory, validator_v30, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) @@ -41,16 +47,19 @@ class TestRemoteOpenAPIv30Validator: ) def remote_test_suite_file_path(self, test_file): - return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) - - @pytest.mark.parametrize('spec_file', [ - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'petstore.yaml', - 'f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/' - 'api-with-examples.yaml', - '970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/' - 'api-with-examples.yaml' - ]) + return f"{self.REMOTE_SOURCE_URL}{test_file}" + + @pytest.mark.parametrize( + "spec_file", + [ + "f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/" + "petstore.yaml", + "f75f8486a1aae1a7ceef92fbc63692cb2556c0cd/examples/v3.0/" + "api-with-examples.yaml", + "970566d5ca236a5ce1a02fb7d617fdbd07df88db/examples/v3.0/" + "api-with-examples.yaml", + ], + ) def test_valid(self, factory, validator_v30, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) spec = factory.spec_from_url(spec_url) @@ -60,45 +69,53 @@ def test_valid(self, factory, validator_v30, spec_file): class TestRemoteOpeAPIv31Validator: - REMOTE_SOURCE_URL = 'https://raw.githubusercontent.com/' \ - 'OAI/OpenAPI-Specification/' \ - 'd9ac75b00c8bf405c2c90cfa9f20370564371dec/' + REMOTE_SOURCE_URL = ( + "https://raw.githubusercontent.com/" + "OAI/OpenAPI-Specification/" + "d9ac75b00c8bf405c2c90cfa9f20370564371dec/" + ) def remote_test_suite_file_path(self, test_file): - return "{}{}".format(self.REMOTE_SOURCE_URL, test_file) - - @pytest.mark.parametrize('spec_file', [ - 'comp_pathitems.yaml', - 'info_summary.yaml', - 'license_identifier.yaml', - 'mega.yaml', - 'minimal_comp.yaml', - 'minimal_hooks.yaml', - 'minimal_paths.yaml', - 'path_no_response.yaml', - 'path_var_empty_pathitem.yaml', - 'schema.yaml', - 'servers.yaml', - 'valid_schema_types.yaml', - ]) + return f"{self.REMOTE_SOURCE_URL}{test_file}" + + @pytest.mark.parametrize( + "spec_file", + [ + "comp_pathitems.yaml", + "info_summary.yaml", + "license_identifier.yaml", + "mega.yaml", + "minimal_comp.yaml", + "minimal_hooks.yaml", + "minimal_paths.yaml", + "path_no_response.yaml", + "path_var_empty_pathitem.yaml", + "schema.yaml", + "servers.yaml", + "valid_schema_types.yaml", + ], + ) def test_valid(self, factory, validator_v31, spec_file): spec_url = self.remote_test_suite_file_path( - '{}{}'.format('tests/v3.1/pass/', spec_file) + f"tests/v3.1/pass/{spec_file}" ) spec = factory.spec_from_url(spec_url) return validator_v31.validate(spec, spec_url=spec_url) - @pytest.mark.parametrize('spec_file', [ - 'invalid_schema_types.yaml', - 'no_containers.yaml', - 'server_enum_empty.yaml', - 'servers.yaml', - 'unknown_container.yaml', - ]) + @pytest.mark.parametrize( + "spec_file", + [ + "invalid_schema_types.yaml", + "no_containers.yaml", + "server_enum_empty.yaml", + "servers.yaml", + "unknown_container.yaml", + ], + ) def test_failed(self, factory, validator_v31, spec_file): spec_url = self.remote_test_suite_file_path( - '{}{}'.format('tests/v3.1/fail/', spec_file) + f"tests/v3.1/fail/{spec_file}" ) spec = factory.spec_from_url(spec_url) From 621a6d23ec368b3ca4a94170492c6bf98cdfb93e Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 2 Sep 2022 07:41:38 +0100 Subject: [PATCH 123/371] tests mark network --- pyproject.toml | 3 +++ tests/integration/test_shortcuts.py | 12 +++++++----- tests/integration/validation/test_validators.py | 2 ++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8216ca2..d7c741e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,6 +76,9 @@ addopts = """ --cov-report=term-missing --cov-report=xml """ +markers = [ + "network: marks tests which do need network-enabled environment", +] [tool.black] line-length = 79 diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index ce97340..32767a6 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -22,7 +22,7 @@ def test_spec_schema_version_not_detected(self): validate_spec(spec) -class TestValidateSpecUrl: +class TestLocalValidateSpecUrl: def test_spec_schema_version_not_detected(self, factory): spec_path = "data/empty.yaml" spec_url = factory.spec_file_url(spec_path) @@ -31,7 +31,7 @@ def test_spec_schema_version_not_detected(self, factory): validate_spec_url(spec_url) -class TestValidatev2Spec: +class TestLiocalValidatev2Spec: LOCAL_SOURCE_DIRECTORY = "data/v2.0/" @@ -68,7 +68,7 @@ def test_falied(self, factory, spec_file): validate_v2_spec(spec) -class TestValidatev30Spec: +class TestLocalValidatev30Spec: LOCAL_SOURCE_DIRECTORY = "data/v3.0/" @@ -105,7 +105,8 @@ def test_falied(self, factory, spec_file): validate_v30_spec(spec) -class TestValidatev2SpecUrl: +@pytest.mark.network +class TestRemoteValidatev2SpecUrl: REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" @@ -134,7 +135,8 @@ def test_valid(self, spec_file): validate_spec_url_factory(openapi_v2_spec_validator)(spec_url) -class TestValidatev30SpecUrl: +@pytest.mark.network +class TestRemoteValidatev30SpecUrl: REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index ca7264c..21932db 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -40,6 +40,7 @@ def test_falied(self, factory, validator_v30, spec_file): validator_v30.validate(spec, spec_url=spec_url) +@pytest.mark.network class TestRemoteOpenAPIv30Validator: REMOTE_SOURCE_URL = ( @@ -67,6 +68,7 @@ def test_valid(self, factory, validator_v30, spec_file): return validator_v30.validate(spec, spec_url=spec_url) +@pytest.mark.network class TestRemoteOpeAPIv31Validator: REMOTE_SOURCE_URL = ( From 8f0370189d07b8d788720430afa040f10ef5fb41 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 2 Sep 2022 09:13:32 +0100 Subject: [PATCH 124/371] schemas and validators lazy loading proxy --- openapi_spec_validator/schemas/__init__.py | 16 +++++++++---- openapi_spec_validator/schemas/utils.py | 5 ++++ openapi_spec_validator/validation/__init__.py | 24 ++++++++++++++----- poetry.lock | 11 ++++++++- pyproject.toml | 5 ++++ 5 files changed, 50 insertions(+), 11 deletions(-) diff --git a/openapi_spec_validator/schemas/__init__.py b/openapi_spec_validator/schemas/__init__.py index 6c72b45..ec1b287 100644 --- a/openapi_spec_validator/schemas/__init__.py +++ b/openapi_spec_validator/schemas/__init__.py @@ -1,11 +1,19 @@ """OpenAIP spec validator schemas module.""" -from openapi_spec_validator.schemas.utils import get_schema +from functools import partial + +from lazy_object_proxy import Proxy + +from openapi_spec_validator.schemas.utils import get_schema_content __all__ = ["schema_v2", "schema_v3", "schema_v30", "schema_v31"] -schema_v2, _ = get_schema("2.0") -schema_v30, _ = get_schema("3.0") -schema_v31, _ = get_schema("3.1") +get_schema_content_v2 = partial(get_schema_content, "2.0") +get_schema_content_v30 = partial(get_schema_content, "3.0") +get_schema_content_v31 = partial(get_schema_content, "3.1") + +schema_v2 = Proxy(get_schema_content_v2) +schema_v30 = Proxy(get_schema_content_v30) +schema_v31 = Proxy(get_schema_content_v31) # alias to the latest v3 version schema_v3 = schema_v31 diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index e101f07..b9a5eaa 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -15,3 +15,8 @@ def get_schema(version: str) -> Tuple[Mapping[Hashable, Any], str]: with importlib_resources.as_file(ref) as resource_path: schema_path_full = path.join(path.dirname(__file__), resource_path) return FilePathReader(schema_path_full).read() + + +def get_schema_content(version: str) -> Mapping[Hashable, Any]: + content, _ = get_schema(version) + return content diff --git a/openapi_spec_validator/validation/__init__.py b/openapi_spec_validator/validation/__init__.py index 28ea552..c48e09c 100644 --- a/openapi_spec_validator/validation/__init__.py +++ b/openapi_spec_validator/validation/__init__.py @@ -1,6 +1,9 @@ +from functools import partial + from jsonschema.validators import Draft4Validator from jsonschema.validators import Draft202012Validator from jsonschema_spec.handlers import default_handlers +from lazy_object_proxy import Proxy from openapi_schema_validator import oas30_format_checker from openapi_schema_validator import oas31_format_checker from openapi_schema_validator.validators import OAS30Validator @@ -19,31 +22,40 @@ ] # v2.0 spec -openapi_v2_schema_validator = Draft4Validator(schema_v2) -openapi_v2_spec_validator = SpecValidator( +get_openapi_v2_schema_validator = partial(Draft4Validator, schema_v2) +openapi_v2_schema_validator = Proxy(get_openapi_v2_schema_validator) +get_openapi_v2_spec_validator = partial( + SpecValidator, openapi_v2_schema_validator, OAS30Validator, oas30_format_checker, resolver_handlers=default_handlers, ) +openapi_v2_spec_validator = Proxy(get_openapi_v2_spec_validator) # v3.0 spec -openapi_v30_schema_validator = Draft4Validator(schema_v30) -openapi_v30_spec_validator = SpecValidator( +get_openapi_v30_schema_validator = partial(Draft4Validator, schema_v30) +openapi_v30_schema_validator = Proxy(get_openapi_v30_schema_validator) +get_openapi_v30_spec_validator = partial( + SpecValidator, openapi_v30_schema_validator, OAS30Validator, oas30_format_checker, resolver_handlers=default_handlers, ) +openapi_v30_spec_validator = Proxy(get_openapi_v30_spec_validator) # v3.1 spec -openapi_v31_schema_validator = Draft202012Validator(schema_v31) -openapi_v31_spec_validator = SpecValidator( +get_openapi_v31_schema_validator = partial(Draft202012Validator, schema_v31) +openapi_v31_schema_validator = Proxy(get_openapi_v31_schema_validator) +get_openapi_v31_spec_validator = partial( + SpecValidator, openapi_v31_schema_validator, OAS31Validator, oas31_format_checker, resolver_handlers=default_handlers, ) +openapi_v31_spec_validator = Proxy(get_openapi_v31_spec_validator) # alias to the latest v3 version openapi_v3_spec_validator = openapi_v31_spec_validator diff --git a/poetry.lock b/poetry.lock index cd90f29..9b55987 100644 --- a/poetry.lock +++ b/poetry.lock @@ -265,6 +265,14 @@ pathable = ">=0.4.1,<0.5.0" PyYAML = ">=5.1" typing-extensions = ">=4.3.0,<5.0.0" +[[package]] +name = "lazy-object-proxy" +version = "1.7.1" +description = "A fast and thorough lazy object proxy." +category = "main" +optional = false +python-versions = ">=3.6" + [[package]] name = "mccabe" version = "0.6.1" @@ -635,7 +643,7 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "ef6f3182b5cadd5b5771b0d10e16211bd7724a06c09112e70ade2a20866ed339" +content-hash = "e362281cbb4462609d584ef83056e034f0d4b315dd362fbba396fd9a65899514" [metadata.files] astor = [] @@ -660,6 +668,7 @@ iniconfig = [] isort = [] jsonschema = [] jsonschema-spec = [] +lazy-object-proxy = [] mccabe = [] mypy = [] mypy-extensions = [] diff --git a/pyproject.toml b/pyproject.toml index d7c741e..a67125e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,10 @@ strict = true module = "jsonschema.*" ignore_missing_imports = true +[[tool.mypy.overrides]] +module = "lazy_object_proxy.*" +ignore_missing_imports = true + [tool.poetry] name = "openapi-spec-validator" version = "0.5.0a3" @@ -47,6 +51,7 @@ PyYAML = ">=5.1" requests = {version = "*", optional = true} importlib-resources = "^5.8.0" jsonschema-spec = "^0.1.1" +lazy-object-proxy = "^1.7.1" [tool.poetry.extras] dev = ["pre-commit"] From 7bd456dd13706019b86892c9895acc564cf13ecb Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 2 Sep 2022 10:25:19 +0100 Subject: [PATCH 125/371] cli detect spec version --- README.rst | 14 ++--- openapi_spec_validator/__init__.py | 20 ++----- openapi_spec_validator/__main__.py | 22 +++++--- openapi_spec_validator/exceptions.py | 4 -- openapi_spec_validator/readers.py | 2 +- openapi_spec_validator/shortcuts.py | 36 +++--------- openapi_spec_validator/validation/__init__.py | 11 ++++ .../validation/exceptions.py | 6 ++ .../validation/protocols.py | 34 +++++++++++ openapi_spec_validator/validation/proxies.py | 40 +++++++++++++ .../validation/validators.py | 56 ++++++++++++++----- tests/integration/test_main.py | 10 +++- tests/integration/test_shortcuts.py | 2 +- 13 files changed, 174 insertions(+), 83 deletions(-) create mode 100644 openapi_spec_validator/validation/protocols.py create mode 100644 openapi_spec_validator/validation/proxies.py diff --git a/README.rst b/README.rst index a2fb75c..f19134c 100644 --- a/README.rst +++ b/README.rst @@ -72,7 +72,7 @@ or more pythonic way: Examples ******** -By default, OpenAPI v3.1 syntax is expected. To validate an OpenAPI v3.1 spec: +By default, OpenAPI spec version is detected. To validate spec: .. code:: python @@ -92,9 +92,9 @@ By default, OpenAPI v3.1 syntax is expected. To validate an OpenAPI v3.1 spec: In order to explicitly validate a: -* Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec`` -* OpenAPI 3.0 spec file, import ``validate_v30_spec`` -* OpenAPI 3.1 spec file, import ``validate_v31_spec`` +* Swagger / OpenAPI 2.0 spec, import ``validate_v2_spec`` +* OpenAPI 3.0 spec, import ``validate_v30_spec`` +* OpenAPI 3.1 spec, import ``validate_v31_spec`` instead of ``validate_spec``. @@ -117,9 +117,9 @@ You can also validate spec from url: In order to explicitly validate a: -* Swagger / OpenAPI 2.0 spec file, import ``validate_v2_spec_url`` -* OpenAPI 3.0 spec file, import ``validate_v30_spec_url`` -* OpenAPI 3.1 spec file, import ``validate_v31_spec_url`` +* Swagger / OpenAPI 2.0 spec url, import ``validate_v2_spec_url`` +* OpenAPI 3.0 spec url, import ``validate_v30_spec_url`` +* OpenAPI 3.1 spec url, import ``validate_v31_spec_url`` instead of ``validate_spec_url``. diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 23b8d36..d3393f5 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,9 +1,8 @@ from jsonschema_spec.handlers import default_handlers -from openapi_spec_validator.shortcuts import validate_spec_detect_factory from openapi_spec_validator.shortcuts import validate_spec_factory -from openapi_spec_validator.shortcuts import validate_spec_url_detect_factory from openapi_spec_validator.shortcuts import validate_spec_url_factory +from openapi_spec_validator.validation import openapi_spec_validator_proxy from openapi_spec_validator.validation import openapi_v2_spec_validator from openapi_spec_validator.validation import openapi_v3_spec_validator from openapi_spec_validator.validation import openapi_v30_spec_validator @@ -33,20 +32,6 @@ ] # shortcuts -validate_spec = validate_spec_detect_factory( - { - ("swagger", "2.0"): openapi_v2_spec_validator, - ("openapi", "3.0"): openapi_v30_spec_validator, - ("openapi", "3.1"): openapi_v31_spec_validator, - }, -) -validate_spec_url = validate_spec_url_detect_factory( - { - ("swagger", "2.0"): openapi_v2_spec_validator, - ("openapi", "3.0"): openapi_v30_spec_validator, - ("openapi", "3.1"): openapi_v31_spec_validator, - }, -) validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator) validate_v2_spec_url = validate_spec_url_factory(openapi_v2_spec_validator) @@ -56,6 +41,9 @@ validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator) validate_v31_spec_url = validate_spec_url_factory(openapi_v31_spec_validator) +validate_spec = validate_spec_factory(openapi_spec_validator_proxy) +validate_spec_url = validate_spec_url_factory(openapi_spec_validator_proxy) + # aliases to the latest v3 version validate_v3_spec = validate_v31_spec validate_v3_spec_url = validate_v31_spec_url diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index f534268..25aecf6 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -1,17 +1,18 @@ -from argparse import ArgumentParser import logging import sys +from argparse import ArgumentParser from typing import Optional from typing import Sequence -from jsonschema.exceptions import best_match from jsonschema.exceptions import ValidationError +from jsonschema.exceptions import best_match -from openapi_spec_validator import openapi_v2_spec_validator -from openapi_spec_validator import openapi_v30_spec_validator -from openapi_spec_validator import openapi_v31_spec_validator from openapi_spec_validator.readers import read_from_filename from openapi_spec_validator.readers import read_from_stdin +from openapi_spec_validator.validation import openapi_spec_validator_proxy +from openapi_spec_validator.validation import openapi_v2_spec_validator +from openapi_spec_validator.validation import openapi_v30_spec_validator +from openapi_spec_validator.validation import openapi_v31_spec_validator logger = logging.getLogger(__name__) logging.basicConfig( @@ -20,7 +21,9 @@ ) -def print_validationerror(exc: ValidationError, errors: str = "best-match") -> None: +def print_validationerror( + exc: ValidationError, errors: str = "best-match" +) -> None: print("# Validation Error\n") print(exc) if exc.cause: @@ -53,10 +56,10 @@ def main(args: Optional[Sequence[str]] = None) -> None: ) parser.add_argument( "--schema", - help="OpenAPI schema (default: 3.1.0)", + help="OpenAPI schema (default: detect)", type=str, - choices=["2.0", "3.0.0", "3.1.0"], - default="3.1.0", + choices=["2.0", "3.0.0", "3.1.0", "detect"], + default="detect", ) args_parsed = parser.parse_args(args) @@ -77,6 +80,7 @@ def main(args: Optional[Sequence[str]] = None) -> None: "2.0": openapi_v2_spec_validator, "3.0.0": openapi_v30_spec_validator, "3.1.0": openapi_v31_spec_validator, + "detect": openapi_spec_validator_proxy, } validator = validators[args_parsed.schema] diff --git a/openapi_spec_validator/exceptions.py b/openapi_spec_validator/exceptions.py index f850b52..6a62f4e 100644 --- a/openapi_spec_validator/exceptions.py +++ b/openapi_spec_validator/exceptions.py @@ -1,6 +1,2 @@ class OpenAPISpecValidatorError(Exception): pass - - -class ValidatorDetectError(OpenAPISpecValidatorError): - pass diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index d46c3aa..cd1803e 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -1,6 +1,6 @@ +import sys from os import path from pathlib import Path -import sys from typing import Any from typing import Hashable from typing import Mapping diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index acca20b..60941b7 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -3,46 +3,24 @@ from typing import Callable from typing import Hashable from typing import Mapping -from typing import Tuple from jsonschema_spec.handlers import all_urls_handler -from openapi_spec_validator.exceptions import ValidatorDetectError -from openapi_spec_validator.validation.validators import SpecValidator +from openapi_spec_validator.validation.protocols import SupportsValidation -def detect_validator(choices: Mapping[Tuple[str, str], SpecValidator], spec: Mapping[Hashable, Any]) -> SpecValidator: - for (key, value), validator in choices.items(): - if key in spec and spec[key].startswith(value): - return validator - raise ValidatorDetectError("Spec schema version not detected") - - -def validate_spec_detect_factory(choices: Mapping[Tuple[str, str], SpecValidator]) -> Callable[[Mapping[Hashable, Any], str], None]: - def validate(spec: Mapping[Hashable, Any], spec_url: str = "") -> None: - validator = detect_validator(choices, spec) - return validator.validate(spec, spec_url=spec_url) - - return validate - - -def validate_spec_factory(validator: SpecValidator) -> Callable[[Mapping[Hashable, Any], str], None]: +def validate_spec_factory( + validator: SupportsValidation, +) -> Callable[[Mapping[Hashable, Any], str], None]: def validate(spec: Mapping[Hashable, Any], spec_url: str = "") -> None: return validator.validate(spec, spec_url=spec_url) return validate -def validate_spec_url_detect_factory(choices: Mapping[Tuple[str, str], SpecValidator]) -> Callable[[str], None]: - def validate(spec_url: str) -> None: - spec = all_urls_handler(spec_url) - validator = detect_validator(choices, spec) - return validator.validate(spec, spec_url=spec_url) - - return validate - - -def validate_spec_url_factory(validator: SpecValidator) -> Callable[[str], None]: +def validate_spec_url_factory( + validator: SupportsValidation, +) -> Callable[[str], None]: def validate(spec_url: str) -> None: spec = all_urls_handler(spec_url) return validator.validate(spec, spec_url=spec_url) diff --git a/openapi_spec_validator/validation/__init__.py b/openapi_spec_validator/validation/__init__.py index c48e09c..a889b96 100644 --- a/openapi_spec_validator/validation/__init__.py +++ b/openapi_spec_validator/validation/__init__.py @@ -12,6 +12,7 @@ from openapi_spec_validator.schemas import schema_v2 from openapi_spec_validator.schemas import schema_v30 from openapi_spec_validator.schemas import schema_v31 +from openapi_spec_validator.validation.proxies import DetectValidatorProxy from openapi_spec_validator.validation.validators import SpecValidator __all__ = [ @@ -19,6 +20,7 @@ "openapi_v3_spec_validator", "openapi_v30_spec_validator", "openapi_v31_spec_validator", + "openapi_spec_validator_proxy", ] # v2.0 spec @@ -59,3 +61,12 @@ # alias to the latest v3 version openapi_v3_spec_validator = openapi_v31_spec_validator + +# detect version spec +openapi_spec_validator_proxy = DetectValidatorProxy( + { + ("swagger", "2.0"): openapi_v2_spec_validator, + ("openapi", "3.0"): openapi_v30_spec_validator, + ("openapi", "3.1"): openapi_v31_spec_validator, + }, +) diff --git a/openapi_spec_validator/validation/exceptions.py b/openapi_spec_validator/validation/exceptions.py index f081aa7..e312782 100644 --- a/openapi_spec_validator/validation/exceptions.py +++ b/openapi_spec_validator/validation/exceptions.py @@ -1,5 +1,11 @@ from jsonschema.exceptions import ValidationError +from openapi_spec_validator.exceptions import OpenAPISpecValidatorError + + +class ValidatorDetectError(OpenAPISpecValidatorError): + pass + class OpenAPIValidationError(ValidationError): # type: ignore pass diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py new file mode 100644 index 0000000..da28afe --- /dev/null +++ b/openapi_spec_validator/validation/protocols.py @@ -0,0 +1,34 @@ +from typing import TYPE_CHECKING +from typing import Any +from typing import Hashable +from typing import Iterator +from typing import Mapping + +if TYPE_CHECKING: + from typing_extensions import Protocol + from typing_extensions import runtime_checkable +else: + try: + from typing import Protocol + from typing import runtime_checkable + except ImportError: + from typing_extensions import Protocol + from typing_extensions import runtime_checkable + +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError + + +@runtime_checkable +class SupportsValidation(Protocol): + def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: + ... + + def iter_errors( + self, instance: Mapping[Hashable, Any], spec_url: str = "" + ) -> Iterator[OpenAPIValidationError]: + ... + + def validate( + self, instance: Mapping[Hashable, Any], spec_url: str = "" + ) -> None: + ... diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py new file mode 100644 index 0000000..96bae4f --- /dev/null +++ b/openapi_spec_validator/validation/proxies.py @@ -0,0 +1,40 @@ +"""OpenAPI spec validator validation proxies module.""" +from typing import Any +from typing import Hashable +from typing import Iterator +from typing import Mapping +from typing import Tuple + +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError +from openapi_spec_validator.validation.exceptions import ValidatorDetectError +from openapi_spec_validator.validation.validators import SpecValidator + + +class DetectValidatorProxy: + + def __init__(self, choices: Mapping[Tuple[str, str], SpecValidator]): + self.choices = choices + + def detect(self, instance: Mapping[Hashable, Any]) -> SpecValidator: + for (key, value), validator in self.choices.items(): + if key in instance and instance[key].startswith(value): + return validator + raise ValidatorDetectError("Spec schema version not detected") + + def validate( + self, instance: Mapping[Hashable, Any], spec_url: str = "" + ) -> None: + validator = self.detect(instance) + for err in validator.iter_errors(instance, spec_url=spec_url): + raise err + + def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: + validator = self.detect(instance) + error = next(validator.iter_errors(instance), None) + return error is None + + def iter_errors( + self, instance: Mapping[Hashable, Any], spec_url: str = "" + ) -> Iterator[OpenAPIValidationError]: + validator = self.detect(instance) + yield from validator.iter_errors(instance, spec_url=spec_url) diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index 5e5238e..c41dde6 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -67,18 +67,26 @@ def __init__( self.operation_ids_registry: Optional[List[str]] = None self.resolver = None - def validate(self, spec_dict: Mapping[Hashable, Any], spec_url: str = "") -> None: - for err in self.iter_errors(spec_dict, spec_url=spec_url): + def validate( + self, instance: Mapping[Hashable, Any], spec_url: str = "" + ) -> None: + for err in self.iter_errors(instance, spec_url=spec_url): raise err + def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: + error = next(self.iter_errors(instance), None) + return error is None + @wraps_errors - def iter_errors(self, spec_dict: Mapping[Hashable, Any], spec_url: str = "") -> Iterator[ValidationError]: + def iter_errors( + self, instance: Mapping[Hashable, Any], spec_url: str = "" + ) -> Iterator[ValidationError]: self.operation_ids_registry = [] - self.resolver = self._get_resolver(spec_url, spec_dict) + self.resolver = self._get_resolver(spec_url, instance) - yield from self.schema_validator.iter_errors(spec_dict) + yield from self.schema_validator.iter_errors(instance) - accessor = SpecAccessor(spec_dict, self.resolver) + accessor = SpecAccessor(instance, self.resolver) spec = Spec(accessor) if "paths" in spec: paths = spec / "paths" @@ -88,14 +96,18 @@ def iter_errors(self, spec_dict: Mapping[Hashable, Any], spec_url: str = "") -> components = spec / "components" yield from self._iter_components_errors(components) - def _get_resolver(self, base_uri: str, referrer: Mapping[Hashable, Any]) -> RefResolver: + def _get_resolver( + self, base_uri: str, referrer: Mapping[Hashable, Any] + ) -> RefResolver: return RefResolver(base_uri, referrer, handlers=self.resolver_handlers) def _iter_paths_errors(self, paths: Spec) -> Iterator[ValidationError]: for url, path_item in paths.items(): yield from self._iter_path_errors(url, path_item) - def _iter_path_errors(self, url: str, path_item: Spec) -> Iterator[ValidationError]: + def _iter_path_errors( + self, url: str, path_item: Spec + ) -> Iterator[ValidationError]: parameters = None if "parameters" in path_item: parameters = path_item / "parameters" @@ -109,7 +121,13 @@ def _iter_path_errors(self, url: str, path_item: Spec) -> Iterator[ValidationErr url, field_name, operation, parameters ) - def _iter_operation_errors(self, url: str, name: str, operation: Spec, path_parameters: Optional[Spec]) -> Iterator[ValidationError]: + def _iter_operation_errors( + self, + url: str, + name: str, + operation: Spec, + path_parameters: Optional[Spec], + ) -> Iterator[ValidationError]: assert self.operation_ids_registry is not None operation_id = operation.getkey("operationId") @@ -153,7 +171,9 @@ def _get_path_params_from_url(self, url: str) -> Iterator[str]: path_params = [item[1] for item in formatter.parse(url)] return filter(None, path_params) - def _iter_parameters_errors(self, parameters: Spec) -> Iterator[ValidationError]: + def _iter_parameters_errors( + self, parameters: Spec + ) -> Iterator[ValidationError]: seen = set() for parameter in parameters: yield from self._iter_parameter_errors(parameter) @@ -165,7 +185,9 @@ def _iter_parameters_errors(self, parameters: Spec) -> Iterator[ValidationError] ) seen.add(key) - def _iter_parameter_errors(self, parameter: Spec) -> Iterator[ValidationError]: + def _iter_parameter_errors( + self, parameter: Spec + ) -> Iterator[ValidationError]: if "schema" in parameter: schema = parameter / "schema" yield from self._iter_schema_errors(schema) @@ -176,7 +198,9 @@ def _iter_parameter_errors(self, parameter: Spec) -> Iterator[ValidationError]: if default is not None: yield from self._iter_value_errors(parameter, default) - def _iter_value_errors(self, schema: Spec, value: Any) -> Iterator[ValidationError]: + def _iter_value_errors( + self, schema: Spec, value: Any + ) -> Iterator[ValidationError]: with schema.open() as content: validator = self.value_validator_class( content, @@ -185,7 +209,9 @@ def _iter_value_errors(self, schema: Spec, value: Any) -> Iterator[ValidationErr ) yield from validator.iter_errors(value) - def _iter_schema_errors(self, schema: Spec, require_properties: bool = True) -> Iterator[ValidationError]: + def _iter_schema_errors( + self, schema: Spec, require_properties: bool = True + ) -> Iterator[ValidationError]: if not hasattr(schema.content(), "__getitem__"): return @@ -253,7 +279,9 @@ def _iter_schema_errors(self, schema: Spec, require_properties: bool = True) -> if default is not None or nullable is not True: yield from self._iter_value_errors(schema, default) - def _iter_components_errors(self, components: Spec) -> Iterator[ValidationError]: + def _iter_components_errors( + self, components: Spec + ) -> Iterator[ValidationError]: schemas = components.get("schemas", {}) yield from self._iter_schemas_errors(schemas) diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index 1879bda..f85a09d 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -6,8 +6,14 @@ from openapi_spec_validator.__main__ import main -def test_schema_default(): - """Test default schema is 3.1.0""" +def test_schema_v2_detect(): + """Test schema v2 is detected""" + testargs = ["./tests/integration/data/v2.0/petstore.yaml"] + main(testargs) + + +def test_schema_v31_detect(): + """Test schema v3.1 is detected""" testargs = ["./tests/integration/data/v3.1/petstore.yaml"] main(testargs) diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 32767a6..04d3321 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -10,8 +10,8 @@ from openapi_spec_validator import validate_v2_spec_url from openapi_spec_validator import validate_v30_spec from openapi_spec_validator import validate_v30_spec_url -from openapi_spec_validator.exceptions import ValidatorDetectError from openapi_spec_validator.validation.exceptions import OpenAPIValidationError +from openapi_spec_validator.validation.exceptions import ValidatorDetectError class TestValidateSpec: From 000a15db3b22a83f96d5ed945128f1c2c5f460b0 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 2 Sep 2022 10:49:59 +0100 Subject: [PATCH 126/371] shortcuts refactor and validators explicit usage --- README.rst | 24 ++++++---------- openapi_spec_validator/__init__.py | 30 ++------------------ openapi_spec_validator/shortcuts.py | 29 +++++++++---------- openapi_spec_validator/validation/proxies.py | 1 - tests/integration/test_shortcuts.py | 27 +++++------------- 5 files changed, 31 insertions(+), 80 deletions(-) diff --git a/README.rst b/README.rst index f19134c..7947abb 100644 --- a/README.rst +++ b/README.rst @@ -90,16 +90,6 @@ By default, OpenAPI spec version is detected. To validate spec: ... OpenAPIValidationError: 'info' is a required property -In order to explicitly validate a: - -* Swagger / OpenAPI 2.0 spec, import ``validate_v2_spec`` -* OpenAPI 3.0 spec, import ``validate_v30_spec`` -* OpenAPI 3.1 spec, import ``validate_v31_spec`` - -instead of ``validate_spec``. - -You can also explicitly import ``validate_v3_spec`` which is a shortcut to the latest v3 release. - Add ``spec_url`` to validate spec with relative files: .. code:: python @@ -117,13 +107,17 @@ You can also validate spec from url: In order to explicitly validate a: -* Swagger / OpenAPI 2.0 spec url, import ``validate_v2_spec_url`` -* OpenAPI 3.0 spec url, import ``validate_v30_spec_url`` -* OpenAPI 3.1 spec url, import ``validate_v31_spec_url`` +* Swagger / OpenAPI 2.0 spec, import ``openapi_v2_spec_validator`` +* OpenAPI 3.0 spec, import ``openapi_v30_spec_validator`` +* OpenAPI 3.1 spec, import ``openapi_v31_spec_validator`` + +and pass the validator to ``validate_spec`` or ``validate_spec_url`` function: + +.. code:: python -instead of ``validate_spec_url``. + validate_spec(spec_dict, validator=openapi_v31_spec_validator) -You can also explicitly import ``validate_v3_spec_url`` which is a shortcut to the latest v3 release. +You can also explicitly import ``openapi_v3_spec_validator`` which is a shortcut to the latest v3 release. If you want to iterate through validation errors: diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index d3393f5..050480e 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,8 +1,7 @@ from jsonschema_spec.handlers import default_handlers -from openapi_spec_validator.shortcuts import validate_spec_factory -from openapi_spec_validator.shortcuts import validate_spec_url_factory -from openapi_spec_validator.validation import openapi_spec_validator_proxy +from openapi_spec_validator.shortcuts import validate_spec +from openapi_spec_validator.shortcuts import validate_spec_url from openapi_spec_validator.validation import openapi_v2_spec_validator from openapi_spec_validator.validation import openapi_v3_spec_validator from openapi_spec_validator.validation import openapi_v30_spec_validator @@ -19,31 +18,6 @@ "openapi_v3_spec_validator", "openapi_v30_spec_validator", "openapi_v31_spec_validator", - "validate_v2_spec", - "validate_v3_spec", - "validate_v30_spec", - "validate_v31_spec", "validate_spec", - "validate_v2_spec_url", - "validate_v3_spec_url", - "validate_v30_spec_url", - "validate_v31_spec_url", "validate_spec_url", ] - -# shortcuts -validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator) -validate_v2_spec_url = validate_spec_url_factory(openapi_v2_spec_validator) - -validate_v30_spec = validate_spec_factory(openapi_v30_spec_validator) -validate_v30_spec_url = validate_spec_url_factory(openapi_v30_spec_validator) - -validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator) -validate_v31_spec_url = validate_spec_url_factory(openapi_v31_spec_validator) - -validate_spec = validate_spec_factory(openapi_spec_validator_proxy) -validate_spec_url = validate_spec_url_factory(openapi_spec_validator_proxy) - -# aliases to the latest v3 version -validate_v3_spec = validate_v31_spec -validate_v3_spec_url = validate_v31_spec_url diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 60941b7..3a4a797 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -1,28 +1,25 @@ """OpenAPI spec validator shortcuts module.""" from typing import Any -from typing import Callable from typing import Hashable from typing import Mapping from jsonschema_spec.handlers import all_urls_handler +from openapi_spec_validator.validation import openapi_spec_validator_proxy from openapi_spec_validator.validation.protocols import SupportsValidation -def validate_spec_factory( - validator: SupportsValidation, -) -> Callable[[Mapping[Hashable, Any], str], None]: - def validate(spec: Mapping[Hashable, Any], spec_url: str = "") -> None: - return validator.validate(spec, spec_url=spec_url) +def validate_spec( + spec: Mapping[Hashable, Any], + spec_url: str = "", + validator: SupportsValidation = openapi_spec_validator_proxy, +) -> None: + return validator.validate(spec, spec_url=spec_url) - return validate - -def validate_spec_url_factory( - validator: SupportsValidation, -) -> Callable[[str], None]: - def validate(spec_url: str) -> None: - spec = all_urls_handler(spec_url) - return validator.validate(spec, spec_url=spec_url) - - return validate +def validate_spec_url( + spec_url: str, + validator: SupportsValidation = openapi_spec_validator_proxy, +) -> None: + spec = all_urls_handler(spec_url) + return validator.validate(spec, spec_url=spec_url) diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 96bae4f..ca4541e 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -11,7 +11,6 @@ class DetectValidatorProxy: - def __init__(self, choices: Mapping[Tuple[str, str], SpecValidator]): self.choices = choices diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 04d3321..fe4e057 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -3,13 +3,7 @@ from openapi_spec_validator import openapi_v2_spec_validator from openapi_spec_validator import openapi_v30_spec_validator from openapi_spec_validator import validate_spec -from openapi_spec_validator import validate_spec_factory from openapi_spec_validator import validate_spec_url -from openapi_spec_validator import validate_spec_url_factory -from openapi_spec_validator import validate_v2_spec -from openapi_spec_validator import validate_v2_spec_url -from openapi_spec_validator import validate_v30_spec -from openapi_spec_validator import validate_v30_spec_url from openapi_spec_validator.validation.exceptions import OpenAPIValidationError from openapi_spec_validator.validation.exceptions import ValidatorDetectError @@ -50,9 +44,7 @@ def test_valid(self, factory, spec_file): spec_url = factory.spec_file_url(spec_path) validate_spec(spec) - validate_v2_spec(spec) - - validate_spec_factory(openapi_v2_spec_validator)(spec, spec_url) + validate_spec(spec, validator=openapi_v2_spec_validator) @pytest.mark.parametrize( "spec_file", @@ -65,7 +57,7 @@ def test_falied(self, factory, spec_file): spec = factory.spec_from_file(spec_path) with pytest.raises(OpenAPIValidationError): - validate_v2_spec(spec) + validate_spec(spec, validator=openapi_v2_spec_validator) class TestLocalValidatev30Spec: @@ -87,9 +79,8 @@ def test_valid(self, factory, spec_file): spec_url = factory.spec_file_url(spec_path) validate_spec(spec) - validate_v30_spec(spec) - - validate_spec_factory(openapi_v30_spec_validator)(spec, spec_url) + validate_spec(spec, spec_url=spec_url) + validate_spec(spec, validator=openapi_v30_spec_validator) @pytest.mark.parametrize( "spec_file", @@ -102,7 +93,7 @@ def test_falied(self, factory, spec_file): spec = factory.spec_from_file(spec_path) with pytest.raises(OpenAPIValidationError): - validate_v30_spec(spec) + validate_spec(spec, validator=openapi_v30_spec_validator) @pytest.mark.network @@ -130,9 +121,7 @@ def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) validate_spec_url(spec_url) - validate_v2_spec_url(spec_url) - - validate_spec_url_factory(openapi_v2_spec_validator)(spec_url) + validate_spec_url(spec_url, validator=openapi_v2_spec_validator) @pytest.mark.network @@ -160,6 +149,4 @@ def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) validate_spec_url(spec_url) - validate_v30_spec_url(spec_url) - - validate_spec_url_factory(openapi_v30_spec_validator)(spec_url) + validate_spec_url(spec_url, validator=openapi_v30_spec_validator) From 03d4937a85482bed16e0e92bf6795b8778458227 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 2 Sep 2022 11:12:49 +0100 Subject: [PATCH 127/371] remove default_handlers unused import --- openapi_spec_validator/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 050480e..b22b175 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,5 +1,4 @@ -from jsonschema_spec.handlers import default_handlers - +"""OpenAPI spec validator module.""" from openapi_spec_validator.shortcuts import validate_spec from openapi_spec_validator.shortcuts import validate_spec_url from openapi_spec_validator.validation import openapi_v2_spec_validator From cab6dd455291721f8f34899ba520b4735c389b81 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 2 Sep 2022 11:19:40 +0100 Subject: [PATCH 128/371] Version 0.5.0 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 942361a..2cf6c59 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.0a3 +current_version = 0.5.0 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index d14134a..89e7f0f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0a3 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index b22b175..b355fd9 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.0a3" +__version__ = "0.5.0" __url__ = "https://github.com/p1c2u/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index a67125e..3bd90ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.0a3" +version = "0.5.0" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From c7be80d9660ffa8e478bb11226fb14a5b7bcd919 Mon Sep 17 00:00:00 2001 From: John Vandenberg Date: Mon, 5 Sep 2022 11:29:15 +0800 Subject: [PATCH 129/371] test_validators.py: Fix spelling --- tests/integration/validation/test_validators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 21932db..18edfb5 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -69,7 +69,7 @@ def test_valid(self, factory, validator_v30, spec_file): @pytest.mark.network -class TestRemoteOpeAPIv31Validator: +class TestRemoteOpenAPIv31Validator: REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/" From 14ebd8514693c1a1eefa05de40c1ee9e0fbdad71 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 5 Sep 2022 11:27:03 +0100 Subject: [PATCH 130/371] Responses schema validation --- .../validation/validators.py | 33 ++++++ .../data/v2.0/missing-reference.yaml | 101 ++++++++++++++++++ .../integration/validation/test_validators.py | 52 ++++++++- 3 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 tests/integration/data/v2.0/missing-reference.yaml diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index c41dde6..b1bd835 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -140,6 +140,10 @@ def _iter_operation_errors( ) self.operation_ids_registry.append(operation_id) + if "responses" in operation: + responses = operation / "responses" + yield from self._iter_responses_errors(responses) + names = [] parameters = None @@ -161,6 +165,35 @@ def _iter_operation_errors( ) return + def _iter_responses_errors( + self, responses: Spec + ) -> Iterator[ValidationError]: + for response_code, response in responses.items(): + yield from self._iter_response_errors(response_code, response) + + def _iter_response_errors( + self, response_code: str, response: Spec + ) -> Iterator[ValidationError]: + # openapi 2 + if "schema" in response: + schema = response / "schema" + yield from self._iter_schema_errors(schema) + # openapi 3 + if "content" in response: + content = response / "content" + yield from self._iter_content_errors(content) + + def _iter_content_errors(self, content: Spec) -> Iterator[ValidationError]: + for mimetype, media_type in content.items(): + yield from self._iter_media_type_errors(mimetype, media_type) + + def _iter_media_type_errors( + self, mimetype: str, media_type: Spec + ) -> Iterator[ValidationError]: + if "schema" in media_type: + schema = media_type / "schema" + yield from self._iter_schema_errors(schema) + def _get_path_param_names(self, params: Spec) -> Iterator[str]: for param in params: if param["in"] == "path": diff --git a/tests/integration/data/v2.0/missing-reference.yaml b/tests/integration/data/v2.0/missing-reference.yaml new file mode 100644 index 0000000..e136aaf --- /dev/null +++ b/tests/integration/data/v2.0/missing-reference.yaml @@ -0,0 +1,101 @@ +swagger: "2.0" +info: + version: 1.0.0 + title: Swagger Petstore + license: + name: MIT +host: petstore.swagger.io +basePath: /v1 +schemes: + - http +consumes: + - application/json +produces: + - application/json +paths: + /pets: + get: + summary: List all pets + operationId: listPets + tags: + - pets + parameters: + - name: limit + in: query + description: How many items to return at one time (max 100) + required: false + type: integer + format: int32 + responses: + 200: + description: A paged array of pets + headers: + x-next: + type: string + description: A link to the next page of responses + schema: + $ref: 'definitions/Pets' + default: + description: unexpected error + schema: + $ref: '#/definitions/' + post: + summary: Create a pet + operationId: createPets + tags: + - pets + responses: + '201': + description: Null response + default: + description: unexpected error + schema: + $ref: '#/definitions/Error' + /pets/{petId}: + get: + summary: Info for a specific pet + operationId: showPetById + tags: + - pets + parameters: + - name: petId + in: path + required: true + description: The id of the pet to retrieve + type: string + responses: + '200': + description: Expected response to a valid request + schema: + $ref: '#/definitions/Pets' + default: + description: unexpected error + schema: + $ref: '#/definitions/Error' +definitions: + Pet: + required: + - id + - name + properties: + id: + type: integer + format: int64 + name: + type: string + tag: + type: string + Pets: + type: array + items: + $ref: '#/definitions/Pet' + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + message: + type: string \ No newline at end of file diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 21932db..83c8381 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -1,8 +1,58 @@ import pytest +from jsonschema.exceptions import RefResolutionError from openapi_spec_validator.validation.exceptions import OpenAPIValidationError +class TestLocalOpenAPIv2Validator: + + LOCAL_SOURCE_DIRECTORY = "data/v2.0/" + + def local_test_suite_file_path(self, test_file): + return f"{self.LOCAL_SOURCE_DIRECTORY}{test_file}" + + @pytest.mark.parametrize( + "spec_file", + [ + "petstore.yaml", + ], + ) + def test_valid(self, factory, validator_v2, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) + + return validator_v2.validate(spec, spec_url=spec_url) + + @pytest.mark.parametrize( + "spec_file", + [ + "empty.yaml", + ], + ) + def test_validation_failed(self, factory, validator_v2, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) + + with pytest.raises(OpenAPIValidationError): + validator_v2.validate(spec, spec_url=spec_url) + + @pytest.mark.parametrize( + "spec_file", + [ + "missing-reference.yaml", + ], + ) + def test_ref_failed(self, factory, validator_v2, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) + + with pytest.raises(RefResolutionError): + validator_v2.validate(spec, spec_url=spec_url) + + class TestLocalOpenAPIv30Validator: LOCAL_SOURCE_DIRECTORY = "data/v3.0/" @@ -31,7 +81,7 @@ def test_valid(self, factory, validator_v30, spec_file): "empty.yaml", ], ) - def test_falied(self, factory, validator_v30, spec_file): + def test_failed(self, factory, validator_v30, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) From fb65952e5e0cffbc93de372e83fd548b466bec82 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 5 Sep 2022 11:36:12 +0100 Subject: [PATCH 131/371] Version 0.5.1 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 2cf6c59..80f0332 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.0 +current_version = 0.5.1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 89e7f0f..cb77daf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.0 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.1 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index b355fd9..d12253f 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.0" +__version__ = "0.5.1" __url__ = "https://github.com/p1c2u/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index 3bd90ee..900fbfb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.0" +version = "0.5.1" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From a393460f0bd25988294e68ec8fc5cf810aab5f05 Mon Sep 17 00:00:00 2001 From: Stanislav Levin Date: Fri, 30 Sep 2022 18:21:15 +0300 Subject: [PATCH 132/371] Drop no longer used runtime dependency on PyYAML PyYAML is no longer runtime dependency (7bca8cd and 7cbc3f6). `openapi-spec-validator` requires `jsonschema-spec` that in turn wants PyYAML = ">=5.1". Fixes: https://github.com/p1c2u/openapi-spec-validator/issues/179 Signed-off-by: Stanislav Levin --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 900fbfb..70e4aa2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,6 @@ classifiers = [ jsonschema = "^4.0.0" openapi-schema-validator = "^0.3.2" python = "^3.7.0" -PyYAML = ">=5.1" requests = {version = "*", optional = true} importlib-resources = "^5.8.0" jsonschema-spec = "^0.1.1" From c4746e3aeea4c762292035751c9e358ed80afae7 Mon Sep 17 00:00:00 2001 From: Arthur Zamarin Date: Fri, 2 Sep 2022 18:11:35 +0300 Subject: [PATCH 133/371] Use stdlib importlib.resources on python >= 3.9 Signed-off-by: Arthur Zamarin --- openapi_spec_validator/schemas/utils.py | 10 +++++++--- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index b9a5eaa..d3d2fba 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -1,18 +1,22 @@ """OpenAIP spec validator schemas utils module.""" +import sys from os import path from typing import Any from typing import Hashable from typing import Mapping from typing import Tuple -import importlib_resources +if sys.version_info >= (3, 9): + from importlib.resources import as_file, files +else: + from importlib_resources import as_file, files from jsonschema_spec.readers import FilePathReader def get_schema(version: str) -> Tuple[Mapping[Hashable, Any], str]: schema_path = f"resources/schemas/v{version}/schema.json" - ref = importlib_resources.files("openapi_spec_validator") / schema_path - with importlib_resources.as_file(ref) as resource_path: + ref = files("openapi_spec_validator") / schema_path + with as_file(ref) as resource_path: schema_path_full = path.join(path.dirname(__file__), resource_path) return FilePathReader(schema_path_full).read() diff --git a/pyproject.toml b/pyproject.toml index 3bd90ee..62d8fb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,7 @@ openapi-schema-validator = "^0.3.2" python = "^3.7.0" PyYAML = ">=5.1" requests = {version = "*", optional = true} -importlib-resources = "^5.8.0" +importlib-resources = {version = "^5.8.0", python = "<3.9" } jsonschema-spec = "^0.1.1" lazy-object-proxy = "^1.7.1" From 8eae9883e34ea4e7d67421b1e3267af282d3dd66 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 7 Oct 2022 12:55:34 +0100 Subject: [PATCH 134/371] mypy typing module version fix --- openapi_spec_validator/validation/protocols.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py index da28afe..b876987 100644 --- a/openapi_spec_validator/validation/protocols.py +++ b/openapi_spec_validator/validation/protocols.py @@ -1,19 +1,16 @@ +import sys from typing import TYPE_CHECKING from typing import Any from typing import Hashable from typing import Iterator from typing import Mapping -if TYPE_CHECKING: +if sys.version_info >= (3, 8): + from typing import Protocol + from typing import runtime_checkable +else: from typing_extensions import Protocol from typing_extensions import runtime_checkable -else: - try: - from typing import Protocol - from typing import runtime_checkable - except ImportError: - from typing_extensions import Protocol - from typing_extensions import runtime_checkable from openapi_spec_validator.validation.exceptions import OpenAPIValidationError From ca6907f83dc3a10e21639ece796cd275cad022cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 07:39:13 +0000 Subject: [PATCH 135/371] Bump certifi from 2022.6.15 to 2022.12.7 Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.6.15 to 2022.12.7. - [Release notes](https://github.com/certifi/python-certifi/releases) - [Commits](https://github.com/certifi/python-certifi/compare/2022.06.15...2022.12.07) --- updated-dependencies: - dependency-name: certifi dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 547 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 466 insertions(+), 81 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9b55987..f33f2b6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -23,10 +23,10 @@ optional = false python-versions = ">=3.5" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] [[package]] name = "black" @@ -53,10 +53,10 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2022.6.15" +version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" -optional = true +optional = false python-versions = ">=3.6" [[package]] @@ -76,7 +76,7 @@ optional = true python-versions = ">=3.6.0" [package.extras] -unicode_backport = ["unicodedata2"] +unicode-backport = ["unicodedata2"] [[package]] name = "click" @@ -190,9 +190,9 @@ typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] [[package]] name = "importlib-resources" @@ -206,8 +206,8 @@ python-versions = ">=3.7" zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" @@ -226,10 +226,10 @@ optional = false python-versions = ">=3.6.1,<4.0" [package.extras] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] colors = ["colorama (>=0.4.3,<0.5.0)"] +pipfile-deprecated-finder = ["pipreqs", "requirementslib"] plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "jsonschema" @@ -316,6 +316,9 @@ category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +[package.dependencies] +setuptools = "*" + [[package]] name = "openapi-schema-validator" version = "0.3.3" @@ -330,8 +333,8 @@ jsonschema = ">=4.0.0,<5.0.0" [package.extras] isodate = ["isodate"] -strict-rfc3339 = ["strict-rfc3339"] rfc3339-validator = ["rfc3339-validator"] +strict-rfc3339 = ["strict-rfc3339"] [[package]] name = "packaging" @@ -377,8 +380,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] [[package]] name = "pluggy" @@ -392,8 +395,8 @@ python-versions = ">=3.6" importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.extras] -testing = ["pytest-benchmark", "pytest"] -dev = ["tox", "pre-commit"] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" @@ -445,7 +448,7 @@ optional = false python-versions = ">=3.6.8" [package.extras] -diagrams = ["railroad-diagrams", "jinja2"] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyrsistent" @@ -490,7 +493,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] [[package]] name = "pytest-flake8" @@ -528,7 +531,20 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "setuptools" +version = "65.6.3" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" +optional = true +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -575,7 +591,7 @@ virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2, [package.extras] docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] -testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "psutil (>=5.6.1)", "pathlib2 (>=2.3.3)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"] [[package]] name = "typed-ast" @@ -602,8 +618,8 @@ optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] -brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -633,8 +649,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] dev = [] @@ -643,60 +659,429 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "e362281cbb4462609d584ef83056e034f0d4b315dd362fbba396fd9a65899514" +content-hash = "cce76c080ebafae7490da77310ec31e50710b81ca597527532ea7f9298522b68" [metadata.files] -astor = [] -atomicwrites = [] -attrs = [] -black = [] -certifi = [] -cfgv = [] -charset-normalizer = [] -click = [] -colorama = [] -coverage = [] -distlib = [] -filelock = [] -flake8 = [] -flynt = [] -identify = [] -idna = [] -importlib-metadata = [] -importlib-resources = [] -iniconfig = [] -isort = [] -jsonschema = [] -jsonschema-spec = [] -lazy-object-proxy = [] -mccabe = [] -mypy = [] -mypy-extensions = [] -nodeenv = [] -openapi-schema-validator = [] -packaging = [] -pathable = [] -pathspec = [] -pkgutil-resolve-name = [] -platformdirs = [] -pluggy = [] -pre-commit = [] -py = [] -pycodestyle = [] -pyflakes = [] -pyparsing = [] -pyrsistent = [] -pytest = [] -pytest-cov = [] -pytest-flake8 = [] -pyyaml = [] -requests = [] -six = [] -toml = [] -tomli = [] -tox = [] -typed-ast = [] -typing-extensions = [] -urllib3 = [] -virtualenv = [] -zipp = [] +astor = [ + {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, + {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, +] +atomicwrites = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] +black = [ + {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, + {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, + {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, + {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, + {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, + {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, + {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, + {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, + {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, + {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, + {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, + {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, + {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, + {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, + {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, + {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, + {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, + {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, + {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, +] +certifi = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] +cfgv = [ + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, +] +charset-normalizer = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] +click = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] +colorama = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] +coverage = [ + {file = "coverage-6.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7b4da9bafad21ea45a714d3ea6f3e1679099e420c8741c74905b92ee9bfa7cc"}, + {file = "coverage-6.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fde17bc42e0716c94bf19d92e4c9f5a00c5feb401f5bc01101fdf2a8b7cacf60"}, + {file = "coverage-6.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdbb0d89923c80dbd435b9cf8bba0ff55585a3cdb28cbec65f376c041472c60d"}, + {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67f9346aeebea54e845d29b487eb38ec95f2ecf3558a3cffb26ee3f0dcc3e760"}, + {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42c499c14efd858b98c4e03595bf914089b98400d30789511577aa44607a1b74"}, + {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c35cca192ba700979d20ac43024a82b9b32a60da2f983bec6c0f5b84aead635c"}, + {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9cc4f107009bca5a81caef2fca843dbec4215c05e917a59dec0c8db5cff1d2aa"}, + {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f444627b3664b80d078c05fe6a850dd711beeb90d26731f11d492dcbadb6973"}, + {file = "coverage-6.4.4-cp310-cp310-win32.whl", hash = "sha256:66e6df3ac4659a435677d8cd40e8eb1ac7219345d27c41145991ee9bf4b806a0"}, + {file = "coverage-6.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:35ef1f8d8a7a275aa7410d2f2c60fa6443f4a64fae9be671ec0696a68525b875"}, + {file = "coverage-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1328d0c2f194ffda30a45f11058c02410e679456276bfa0bbe0b0ee87225fac"}, + {file = "coverage-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61b993f3998ee384935ee423c3d40894e93277f12482f6e777642a0141f55782"}, + {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5dd4b8e9cd0deb60e6fcc7b0647cbc1da6c33b9e786f9c79721fd303994832f"}, + {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7026f5afe0d1a933685d8f2169d7c2d2e624f6255fb584ca99ccca8c0e966fd7"}, + {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9c7b9b498eb0c0d48b4c2abc0e10c2d78912203f972e0e63e3c9dc21f15abdaa"}, + {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ee2b2fb6eb4ace35805f434e0f6409444e1466a47f620d1d5763a22600f0f892"}, + {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ab066f5ab67059d1f1000b5e1aa8bbd75b6ed1fc0014559aea41a9eb66fc2ce0"}, + {file = "coverage-6.4.4-cp311-cp311-win32.whl", hash = "sha256:9d6e1f3185cbfd3d91ac77ea065d85d5215d3dfa45b191d14ddfcd952fa53796"}, + {file = "coverage-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e3d3c4cc38b2882f9a15bafd30aec079582b819bec1b8afdbde8f7797008108a"}, + {file = "coverage-6.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a095aa0a996ea08b10580908e88fbaf81ecf798e923bbe64fb98d1807db3d68a"}, + {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef6f44409ab02e202b31a05dd6666797f9de2aa2b4b3534e9d450e42dea5e817"}, + {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b7101938584d67e6f45f0015b60e24a95bf8dea19836b1709a80342e01b472f"}, + {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a32ec68d721c3d714d9b105c7acf8e0f8a4f4734c811eda75ff3718570b5e3"}, + {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6a864733b22d3081749450466ac80698fe39c91cb6849b2ef8752fd7482011f3"}, + {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820"}, + {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a3b2752de32c455f2521a51bd3ffb53c5b3ae92736afde67ce83477f5c1dd928"}, + {file = "coverage-6.4.4-cp37-cp37m-win32.whl", hash = "sha256:f855b39e4f75abd0dfbcf74a82e84ae3fc260d523fcb3532786bcbbcb158322c"}, + {file = "coverage-6.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ee6ae6bbcac0786807295e9687169fba80cb0617852b2fa118a99667e8e6815d"}, + {file = "coverage-6.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:564cd0f5b5470094df06fab676c6d77547abfdcb09b6c29c8a97c41ad03b103c"}, + {file = "coverage-6.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cbbb0e4cd8ddcd5ef47641cfac97d8473ab6b132dd9a46bacb18872828031685"}, + {file = "coverage-6.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6113e4df2fa73b80f77663445be6d567913fb3b82a86ceb64e44ae0e4b695de1"}, + {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8d032bfc562a52318ae05047a6eb801ff31ccee172dc0d2504614e911d8fa83e"}, + {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e431e305a1f3126477abe9a184624a85308da8edf8486a863601d58419d26ffa"}, + {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cf2afe83a53f77aec067033199797832617890e15bed42f4a1a93ea24794ae3e"}, + {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:783bc7c4ee524039ca13b6d9b4186a67f8e63d91342c713e88c1865a38d0892a"}, + {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ff934ced84054b9018665ca3967fc48e1ac99e811f6cc99ea65978e1d384454b"}, + {file = "coverage-6.4.4-cp38-cp38-win32.whl", hash = "sha256:e1fabd473566fce2cf18ea41171d92814e4ef1495e04471786cbc943b89a3781"}, + {file = "coverage-6.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:4179502f210ebed3ccfe2f78bf8e2d59e50b297b598b100d6c6e3341053066a2"}, + {file = "coverage-6.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:98c0b9e9b572893cdb0a00e66cf961a238f8d870d4e1dc8e679eb8bdc2eb1b86"}, + {file = "coverage-6.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fc600f6ec19b273da1d85817eda339fb46ce9eef3e89f220055d8696e0a06908"}, + {file = "coverage-6.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a98d6bf6d4ca5c07a600c7b4e0c5350cd483c85c736c522b786be90ea5bac4f"}, + {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2"}, + {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfa0b97eb904255e2ab24166071b27408f1f69c8fbda58e9c0972804851e0558"}, + {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fcbe3d9a53e013f8ab88734d7e517eb2cd06b7e689bedf22c0eb68db5e4a0a19"}, + {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:15e38d853ee224e92ccc9a851457fb1e1f12d7a5df5ae44544ce7863691c7a0d"}, + {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6913dddee2deff8ab2512639c5168c3e80b3ebb0f818fed22048ee46f735351a"}, + {file = "coverage-6.4.4-cp39-cp39-win32.whl", hash = "sha256:354df19fefd03b9a13132fa6643527ef7905712109d9c1c1903f2133d3a4e145"}, + {file = "coverage-6.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:1238b08f3576201ebf41f7c20bf59baa0d05da941b123c6656e42cdb668e9827"}, + {file = "coverage-6.4.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:f67cf9f406cf0d2f08a3515ce2db5b82625a7257f88aad87904674def6ddaec1"}, + {file = "coverage-6.4.4.tar.gz", hash = "sha256:e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58"}, +] +distlib = [ + {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, + {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, +] +filelock = [ + {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, + {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, +] +flake8 = [ + {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, + {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, +] +flynt = [ + {file = "flynt-0.76-py3-none-any.whl", hash = "sha256:fc122c5f589b0c4d019d7d33597f4925fd886a8e6fb3cbadb918e4baa3661687"}, + {file = "flynt-0.76.tar.gz", hash = "sha256:7a99c5a550ea9e8c21203f6999ed8ce69cbad7bc8465268469777cf06413193a"}, +] +identify = [ + {file = "identify-2.5.3-py2.py3-none-any.whl", hash = "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893"}, + {file = "identify-2.5.3.tar.gz", hash = "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44"}, +] +idna = [ + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, +] +importlib-metadata = [ + {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, + {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, +] +importlib-resources = [ + {file = "importlib_resources-5.9.0-py3-none-any.whl", hash = "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7"}, + {file = "importlib_resources-5.9.0.tar.gz", hash = "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +isort = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] +jsonschema = [ + {file = "jsonschema-4.15.0-py3-none-any.whl", hash = "sha256:2df0fab225abb3b41967bb3a46fd37dc74b1536b5296d0b1c2078cd072adf0f7"}, + {file = "jsonschema-4.15.0.tar.gz", hash = "sha256:21f4979391bdceb044e502fd8e79e738c0cdfbdc8773f9a49b5769461e82fe1e"}, +] +jsonschema-spec = [ + {file = "jsonschema-spec-0.1.1.tar.gz", hash = "sha256:2eaf5d20c017921950df53d898e0e85029901d83c28730f0fa20813648c7af22"}, + {file = "jsonschema_spec-0.1.1-py3-none-any.whl", hash = "sha256:5fa06f740d81de4a46d51ffb847ea381d09c4a5872bf0f17d7e0d4bd862d687b"}, +] +lazy-object-proxy = [ + {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, + {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, +] +mccabe = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] +mypy = [ + {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, + {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, + {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, + {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, + {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, + {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, + {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, + {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, + {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, + {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, + {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, + {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, + {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, + {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, + {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, + {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, + {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, + {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, + {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +nodeenv = [ + {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, + {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, +] +openapi-schema-validator = [ + {file = "openapi-schema-validator-0.3.3.tar.gz", hash = "sha256:dc16dfe8947c4ff92a5cb4df79e6eb03dea99f6afa26d80727c0136f02d28cc7"}, + {file = "openapi_schema_validator-0.3.3-py3-none-any.whl", hash = "sha256:76b8460e2f1e56d339e77104d7689acb9d91fc4b8c7fe5976e81d3e54164951a"}, +] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pathable = [ + {file = "pathable-0.4.3-py3-none-any.whl", hash = "sha256:cdd7b1f9d7d5c8b8d3315dbf5a86b2596053ae845f056f57d97c0eefff84da14"}, + {file = "pathable-0.4.3.tar.gz", hash = "sha256:5c869d315be50776cc8a993f3af43e0c60dc01506b399643f919034ebf4cdcab"}, +] +pathspec = [ + {file = "pathspec-0.10.0-py3-none-any.whl", hash = "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015"}, + {file = "pathspec-0.10.0.tar.gz", hash = "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85"}, +] +pkgutil-resolve-name = [ + {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, + {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, +] +platformdirs = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +pre-commit = [ + {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, + {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pycodestyle = [ + {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, + {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, +] +pyflakes = [ + {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, + {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, +] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] +pyrsistent = [ + {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, + {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, + {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, + {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, +] +pytest = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] +pytest-cov = [ + {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, + {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, +] +pytest-flake8 = [ + {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, + {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, +] +pyyaml = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] +setuptools = [ + {file = "setuptools-65.6.3-py3-none-any.whl", hash = "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54"}, + {file = "setuptools-65.6.3.tar.gz", hash = "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tomli = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] +tox = [ + {file = "tox-3.25.1-py2.py3-none-any.whl", hash = "sha256:c38e15f4733683a9cc0129fba078633e07eb0961f550a010ada879e95fb32632"}, + {file = "tox-3.25.1.tar.gz", hash = "sha256:c138327815f53bc6da4fe56baec5f25f00622ae69ef3fe4e1e385720e22486f9"}, +] +typed-ast = [ + {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, + {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, + {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, + {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, + {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, + {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, + {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, + {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, + {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, +] +typing-extensions = [ + {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, + {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, +] +urllib3 = [ + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, +] +virtualenv = [ + {file = "virtualenv-20.16.4-py3-none-any.whl", hash = "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22"}, + {file = "virtualenv-20.16.4.tar.gz", hash = "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782"}, +] +zipp = [ + {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, + {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, +] From 5c229cbfc9b263d762af8ca29d572779587a1e53 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 14 Jan 2023 04:47:13 +0000 Subject: [PATCH 136/371] custom format tests --- .../integration/validation/test_exceptions.py | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index 1b67570..cbd9976 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -419,3 +419,89 @@ def test_parameter_default_value_with_reference(self, validator_v30): errors_list = list(errors) assert errors_list == [] + + def test_parameter_custom_format_checker_not_found(self, validator_v30): + spec = { + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", + }, + "paths": { + "/test/": { + "get": { + "responses": { + "default": { + "description": "default response", + }, + }, + "parameters": [ + { + "name": "param1", + "in": "query", + "schema": { + "type": "string", + "format": "custom", + "default": "customvalue", + }, + }, + ], + }, + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == OpenAPIValidationError + assert errors_list[0].message == ( + "Format checker for 'custom' format not found" + ) + + def test_parameter_default_value_custom_format_invalid(self, validator_v30): + from openapi_schema_validator import oas30_format_checker + + @oas30_format_checker.checks("custom") + def validate(to_validate) -> bool: + return to_validate is "valid" + + spec = { + "openapi": "3.0.0", + "info": { + "title": "Test Api", + "version": "0.0.1", + }, + "paths": { + "/test/": { + "get": { + "responses": { + "default": { + "description": "default response", + }, + }, + "parameters": [ + { + "name": "param1", + "in": "query", + "schema": { + "type": "string", + "format": "custom", + "default": "invalid", + }, + }, + ], + }, + }, + }, + } + + errors = validator_v30.iter_errors(spec) + + errors_list = list(errors) + assert len(errors_list) == 1 + assert errors_list[0].__class__ == OpenAPIValidationError + assert errors_list[0].message == ( + "'invalid' is not a 'custom'" + ) From 3a5842b66477105c27b5174dcc1fca251328bfd2 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 16 Jan 2023 05:21:55 +0000 Subject: [PATCH 137/371] allow openapi-schema-validator 0.4 --- poetry.lock | 546 ++++++++----------------------------------------- pyproject.toml | 2 +- 2 files changed, 81 insertions(+), 467 deletions(-) diff --git a/poetry.lock b/poetry.lock index f33f2b6..b2abe1b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -23,10 +23,10 @@ optional = false python-versions = ">=3.5" [package.extras] -dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] -docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] -tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] -tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] [[package]] name = "black" @@ -56,7 +56,7 @@ name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" -optional = false +optional = true python-versions = ">=3.6" [[package]] @@ -76,7 +76,7 @@ optional = true python-versions = ">=3.6.0" [package.extras] -unicode-backport = ["unicodedata2"] +unicode_backport = ["unicodedata2"] [[package]] name = "click" @@ -100,7 +100,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "coverage" -version = "6.4.4" +version = "7.0.5" description = "Code coverage measurement for Python" category = "dev" optional = false @@ -190,9 +190,9 @@ typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] [[package]] name = "importlib-resources" @@ -206,8 +206,8 @@ python-versions = ">=3.7" zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" @@ -226,10 +226,10 @@ optional = false python-versions = ">=3.6.1,<4.0" [package.extras] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +requirements_deprecated_finder = ["pipreqs", "pip-api"] colors = ["colorama (>=0.4.3,<0.5.0)"] -pipfile-deprecated-finder = ["pipreqs", "requirementslib"] plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "jsonschema" @@ -316,25 +316,21 @@ category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" -[package.dependencies] -setuptools = "*" - [[package]] name = "openapi-schema-validator" -version = "0.3.3" +version = "0.4.0" description = "OpenAPI schema validation for Python" category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" [package.dependencies] -attrs = ">=19.2.0" jsonschema = ">=4.0.0,<5.0.0" [package.extras] -isodate = ["isodate"] rfc3339-validator = ["rfc3339-validator"] strict-rfc3339 = ["strict-rfc3339"] +isodate = ["isodate"] [[package]] name = "packaging" @@ -380,8 +376,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] -test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] +test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] [[package]] name = "pluggy" @@ -448,7 +444,7 @@ optional = false python-versions = ">=3.6.8" [package.extras] -diagrams = ["jinja2", "railroad-diagrams"] +diagrams = ["railroad-diagrams", "jinja2"] [[package]] name = "pyrsistent" @@ -493,7 +489,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"] [[package]] name = "pytest-flake8" @@ -531,20 +527,7 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "setuptools" -version = "65.6.3" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" -optional = true -python-versions = ">=3.7" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "six" @@ -591,7 +574,7 @@ virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2, [package.extras] docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] -testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "psutil (>=5.6.1)", "pathlib2 (>=2.3.3)"] [[package]] name = "typed-ast" @@ -618,8 +601,8 @@ optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -649,8 +632,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] -testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [extras] dev = [] @@ -659,429 +642,60 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "cce76c080ebafae7490da77310ec31e50710b81ca597527532ea7f9298522b68" +content-hash = "d9d3187d17f169b89be14752bfd772c7261bac388f5d4c698fdd674184d7f2d4" [metadata.files] -astor = [ - {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, - {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, -] -atomicwrites = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] -attrs = [ - {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, - {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, -] -black = [ - {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, - {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, - {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, - {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, - {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, - {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, - {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, - {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, - {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, - {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, - {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, - {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, - {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, - {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, - {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, - {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, - {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, - {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, - {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, -] -certifi = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] -cfgv = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, - {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, -] -click = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] -colorama = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] -coverage = [ - {file = "coverage-6.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7b4da9bafad21ea45a714d3ea6f3e1679099e420c8741c74905b92ee9bfa7cc"}, - {file = "coverage-6.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fde17bc42e0716c94bf19d92e4c9f5a00c5feb401f5bc01101fdf2a8b7cacf60"}, - {file = "coverage-6.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdbb0d89923c80dbd435b9cf8bba0ff55585a3cdb28cbec65f376c041472c60d"}, - {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67f9346aeebea54e845d29b487eb38ec95f2ecf3558a3cffb26ee3f0dcc3e760"}, - {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42c499c14efd858b98c4e03595bf914089b98400d30789511577aa44607a1b74"}, - {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c35cca192ba700979d20ac43024a82b9b32a60da2f983bec6c0f5b84aead635c"}, - {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9cc4f107009bca5a81caef2fca843dbec4215c05e917a59dec0c8db5cff1d2aa"}, - {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f444627b3664b80d078c05fe6a850dd711beeb90d26731f11d492dcbadb6973"}, - {file = "coverage-6.4.4-cp310-cp310-win32.whl", hash = "sha256:66e6df3ac4659a435677d8cd40e8eb1ac7219345d27c41145991ee9bf4b806a0"}, - {file = "coverage-6.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:35ef1f8d8a7a275aa7410d2f2c60fa6443f4a64fae9be671ec0696a68525b875"}, - {file = "coverage-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1328d0c2f194ffda30a45f11058c02410e679456276bfa0bbe0b0ee87225fac"}, - {file = "coverage-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61b993f3998ee384935ee423c3d40894e93277f12482f6e777642a0141f55782"}, - {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5dd4b8e9cd0deb60e6fcc7b0647cbc1da6c33b9e786f9c79721fd303994832f"}, - {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7026f5afe0d1a933685d8f2169d7c2d2e624f6255fb584ca99ccca8c0e966fd7"}, - {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9c7b9b498eb0c0d48b4c2abc0e10c2d78912203f972e0e63e3c9dc21f15abdaa"}, - {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ee2b2fb6eb4ace35805f434e0f6409444e1466a47f620d1d5763a22600f0f892"}, - {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ab066f5ab67059d1f1000b5e1aa8bbd75b6ed1fc0014559aea41a9eb66fc2ce0"}, - {file = "coverage-6.4.4-cp311-cp311-win32.whl", hash = "sha256:9d6e1f3185cbfd3d91ac77ea065d85d5215d3dfa45b191d14ddfcd952fa53796"}, - {file = "coverage-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e3d3c4cc38b2882f9a15bafd30aec079582b819bec1b8afdbde8f7797008108a"}, - {file = "coverage-6.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a095aa0a996ea08b10580908e88fbaf81ecf798e923bbe64fb98d1807db3d68a"}, - {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef6f44409ab02e202b31a05dd6666797f9de2aa2b4b3534e9d450e42dea5e817"}, - {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b7101938584d67e6f45f0015b60e24a95bf8dea19836b1709a80342e01b472f"}, - {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a32ec68d721c3d714d9b105c7acf8e0f8a4f4734c811eda75ff3718570b5e3"}, - {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6a864733b22d3081749450466ac80698fe39c91cb6849b2ef8752fd7482011f3"}, - {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820"}, - {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a3b2752de32c455f2521a51bd3ffb53c5b3ae92736afde67ce83477f5c1dd928"}, - {file = "coverage-6.4.4-cp37-cp37m-win32.whl", hash = "sha256:f855b39e4f75abd0dfbcf74a82e84ae3fc260d523fcb3532786bcbbcb158322c"}, - {file = "coverage-6.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ee6ae6bbcac0786807295e9687169fba80cb0617852b2fa118a99667e8e6815d"}, - {file = "coverage-6.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:564cd0f5b5470094df06fab676c6d77547abfdcb09b6c29c8a97c41ad03b103c"}, - {file = "coverage-6.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cbbb0e4cd8ddcd5ef47641cfac97d8473ab6b132dd9a46bacb18872828031685"}, - {file = "coverage-6.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6113e4df2fa73b80f77663445be6d567913fb3b82a86ceb64e44ae0e4b695de1"}, - {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8d032bfc562a52318ae05047a6eb801ff31ccee172dc0d2504614e911d8fa83e"}, - {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e431e305a1f3126477abe9a184624a85308da8edf8486a863601d58419d26ffa"}, - {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cf2afe83a53f77aec067033199797832617890e15bed42f4a1a93ea24794ae3e"}, - {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:783bc7c4ee524039ca13b6d9b4186a67f8e63d91342c713e88c1865a38d0892a"}, - {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ff934ced84054b9018665ca3967fc48e1ac99e811f6cc99ea65978e1d384454b"}, - {file = "coverage-6.4.4-cp38-cp38-win32.whl", hash = "sha256:e1fabd473566fce2cf18ea41171d92814e4ef1495e04471786cbc943b89a3781"}, - {file = "coverage-6.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:4179502f210ebed3ccfe2f78bf8e2d59e50b297b598b100d6c6e3341053066a2"}, - {file = "coverage-6.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:98c0b9e9b572893cdb0a00e66cf961a238f8d870d4e1dc8e679eb8bdc2eb1b86"}, - {file = "coverage-6.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fc600f6ec19b273da1d85817eda339fb46ce9eef3e89f220055d8696e0a06908"}, - {file = "coverage-6.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a98d6bf6d4ca5c07a600c7b4e0c5350cd483c85c736c522b786be90ea5bac4f"}, - {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2"}, - {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfa0b97eb904255e2ab24166071b27408f1f69c8fbda58e9c0972804851e0558"}, - {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fcbe3d9a53e013f8ab88734d7e517eb2cd06b7e689bedf22c0eb68db5e4a0a19"}, - {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:15e38d853ee224e92ccc9a851457fb1e1f12d7a5df5ae44544ce7863691c7a0d"}, - {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6913dddee2deff8ab2512639c5168c3e80b3ebb0f818fed22048ee46f735351a"}, - {file = "coverage-6.4.4-cp39-cp39-win32.whl", hash = "sha256:354df19fefd03b9a13132fa6643527ef7905712109d9c1c1903f2133d3a4e145"}, - {file = "coverage-6.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:1238b08f3576201ebf41f7c20bf59baa0d05da941b123c6656e42cdb668e9827"}, - {file = "coverage-6.4.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:f67cf9f406cf0d2f08a3515ce2db5b82625a7257f88aad87904674def6ddaec1"}, - {file = "coverage-6.4.4.tar.gz", hash = "sha256:e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58"}, -] -distlib = [ - {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, - {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, -] -filelock = [ - {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, - {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, -] -flake8 = [ - {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, - {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, -] -flynt = [ - {file = "flynt-0.76-py3-none-any.whl", hash = "sha256:fc122c5f589b0c4d019d7d33597f4925fd886a8e6fb3cbadb918e4baa3661687"}, - {file = "flynt-0.76.tar.gz", hash = "sha256:7a99c5a550ea9e8c21203f6999ed8ce69cbad7bc8465268469777cf06413193a"}, -] -identify = [ - {file = "identify-2.5.3-py2.py3-none-any.whl", hash = "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893"}, - {file = "identify-2.5.3.tar.gz", hash = "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44"}, -] -idna = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, - {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, -] -importlib-resources = [ - {file = "importlib_resources-5.9.0-py3-none-any.whl", hash = "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7"}, - {file = "importlib_resources-5.9.0.tar.gz", hash = "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -jsonschema = [ - {file = "jsonschema-4.15.0-py3-none-any.whl", hash = "sha256:2df0fab225abb3b41967bb3a46fd37dc74b1536b5296d0b1c2078cd072adf0f7"}, - {file = "jsonschema-4.15.0.tar.gz", hash = "sha256:21f4979391bdceb044e502fd8e79e738c0cdfbdc8773f9a49b5769461e82fe1e"}, -] -jsonschema-spec = [ - {file = "jsonschema-spec-0.1.1.tar.gz", hash = "sha256:2eaf5d20c017921950df53d898e0e85029901d83c28730f0fa20813648c7af22"}, - {file = "jsonschema_spec-0.1.1-py3-none-any.whl", hash = "sha256:5fa06f740d81de4a46d51ffb847ea381d09c4a5872bf0f17d7e0d4bd862d687b"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -mypy = [ - {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, - {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, - {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, - {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, - {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, - {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, - {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, - {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, - {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, - {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, - {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, - {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, - {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, - {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, - {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, - {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, - {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, - {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, - {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -nodeenv = [ - {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, - {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, -] -openapi-schema-validator = [ - {file = "openapi-schema-validator-0.3.3.tar.gz", hash = "sha256:dc16dfe8947c4ff92a5cb4df79e6eb03dea99f6afa26d80727c0136f02d28cc7"}, - {file = "openapi_schema_validator-0.3.3-py3-none-any.whl", hash = "sha256:76b8460e2f1e56d339e77104d7689acb9d91fc4b8c7fe5976e81d3e54164951a"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pathable = [ - {file = "pathable-0.4.3-py3-none-any.whl", hash = "sha256:cdd7b1f9d7d5c8b8d3315dbf5a86b2596053ae845f056f57d97c0eefff84da14"}, - {file = "pathable-0.4.3.tar.gz", hash = "sha256:5c869d315be50776cc8a993f3af43e0c60dc01506b399643f919034ebf4cdcab"}, -] -pathspec = [ - {file = "pathspec-0.10.0-py3-none-any.whl", hash = "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015"}, - {file = "pathspec-0.10.0.tar.gz", hash = "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85"}, -] -pkgutil-resolve-name = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -pre-commit = [ - {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, - {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pycodestyle = [ - {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, - {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, -] -pyflakes = [ - {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, - {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pyrsistent = [ - {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, - {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, - {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, - {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, -] -pytest = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] -pytest-cov = [ - {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, - {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, -] -pytest-flake8 = [ - {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, - {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -requests = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] -setuptools = [ - {file = "setuptools-65.6.3-py3-none-any.whl", hash = "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54"}, - {file = "setuptools-65.6.3.tar.gz", hash = "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -tox = [ - {file = "tox-3.25.1-py2.py3-none-any.whl", hash = "sha256:c38e15f4733683a9cc0129fba078633e07eb0961f550a010ada879e95fb32632"}, - {file = "tox-3.25.1.tar.gz", hash = "sha256:c138327815f53bc6da4fe56baec5f25f00622ae69ef3fe4e1e385720e22486f9"}, -] -typed-ast = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, -] -typing-extensions = [ - {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, - {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, -] -urllib3 = [ - {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, - {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, -] -virtualenv = [ - {file = "virtualenv-20.16.4-py3-none-any.whl", hash = "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22"}, - {file = "virtualenv-20.16.4.tar.gz", hash = "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782"}, -] -zipp = [ - {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, - {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, -] +astor = [] +atomicwrites = [] +attrs = [] +black = [] +certifi = [] +cfgv = [] +charset-normalizer = [] +click = [] +colorama = [] +coverage = [] +distlib = [] +filelock = [] +flake8 = [] +flynt = [] +identify = [] +idna = [] +importlib-metadata = [] +importlib-resources = [] +iniconfig = [] +isort = [] +jsonschema = [] +jsonschema-spec = [] +lazy-object-proxy = [] +mccabe = [] +mypy = [] +mypy-extensions = [] +nodeenv = [] +openapi-schema-validator = [] +packaging = [] +pathable = [] +pathspec = [] +pkgutil-resolve-name = [] +platformdirs = [] +pluggy = [] +pre-commit = [] +py = [] +pycodestyle = [] +pyflakes = [] +pyparsing = [] +pyrsistent = [] +pytest = [] +pytest-cov = [] +pytest-flake8 = [] +pyyaml = [] +requests = [] +six = [] +toml = [] +tomli = [] +tox = [] +typed-ast = [] +typing-extensions = [] +urllib3 = [] +virtualenv = [] +zipp = [] diff --git a/pyproject.toml b/pyproject.toml index fdd6948..d7e5fa0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ classifiers = [ [tool.poetry.dependencies] jsonschema = "^4.0.0" -openapi-schema-validator = "^0.3.2" +openapi-schema-validator = ">=0.3.2,<0.5" python = "^3.7.0" requests = {version = "*", optional = true} importlib-resources = {version = "^5.8.0", python = "<3.9" } From 155f923f0d60e20ce23d3b5d2d6bf0036991e0bf Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 16 Jan 2023 05:29:54 +0000 Subject: [PATCH 138/371] Version 0.5.2 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 80f0332..59ecd39 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.1 +current_version = 0.5.2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index cb77daf..15b3277 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.1 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.2 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index d12253f..5076c9b 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.1" +__version__ = "0.5.2" __url__ = "https://github.com/p1c2u/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index d7e5fa0..72dea98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.1" +version = "0.5.2" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From b2b2424977bd8f4f4665e576d1044064aed60762 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 16 Jan 2023 09:21:56 -0500 Subject: [PATCH 139/371] Fix an errant string identity comparison in a test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Short strings can be interned as an optimization in the Python interpreter, so comparing them by identity (“is”, memory address) can succeed in practice, but it is neither correct nor reliable when comparing by equality (“==”, value) is intended. --- tests/integration/validation/test_exceptions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index cbd9976..8f3b675 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -465,7 +465,7 @@ def test_parameter_default_value_custom_format_invalid(self, validator_v30): @oas30_format_checker.checks("custom") def validate(to_validate) -> bool: - return to_validate is "valid" + return to_validate == "valid" spec = { "openapi": "3.0.0", From 9271220ef5071ea22bbf877eeacfc9b889784179 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 1 Feb 2023 07:49:54 +0000 Subject: [PATCH 140/371] fix custom format checker not found test --- poetry.lock | 540 +++++++++++++++--- .../integration/validation/test_exceptions.py | 6 +- 2 files changed, 463 insertions(+), 83 deletions(-) diff --git a/poetry.lock b/poetry.lock index b2abe1b..7b35c91 100644 --- a/poetry.lock +++ b/poetry.lock @@ -23,10 +23,10 @@ optional = false python-versions = ">=3.5" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] [[package]] name = "black" @@ -76,7 +76,7 @@ optional = true python-versions = ">=3.6.0" [package.extras] -unicode_backport = ["unicodedata2"] +unicode-backport = ["unicodedata2"] [[package]] name = "click" @@ -190,9 +190,9 @@ typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] [[package]] name = "importlib-resources" @@ -206,8 +206,8 @@ python-versions = ">=3.7" zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" @@ -226,10 +226,10 @@ optional = false python-versions = ">=3.6.1,<4.0" [package.extras] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] colors = ["colorama (>=0.4.3,<0.5.0)"] +pipfile-deprecated-finder = ["pipreqs", "requirementslib"] plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "jsonschema" @@ -316,9 +316,12 @@ category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +[package.dependencies] +setuptools = "*" + [[package]] name = "openapi-schema-validator" -version = "0.4.0" +version = "0.4.2" description = "OpenAPI schema validation for Python" category = "main" optional = false @@ -329,8 +332,6 @@ jsonschema = ">=4.0.0,<5.0.0" [package.extras] rfc3339-validator = ["rfc3339-validator"] -strict-rfc3339 = ["strict-rfc3339"] -isodate = ["isodate"] [[package]] name = "packaging" @@ -376,8 +377,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] [[package]] name = "pluggy" @@ -444,7 +445,7 @@ optional = false python-versions = ">=3.6.8" [package.extras] -diagrams = ["railroad-diagrams", "jinja2"] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyrsistent" @@ -489,7 +490,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] [[package]] name = "pytest-flake8" @@ -527,7 +528,20 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "setuptools" +version = "67.0.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" +optional = true +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -574,7 +588,7 @@ virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2, [package.extras] docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] -testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "psutil (>=5.6.1)", "pathlib2 (>=2.3.3)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"] [[package]] name = "typed-ast" @@ -601,8 +615,8 @@ optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] -brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -632,8 +646,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] dev = [] @@ -645,57 +659,427 @@ python-versions = "^3.7.0" content-hash = "d9d3187d17f169b89be14752bfd772c7261bac388f5d4c698fdd674184d7f2d4" [metadata.files] -astor = [] -atomicwrites = [] -attrs = [] -black = [] -certifi = [] -cfgv = [] -charset-normalizer = [] -click = [] -colorama = [] -coverage = [] -distlib = [] -filelock = [] -flake8 = [] -flynt = [] -identify = [] -idna = [] -importlib-metadata = [] -importlib-resources = [] -iniconfig = [] -isort = [] -jsonschema = [] -jsonschema-spec = [] -lazy-object-proxy = [] -mccabe = [] -mypy = [] -mypy-extensions = [] -nodeenv = [] -openapi-schema-validator = [] -packaging = [] -pathable = [] -pathspec = [] -pkgutil-resolve-name = [] -platformdirs = [] -pluggy = [] -pre-commit = [] -py = [] -pycodestyle = [] -pyflakes = [] -pyparsing = [] -pyrsistent = [] -pytest = [] -pytest-cov = [] -pytest-flake8 = [] -pyyaml = [] -requests = [] -six = [] -toml = [] -tomli = [] -tox = [] -typed-ast = [] -typing-extensions = [] -urllib3 = [] -virtualenv = [] -zipp = [] +astor = [ + {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, + {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, +] +atomicwrites = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] +black = [ + {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, + {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, + {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, + {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, + {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, + {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, + {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, + {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, + {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, + {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, + {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, + {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, + {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, + {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, + {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, + {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, + {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, + {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, + {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, +] +certifi = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] +cfgv = [ + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, +] +charset-normalizer = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] +click = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] +colorama = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] +coverage = [ + {file = "coverage-7.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2a7f23bbaeb2a87f90f607730b45564076d870f1fb07b9318d0c21f36871932b"}, + {file = "coverage-7.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c18d47f314b950dbf24a41787ced1474e01ca816011925976d90a88b27c22b89"}, + {file = "coverage-7.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef14d75d86f104f03dea66c13188487151760ef25dd6b2dbd541885185f05f40"}, + {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66e50680e888840c0995f2ad766e726ce71ca682e3c5f4eee82272c7671d38a2"}, + {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9fed35ca8c6e946e877893bbac022e8563b94404a605af1d1e6accc7eb73289"}, + {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d8d04e755934195bdc1db45ba9e040b8d20d046d04d6d77e71b3b34a8cc002d0"}, + {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e109f1c9a3ece676597831874126555997c48f62bddbcace6ed17be3e372de8"}, + {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0a1890fca2962c4f1ad16551d660b46ea77291fba2cc21c024cd527b9d9c8809"}, + {file = "coverage-7.0.5-cp310-cp310-win32.whl", hash = "sha256:be9fcf32c010da0ba40bf4ee01889d6c737658f4ddff160bd7eb9cac8f094b21"}, + {file = "coverage-7.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:cbfcba14a3225b055a28b3199c3d81cd0ab37d2353ffd7f6fd64844cebab31ad"}, + {file = "coverage-7.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:30b5fec1d34cc932c1bc04017b538ce16bf84e239378b8f75220478645d11fca"}, + {file = "coverage-7.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1caed2367b32cc80a2b7f58a9f46658218a19c6cfe5bc234021966dc3daa01f0"}, + {file = "coverage-7.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d254666d29540a72d17cc0175746cfb03d5123db33e67d1020e42dae611dc196"}, + {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19245c249aa711d954623d94f23cc94c0fd65865661f20b7781210cb97c471c0"}, + {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b05ed4b35bf6ee790832f68932baf1f00caa32283d66cc4d455c9e9d115aafc"}, + {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:29de916ba1099ba2aab76aca101580006adfac5646de9b7c010a0f13867cba45"}, + {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e057e74e53db78122a3979f908973e171909a58ac20df05c33998d52e6d35757"}, + {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:411d4ff9d041be08fdfc02adf62e89c735b9468f6d8f6427f8a14b6bb0a85095"}, + {file = "coverage-7.0.5-cp311-cp311-win32.whl", hash = "sha256:52ab14b9e09ce052237dfe12d6892dd39b0401690856bcfe75d5baba4bfe2831"}, + {file = "coverage-7.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:1f66862d3a41674ebd8d1a7b6f5387fe5ce353f8719040a986551a545d7d83ea"}, + {file = "coverage-7.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b69522b168a6b64edf0c33ba53eac491c0a8f5cc94fa4337f9c6f4c8f2f5296c"}, + {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436e103950d05b7d7f55e39beeb4d5be298ca3e119e0589c0227e6d0b01ee8c7"}, + {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c56bec53d6e3154eaff6ea941226e7bd7cc0d99f9b3756c2520fc7a94e6d96"}, + {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a38362528a9115a4e276e65eeabf67dcfaf57698e17ae388599568a78dcb029"}, + {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f67472c09a0c7486e27f3275f617c964d25e35727af952869dd496b9b5b7f6a3"}, + {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:220e3fa77d14c8a507b2d951e463b57a1f7810a6443a26f9b7591ef39047b1b2"}, + {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ecb0f73954892f98611e183f50acdc9e21a4653f294dfbe079da73c6378a6f47"}, + {file = "coverage-7.0.5-cp37-cp37m-win32.whl", hash = "sha256:d8f3e2e0a1d6777e58e834fd5a04657f66affa615dae61dd67c35d1568c38882"}, + {file = "coverage-7.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9e662e6fc4f513b79da5d10a23edd2b87685815b337b1a30cd11307a6679148d"}, + {file = "coverage-7.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:790e4433962c9f454e213b21b0fd4b42310ade9c077e8edcb5113db0818450cb"}, + {file = "coverage-7.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49640bda9bda35b057b0e65b7c43ba706fa2335c9a9896652aebe0fa399e80e6"}, + {file = "coverage-7.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d66187792bfe56f8c18ba986a0e4ae44856b1c645336bd2c776e3386da91e1dd"}, + {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:276f4cd0001cd83b00817c8db76730938b1ee40f4993b6a905f40a7278103b3a"}, + {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95304068686545aa368b35dfda1cdfbbdbe2f6fe43de4a2e9baa8ebd71be46e2"}, + {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:17e01dd8666c445025c29684d4aabf5a90dc6ef1ab25328aa52bedaa95b65ad7"}, + {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea76dbcad0b7b0deb265d8c36e0801abcddf6cc1395940a24e3595288b405ca0"}, + {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:50a6adc2be8edd7ee67d1abc3cd20678987c7b9d79cd265de55941e3d0d56499"}, + {file = "coverage-7.0.5-cp38-cp38-win32.whl", hash = "sha256:e4ce984133b888cc3a46867c8b4372c7dee9cee300335e2925e197bcd45b9e16"}, + {file = "coverage-7.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:4a950f83fd3f9bca23b77442f3a2b2ea4ac900944d8af9993743774c4fdc57af"}, + {file = "coverage-7.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c2155943896ac78b9b0fd910fb381186d0c345911f5333ee46ac44c8f0e43ab"}, + {file = "coverage-7.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:54f7e9705e14b2c9f6abdeb127c390f679f6dbe64ba732788d3015f7f76ef637"}, + {file = "coverage-7.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ee30375b409d9a7ea0f30c50645d436b6f5dfee254edffd27e45a980ad2c7f4"}, + {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b78729038abea6a5df0d2708dce21e82073463b2d79d10884d7d591e0f385ded"}, + {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13250b1f0bd023e0c9f11838bdeb60214dd5b6aaf8e8d2f110c7e232a1bff83b"}, + {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c407b1950b2d2ffa091f4e225ca19a66a9bd81222f27c56bd12658fc5ca1209"}, + {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c76a3075e96b9c9ff00df8b5f7f560f5634dffd1658bafb79eb2682867e94f78"}, + {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f26648e1b3b03b6022b48a9b910d0ae209e2d51f50441db5dce5b530fad6d9b1"}, + {file = "coverage-7.0.5-cp39-cp39-win32.whl", hash = "sha256:ba3027deb7abf02859aca49c865ece538aee56dcb4871b4cced23ba4d5088904"}, + {file = "coverage-7.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:949844af60ee96a376aac1ded2a27e134b8c8d35cc006a52903fc06c24a3296f"}, + {file = "coverage-7.0.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:b9727ac4f5cf2cbf87880a63870b5b9730a8ae3a4a360241a0fdaa2f71240ff0"}, + {file = "coverage-7.0.5.tar.gz", hash = "sha256:051afcbd6d2ac39298d62d340f94dbb6a1f31de06dfaf6fcef7b759dd3860c45"}, +] +distlib = [ + {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, + {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, +] +filelock = [ + {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, + {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, +] +flake8 = [ + {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, + {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, +] +flynt = [ + {file = "flynt-0.76-py3-none-any.whl", hash = "sha256:fc122c5f589b0c4d019d7d33597f4925fd886a8e6fb3cbadb918e4baa3661687"}, + {file = "flynt-0.76.tar.gz", hash = "sha256:7a99c5a550ea9e8c21203f6999ed8ce69cbad7bc8465268469777cf06413193a"}, +] +identify = [ + {file = "identify-2.5.3-py2.py3-none-any.whl", hash = "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893"}, + {file = "identify-2.5.3.tar.gz", hash = "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44"}, +] +idna = [ + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, +] +importlib-metadata = [ + {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, + {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, +] +importlib-resources = [ + {file = "importlib_resources-5.9.0-py3-none-any.whl", hash = "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7"}, + {file = "importlib_resources-5.9.0.tar.gz", hash = "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +isort = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] +jsonschema = [ + {file = "jsonschema-4.15.0-py3-none-any.whl", hash = "sha256:2df0fab225abb3b41967bb3a46fd37dc74b1536b5296d0b1c2078cd072adf0f7"}, + {file = "jsonschema-4.15.0.tar.gz", hash = "sha256:21f4979391bdceb044e502fd8e79e738c0cdfbdc8773f9a49b5769461e82fe1e"}, +] +jsonschema-spec = [ + {file = "jsonschema-spec-0.1.1.tar.gz", hash = "sha256:2eaf5d20c017921950df53d898e0e85029901d83c28730f0fa20813648c7af22"}, + {file = "jsonschema_spec-0.1.1-py3-none-any.whl", hash = "sha256:5fa06f740d81de4a46d51ffb847ea381d09c4a5872bf0f17d7e0d4bd862d687b"}, +] +lazy-object-proxy = [ + {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, + {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, +] +mccabe = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] +mypy = [ + {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, + {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, + {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, + {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, + {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, + {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, + {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, + {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, + {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, + {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, + {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, + {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, + {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, + {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, + {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, + {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, + {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, + {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, + {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +nodeenv = [ + {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, + {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, +] +openapi-schema-validator = [ + {file = "openapi_schema_validator-0.4.2-py3-none-any.whl", hash = "sha256:a7978f231244e167819607e15f821546a381e469577de47428cb3fe5af59c737"}, + {file = "openapi_schema_validator-0.4.2.tar.gz", hash = "sha256:6613714d6a9aee10b4268c47ba85b5b0b3ce87ac0e51e6b290e837994a6c61b7"}, +] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pathable = [ + {file = "pathable-0.4.3-py3-none-any.whl", hash = "sha256:cdd7b1f9d7d5c8b8d3315dbf5a86b2596053ae845f056f57d97c0eefff84da14"}, + {file = "pathable-0.4.3.tar.gz", hash = "sha256:5c869d315be50776cc8a993f3af43e0c60dc01506b399643f919034ebf4cdcab"}, +] +pathspec = [ + {file = "pathspec-0.10.0-py3-none-any.whl", hash = "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015"}, + {file = "pathspec-0.10.0.tar.gz", hash = "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85"}, +] +pkgutil-resolve-name = [ + {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, + {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, +] +platformdirs = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +pre-commit = [ + {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, + {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pycodestyle = [ + {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, + {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, +] +pyflakes = [ + {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, + {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, +] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] +pyrsistent = [ + {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, + {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, + {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, + {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, +] +pytest = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] +pytest-cov = [ + {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, + {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, +] +pytest-flake8 = [ + {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, + {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, +] +pyyaml = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] +setuptools = [ + {file = "setuptools-67.0.0-py3-none-any.whl", hash = "sha256:9d790961ba6219e9ff7d9557622d2fe136816a264dd01d5997cfc057d804853d"}, + {file = "setuptools-67.0.0.tar.gz", hash = "sha256:883131c5b6efa70b9101c7ef30b2b7b780a4283d5fc1616383cdf22c83cbefe6"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tomli = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] +tox = [ + {file = "tox-3.25.1-py2.py3-none-any.whl", hash = "sha256:c38e15f4733683a9cc0129fba078633e07eb0961f550a010ada879e95fb32632"}, + {file = "tox-3.25.1.tar.gz", hash = "sha256:c138327815f53bc6da4fe56baec5f25f00622ae69ef3fe4e1e385720e22486f9"}, +] +typed-ast = [ + {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, + {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, + {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, + {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, + {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, + {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, + {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, + {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, + {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, +] +typing-extensions = [ + {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, + {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, +] +urllib3 = [ + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, +] +virtualenv = [ + {file = "virtualenv-20.16.4-py3-none-any.whl", hash = "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22"}, + {file = "virtualenv-20.16.4.tar.gz", hash = "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782"}, +] +zipp = [ + {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, + {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, +] diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index 8f3b675..cae8140 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -454,11 +454,7 @@ def test_parameter_custom_format_checker_not_found(self, validator_v30): errors = validator_v30.iter_errors(spec) errors_list = list(errors) - assert len(errors_list) == 1 - assert errors_list[0].__class__ == OpenAPIValidationError - assert errors_list[0].message == ( - "Format checker for 'custom' format not found" - ) + assert errors_list == [] def test_parameter_default_value_custom_format_invalid(self, validator_v30): from openapi_schema_validator import oas30_format_checker From a379748937b3b82dc032bd74c7f04856a855b134 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 1 Feb 2023 08:20:30 +0000 Subject: [PATCH 141/371] property missing reference fix --- openapi_spec_validator/validation/validators.py | 9 +++++++++ .../data/v3.0/property-missing-reference.yaml | 16 ++++++++++++++++ tests/integration/validation/test_validators.py | 14 ++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 tests/integration/data/v3.0/property-missing-reference.yaml diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index b1bd835..db4b3d7 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -248,6 +248,7 @@ def _iter_schema_errors( if not hasattr(schema.content(), "__getitem__"): return + schema_type = schema.getkey("type") nested_properties = [] if "allOf" in schema: all_of = schema / "allOf" @@ -292,6 +293,14 @@ def _iter_schema_errors( require_properties=False, ) + if "properties" in schema: + props = schema /"properties" + for _, prop_schema in props.items(): + yield from self._iter_schema_errors( + prop_schema, + require_properties=False, + ) + required = schema.getkey("required", []) properties = schema.get("properties", {}).keys() if "allOf" in schema: diff --git a/tests/integration/data/v3.0/property-missing-reference.yaml b/tests/integration/data/v3.0/property-missing-reference.yaml new file mode 100644 index 0000000..d6fbb07 --- /dev/null +++ b/tests/integration/data/v3.0/property-missing-reference.yaml @@ -0,0 +1,16 @@ +openapi: 3.0.0 +info: + version: '1.0.0' + title: 'Some Schema' +paths: {} +components: + schemas: + SomeDataType: + type: object + properties: + id: + type: integer + prop1: + $ref: '' + prop2: + type: string \ No newline at end of file diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 10302b9..0112777 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -89,6 +89,20 @@ def test_failed(self, factory, validator_v30, spec_file): with pytest.raises(OpenAPIValidationError): validator_v30.validate(spec, spec_url=spec_url) + @pytest.mark.parametrize( + "spec_file", + [ + "property-missing-reference.yaml", + ], + ) + def test_ref_failed(self, factory, validator_v30, spec_file): + spec_path = self.local_test_suite_file_path(spec_file) + spec = factory.spec_from_file(spec_path) + spec_url = factory.spec_file_url(spec_path) + + with pytest.raises(RefResolutionError): + validator_v30.validate(spec, spec_url=spec_url) + @pytest.mark.network class TestRemoteOpenAPIv30Validator: From ee153b2d6e9687a2caf063de3b3da843ebb06c2a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 1 Feb 2023 08:29:46 +0000 Subject: [PATCH 142/371] Version 0.5.3 --- .bumpversion.cfg | 3 +-- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 59ecd39..f0f16d3 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.2 +current_version = 0.5.3 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) @@ -15,4 +15,3 @@ message = Version {new_version} [bumpversion:file:pyproject.toml] search = version = "{current_version}" replace = version = "{new_version}" - diff --git a/Dockerfile b/Dockerfile index 15b3277..1c6e4cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.2 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.3 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 5076c9b..34ea3a1 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.2" +__version__ = "0.5.3" __url__ = "https://github.com/p1c2u/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index 72dea98..9924599 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.2" +version = "0.5.3" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 37db3bf5eb0263e3c2c715dfa68a47ca6e09606d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 2 Feb 2023 04:43:35 +0000 Subject: [PATCH 143/371] schema properties validation recursion fix --- openapi_spec_validator/schemas/utils.py | 7 +++++-- openapi_spec_validator/validation/validators.py | 11 +++++++++-- .../data/v3.0/property-recursive.yaml | 16 ++++++++++++++++ tests/integration/validation/test_exceptions.py | 8 ++++---- tests/integration/validation/test_validators.py | 1 + 5 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 tests/integration/data/v3.0/property-recursive.yaml diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index d3d2fba..30c99a1 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -7,9 +7,12 @@ from typing import Tuple if sys.version_info >= (3, 9): - from importlib.resources import as_file, files + from importlib.resources import as_file + from importlib.resources import files else: - from importlib_resources import as_file, files + from importlib_resources import as_file + from importlib_resources import files + from jsonschema_spec.readers import FilePathReader diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index db4b3d7..2e2d892 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -65,6 +65,7 @@ def __init__( self.resolver_handlers = resolver_handlers self.operation_ids_registry: Optional[List[str]] = None + self.schema_ids_registry: Optional[List[int]] = None self.resolver = None def validate( @@ -82,6 +83,7 @@ def iter_errors( self, instance: Mapping[Hashable, Any], spec_url: str = "" ) -> Iterator[ValidationError]: self.operation_ids_registry = [] + self.schema_ids_registry = [] self.resolver = self._get_resolver(spec_url, instance) yield from self.schema_validator.iter_errors(instance) @@ -248,7 +250,12 @@ def _iter_schema_errors( if not hasattr(schema.content(), "__getitem__"): return - schema_type = schema.getkey("type") + assert self.schema_ids_registry is not None + schema_id = id(schema.content()) + if schema_id in self.schema_ids_registry: + return + self.schema_ids_registry.append(schema_id) + nested_properties = [] if "allOf" in schema: all_of = schema / "allOf" @@ -294,7 +301,7 @@ def _iter_schema_errors( ) if "properties" in schema: - props = schema /"properties" + props = schema / "properties" for _, prop_schema in props.items(): yield from self._iter_schema_errors( prop_schema, diff --git a/tests/integration/data/v3.0/property-recursive.yaml b/tests/integration/data/v3.0/property-recursive.yaml new file mode 100644 index 0000000..c1d704b --- /dev/null +++ b/tests/integration/data/v3.0/property-recursive.yaml @@ -0,0 +1,16 @@ +openapi: 3.0.0 +info: + version: '1.0.0' + title: 'Some Schema' +paths: {} +components: + schemas: + SomeDataType: + type: object + properties: + id: + type: integer + prop1: + $ref: '#/components/schemas/SomeDataType' + prop2: + type: string \ No newline at end of file diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index cae8140..129e0f1 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -456,7 +456,9 @@ def test_parameter_custom_format_checker_not_found(self, validator_v30): errors_list = list(errors) assert errors_list == [] - def test_parameter_default_value_custom_format_invalid(self, validator_v30): + def test_parameter_default_value_custom_format_invalid( + self, validator_v30 + ): from openapi_schema_validator import oas30_format_checker @oas30_format_checker.checks("custom") @@ -498,6 +500,4 @@ def validate(to_validate) -> bool: errors_list = list(errors) assert len(errors_list) == 1 assert errors_list[0].__class__ == OpenAPIValidationError - assert errors_list[0].message == ( - "'invalid' is not a 'custom'" - ) + assert errors_list[0].message == ("'invalid' is not a 'custom'") diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 0112777..680d883 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -66,6 +66,7 @@ def local_test_suite_file_path(self, test_file): "petstore.yaml", "petstore-separate/spec/openapi.yaml", "parent-reference/openapi.yaml", + "property-recursive.yaml", ], ) def test_valid(self, factory, validator_v30, spec_file): From 7c4795f04ee14336ad80cb087dbce9b1b749ffb4 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 2 Feb 2023 05:01:30 +0000 Subject: [PATCH 144/371] Version 0.5.4 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index f0f16d3..178a071 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.3 +current_version = 0.5.4 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 1c6e4cd..8610634 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.3 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.4 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 34ea3a1..5f09f6f 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.3" +__version__ = "0.5.4" __url__ = "https://github.com/p1c2u/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index 9924599..4cebf1e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.3" +version = "0.5.4" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 32e062117e7975723577d14bd8dce770b8f9543f Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 4 Feb 2023 03:16:00 +0000 Subject: [PATCH 145/371] update openapi-schema-validator dependecy --- poetry.lock | 29 +++++++++++++++++++++-------- pyproject.toml | 2 +- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 7b35c91..d74595a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -321,7 +321,7 @@ setuptools = "*" [[package]] name = "openapi-schema-validator" -version = "0.4.2" +version = "0.4.3" description = "OpenAPI schema validation for Python" category = "main" optional = false @@ -329,9 +329,7 @@ python-versions = ">=3.7.0,<4.0.0" [package.dependencies] jsonschema = ">=4.0.0,<5.0.0" - -[package.extras] -rfc3339-validator = ["rfc3339-validator"] +rfc3339-validator = "*" [[package]] name = "packaging" @@ -530,6 +528,17 @@ urllib3 = ">=1.21.1,<1.27" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +six = "*" + [[package]] name = "setuptools" version = "67.0.0" @@ -547,7 +556,7 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" @@ -656,7 +665,7 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "d9d3187d17f169b89be14752bfd772c7261bac388f5d4c698fdd674184d7f2d4" +content-hash = "dec116bcea5b97bdc9e91563d2d8e24107bd3fa66056f133cc2d08a24143cf71" [metadata.files] astor = [ @@ -893,8 +902,8 @@ nodeenv = [ {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, ] openapi-schema-validator = [ - {file = "openapi_schema_validator-0.4.2-py3-none-any.whl", hash = "sha256:a7978f231244e167819607e15f821546a381e469577de47428cb3fe5af59c737"}, - {file = "openapi_schema_validator-0.4.2.tar.gz", hash = "sha256:6613714d6a9aee10b4268c47ba85b5b0b3ce87ac0e51e6b290e837994a6c61b7"}, + {file = "openapi_schema_validator-0.4.3-py3-none-any.whl", hash = "sha256:f1eff2a7936546a3ce62b88a17d09de93c9bd229cbc43cb696c988a61a382548"}, + {file = "openapi_schema_validator-0.4.3.tar.gz", hash = "sha256:6940dba9f4906c97078fea6fd9d5a3a3384207db368c4e32f6af6abd7c5c560b"}, ] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, @@ -1021,6 +1030,10 @@ requests = [ {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, ] +rfc3339-validator = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] setuptools = [ {file = "setuptools-67.0.0-py3-none-any.whl", hash = "sha256:9d790961ba6219e9ff7d9557622d2fe136816a264dd01d5997cfc057d804853d"}, {file = "setuptools-67.0.0.tar.gz", hash = "sha256:883131c5b6efa70b9101c7ef30b2b7b780a4283d5fc1616383cdf22c83cbefe6"}, diff --git a/pyproject.toml b/pyproject.toml index 4cebf1e..dc0dc5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ classifiers = [ [tool.poetry.dependencies] jsonschema = "^4.0.0" -openapi-schema-validator = ">=0.3.2,<0.5" +openapi-schema-validator = "^0.4.2" python = "^3.7.0" requests = {version = "*", optional = true} importlib-resources = {version = "^5.8.0", python = "<3.9" } From e798c5af68bd7d2efc1484a876e26bdb82d245fd Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 6 Feb 2023 05:55:27 +0000 Subject: [PATCH 146/371] Version 0.5.5 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 178a071..2a76766 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.4 +current_version = 0.5.5 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 8610634..bbef023 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.4 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.5 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 5f09f6f..7bc9316 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.4" +__version__ = "0.5.5" __url__ = "https://github.com/p1c2u/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index dc0dc5f..2d52dd1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.4" +version = "0.5.5" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From ce94d74b9d0b6a3311ff9b5d353e5235849404a0 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Tue, 21 Feb 2023 06:35:23 +0000 Subject: [PATCH 147/371] documentation improvements --- .github/workflows/build-docs.yml | 54 ++++ .github/workflows/python-test.yml | 6 +- .readthedocs.yaml | 14 + CONTRIBUTING.rst | 1 + README.rst | 82 ++---- docs/cli.rst | 49 ++++ docs/conf.py | 64 +++++ docs/contributing.rst | 76 ++++++ docs/hook.rst | 23 ++ docs/index.rst | 105 ++++++++ docs/make.bat | 35 +++ docs/python.rst | 57 +++++ poetry.lock | 410 +++++++++++++++++++++++++++++- pyproject.toml | 7 + 14 files changed, 915 insertions(+), 68 deletions(-) create mode 100644 .github/workflows/build-docs.yml create mode 100644 .readthedocs.yaml create mode 100644 CONTRIBUTING.rst create mode 100644 docs/cli.rst create mode 100644 docs/conf.py create mode 100644 docs/contributing.rst create mode 100644 docs/hook.rst create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/python.rst diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml new file mode 100644 index 0000000..66dfd41 --- /dev/null +++ b/.github/workflows/build-docs.yml @@ -0,0 +1,54 @@ +name: Build documentation + +on: + push: + pull_request: + types: [opened, synchronize] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: 3.9 + + - name: Get full Python version + id: full-python-version + run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") + + - name: Bootstrap poetry + run: | + curl -sL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python - -y + echo "$HOME/.local/bin" >> $GITHUB_PATH + + - name: Configure poetry + run: poetry config virtualenvs.in-project true + + - name: Set up cache + uses: actions/cache@v2 + id: cache + with: + path: .venv + key: venv-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} + + - name: Ensure cache is healthy + if: steps.cache.outputs.cache-hit == 'true' + run: timeout 10s poetry run pip --version || rm -rf .venv + + - name: Install dependencies + run: poetry install -E docs + + - name: Build documentation + run: | + poetry run python -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs docs/_build/html -n -W + + - uses: actions/upload-artifact@v2 + name: Upload docs as artifact + with: + name: docs-html + path: './docs/_build/html' + if-no-files-found: error diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 94eb53f..7c76d71 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -29,10 +29,8 @@ jobs: id: full-python-version run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - - name: Bootstrap poetry - run: | - python -m pip install --upgrade pip - pip install "poetry<1.2" + - name: Set up poetry + uses: Gr1N/setup-poetry@v8 - name: Configure poetry run: poetry config virtualenvs.in-project true diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..1efe11c --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,14 @@ +version: 2 + +sphinx: + configuration: docs/conf.py + +formats: all + +python: + version: 3.8 + install: + - method: pip + path: . + extra_requirements: + - docs diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..6f67057 --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1 @@ +Please read the `Contributing `__ guidelines in the documentation site. diff --git a/README.rst b/README.rst index 7947abb..748fa95 100644 --- a/README.rst +++ b/README.rst @@ -25,54 +25,61 @@ against the `OpenAPI 2.0 (aka Swagger) and `OpenAPI 3.1 `__ specification. The validator aims to check for full compliance with the Specification. + +Documentation +############# + +Check documentation to see more details about the features. All documentation is in the "docs" directory and online at `openapi-spec-validator.readthedocs.io `__ + + Installation ############ -:: +.. code-block:: console - $ pip install openapi-spec-validator + pip install openapi-spec-validator Alternatively you can download the code and install from the repository: .. code-block:: bash - $ pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator + pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator Usage ##### -Command Line Interface -********************** +CLI (Command Line Interface) +**************************** Straight forward way: -.. code:: bash +.. code-block:: bash - $ openapi-spec-validator openapi.yaml + openapi-spec-validator openapi.yaml pipes way: -.. code:: bash +.. code-block:: bash - $ cat openapi.yaml | openapi-spec-validator - + cat openapi.yaml | openapi-spec-validator - docker way: -.. code:: bash +.. code-block:: bash - $ docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml + docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml or more pythonic way: -.. code:: bash +.. code-block:: bash - $ python -m openapi_spec_validator openapi.yaml + python -m openapi_spec_validator openapi.yaml -Examples -******** +For more details, read about `CLI (Command Line Interface) `__. -By default, OpenAPI spec version is detected. To validate spec: +Python package +************** .. code:: python @@ -89,53 +96,18 @@ By default, OpenAPI spec version is detected. To validate spec: Traceback (most recent call last): ... OpenAPIValidationError: 'info' is a required property - -Add ``spec_url`` to validate spec with relative files: - -.. code:: python - - validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml') - -You can also validate spec from url: - -.. code:: python - - from openapi_spec_validator import validate_spec_url - - # If no exception is raised by validate_spec_url(), the spec is valid. - validate_spec_url('http://example.com/openapi.json') - -In order to explicitly validate a: - -* Swagger / OpenAPI 2.0 spec, import ``openapi_v2_spec_validator`` -* OpenAPI 3.0 spec, import ``openapi_v30_spec_validator`` -* OpenAPI 3.1 spec, import ``openapi_v31_spec_validator`` - -and pass the validator to ``validate_spec`` or ``validate_spec_url`` function: - -.. code:: python - - validate_spec(spec_dict, validator=openapi_v31_spec_validator) - -You can also explicitly import ``openapi_v3_spec_validator`` which is a shortcut to the latest v3 release. - -If you want to iterate through validation errors: - -.. code:: python - - from openapi_spec_validator import openapi_v3_spec_validator - errors_iterator = openapi_v3_spec_validator.iter_errors(spec) +For more details, read about `Python package `__. Related projects ################ * `openapi-core `__ - Python library that adds client-side and server-side support for the OpenAPI. + Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification. * `openapi-schema-validator `__ - Python library that validates schema against the OpenAPI Schema Specification v3.0. + Python library that validates schema against the OpenAPI Schema Specification v3.0 and OpenAPI Schema Specification v3.1. License ####### -Copyright (c) 2017-2022, Artur Maciag, All rights reserved. Apache v2 +Copyright (c) 2017-2023, Artur Maciag, All rights reserved. Apache v2 diff --git a/docs/cli.rst b/docs/cli.rst new file mode 100644 index 0000000..4be0077 --- /dev/null +++ b/docs/cli.rst @@ -0,0 +1,49 @@ +CLI (Command Line Interface) +============================ + +.. md-tab-set:: + + .. md-tab-item:: Executable + + Straight forward way: + + .. code-block:: bash + + openapi-spec-validator openapi.yaml + + pipes way: + + .. code-block:: bash + + cat openapi.yaml | openapi-spec-validator - + + .. md-tab-item:: Docker + + .. code-block:: bash + + docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml + + .. md-tab-item:: Python interpreter + + .. code-block:: bash + + python -m openapi_spec_validator openapi.yaml + +.. code-block:: bash + + usage: openapi-spec-validator [-h] [--errors {best-match,all}] + [--schema {2.0,3.0.0,3.1.0,detect}] + filename + + positional arguments: + filename Absolute or relative path to file + + options: + -h, --help show this help message and exit + --errors {best-match,all} + Control error reporting. Defaults to "best- + match", use "all" to get all subschema + errors. + --schema {2.0,3.0.0,3.1.0,detect} + OpenAPI schema (default: detect) + diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..25085a0 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,64 @@ +import openapi_spec_validator + +project = "openapi-spec-validator" +copyright = "2023, Artur Maciag" +author = "Artur Maciag" + +release = openapi_spec_validator.__version__ + +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.viewcode", + "sphinx_immaterial", +] + +templates_path = ["_templates"] + +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +html_theme = "sphinx_immaterial" + +html_static_path = [] + +html_title = "openapi-spec-validator" + +html_theme_options = { + "analytics": { + "provider": "google", + "property": "G-SWHTV603PN", + }, + "repo_url": "https://github.com/p1c2u/openapi-spec-validator/", + "repo_name": "openapi-spec-validator", + "repo_type": "github", + "icon": { + "repo": "fontawesome/brands/github-alt", + "edit": "material/file-edit-outline", + }, + "palette": [ + { + "media": "(prefers-color-scheme: dark)", + "scheme": "slate", + "primary": "lime", + "accent": "amber", + "scheme": "slate", + "toggle": { + "icon": "material/toggle-switch", + "name": "Switch to light mode", + }, + }, + { + "media": "(prefers-color-scheme: light)", + "scheme": "default", + "primary": "lime", + "accent": "amber", + "toggle": { + "icon": "material/toggle-switch-off-outline", + "name": "Switch to dark mode", + }, + }, + ], + "globaltoc_collapse": False, +} diff --git a/docs/contributing.rst b/docs/contributing.rst new file mode 100644 index 0000000..3137c0b --- /dev/null +++ b/docs/contributing.rst @@ -0,0 +1,76 @@ +Contributing +============ + +Firstly, thank you all for taking the time to contribute. + +The following section describes how you can contribute to the openapi-spec-validator project on GitHub. + +Reporting bugs +-------------- + +Before you report +^^^^^^^^^^^^^^^^^ + +* Check whether your issue does not already exist in the `Issue tracker `__. +* Make sure it is not a support request or question better suited for `Discussion board `__. + +How to submit a report +^^^^^^^^^^^^^^^^^^^^^^ + +* Include clear title. +* Describe your runtime environment with exact versions you use. +* Describe the exact steps which reproduce the problem, including minimal code snippets. +* Describe the behavior you observed after following the steps, pasting console outputs. +* Describe expected behavior to see and why, including links to documentations. + +Code contribution +----------------- + +Prerequisites +^^^^^^^^^^^^^ + +Install `Poetry `__ by following the `official installation instructions `__. Optionally (but recommended), configure Poetry to create a virtual environment in a folder named ``.venv`` within the root directory of the project: + +.. code-block:: console + + poetry config virtualenvs.in-project true + +Setup +^^^^^ + +To create a development environment and install the runtime and development dependencies, run: + +.. code-block:: console + + poetry install + +Then enter the virtual environment created by Poetry: + +.. code-block:: console + + poetry shell + +Static checks +^^^^^^^^^^^^^ + +The project uses static checks using fantastic `pre-commit `__. Every change is checked on CI and if it does not pass the tests it cannot be accepted. If you want to check locally then run following command to install pre-commit. + +To turn on pre-commit checks for commit operations in git, enter: + +.. code-block:: console + + pre-commit install + +To run all checks on your staged files, enter: + +.. code-block:: console + + pre-commit run + +To run all checks on all files, enter: + +.. code-block:: console + + pre-commit run --all-files + +Pre-commit check results are also attached to your PR through integration with Github Action. diff --git a/docs/hook.rst b/docs/hook.rst new file mode 100644 index 0000000..670d094 --- /dev/null +++ b/docs/hook.rst @@ -0,0 +1,23 @@ +pre-commit hook +=============== + +`pre-commit `__ is a framework for building and running `git hooks `__. + +This document describes available pre-commit hook provided by openapi-spec-validator. + +Usage +----- + +The ``openapi-spec-validator`` hook calls the openapi-spec-validator command to make sure the specification does not get committed in a broken state. For more information see the :doc:`cli`. + +A full .pre-commit-config.yaml example you can use in your repository: + +.. code-block:: yaml + + repos: + - repo: https://github.com/p1c2u/openapi-spec-validator + rev: 0.5.5 # The version to use or 'master' for latest + hooks: + - id: openapi-spec-validator + +For more information on how to use pre-commit please see the official `documentation `__. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..fc6aa3b --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,105 @@ +openapi-spec-validator +====================== + +.. toctree:: + :hidden: + :maxdepth: 2 + + cli + python + hook + contributing + +OpenAPI Spec Validator is a Python library that validates OpenAPI Specs +against the `OpenAPI 2.0 (aka Swagger) +`__, +`OpenAPI 3.0 `__ +and `OpenAPI 3.1 `__ +specification. The validator aims to check for full compliance with the Specification. + +Installation +------------ + +.. md-tab-set:: + + .. md-tab-item:: Pip + PyPI (recommented) + + .. code-block:: console + + pip install openapi-spec-validator + + .. md-tab-item:: Pip + the source + + .. code-block:: console + + pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator + +Usage +----- + +.. md-tab-set:: + + .. md-tab-item:: CLI (Command Line Interface) + + .. md-tab-set:: + + .. md-tab-item:: Executable + + Straight forward way: + + .. code-block:: bash + + openapi-spec-validator openapi.yaml + + pipes way: + + .. code-block:: bash + + cat openapi.yaml | openapi-spec-validator - + + .. md-tab-item:: Docker + + .. code-block:: bash + + docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml + + .. md-tab-item:: Python interpreter + + .. code-block:: bash + + python -m openapi_spec_validator openapi.yaml + + Read more about the :doc:`cli`. + + .. md-tab-item:: Python package + + .. code-block:: python + + from openapi_spec_validator import validate_spec + from openapi_spec_validator.readers import read_from_filename + + spec_dict, spec_url = read_from_filename('openapi.yaml') + + # If no exception is raised by validate_spec(), the spec is valid. + validate_spec(spec_dict) + + validate_spec({'openapi': '3.1.0'}) + + Traceback (most recent call last): + ... + OpenAPIValidationError: 'info' is a required property + + Read more about the :doc:`python`. + +Related projects +---------------- + +* `openapi-core `__ + Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification. +* `openapi-schema-validator `__ + Python library that validates schema against the OpenAPI Schema Specification v3.0 and OpenAPI Schema Specification v3.1. + +License +------- + +Copyright (c) 2017-2023, Artur Maciag, All rights reserved. Apache v2 diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..2119f51 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/python.rst b/docs/python.rst new file mode 100644 index 0000000..aa22442 --- /dev/null +++ b/docs/python.rst @@ -0,0 +1,57 @@ +Python package +============== + +By default, OpenAPI spec version is detected. To validate spec: + +.. code:: python + + from openapi_spec_validator import validate_spec + from openapi_spec_validator.readers import read_from_filename + + spec_dict, spec_url = read_from_filename('openapi.yaml') + + # If no exception is raised by validate_spec(), the spec is valid. + validate_spec(spec_dict) + + validate_spec({'openapi': '3.1.0'}) + + Traceback (most recent call last): + ... + OpenAPIValidationError: 'info' is a required property + +Add ``spec_url`` to validate spec with relative files: + +.. code:: python + + validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml') + +You can also validate spec from url: + +.. code:: python + + from openapi_spec_validator import validate_spec_url + + # If no exception is raised by validate_spec_url(), the spec is valid. + validate_spec_url('http://example.com/openapi.json') + +In order to explicitly validate a: + +* Swagger / OpenAPI 2.0 spec, import ``openapi_v2_spec_validator`` +* OpenAPI 3.0 spec, import ``openapi_v30_spec_validator`` +* OpenAPI 3.1 spec, import ``openapi_v31_spec_validator`` + +and pass the validator to ``validate_spec`` or ``validate_spec_url`` function: + +.. code:: python + + validate_spec(spec_dict, validator=openapi_v31_spec_validator) + +You can also explicitly import ``openapi_v3_spec_validator`` which is a shortcut to the latest v3 release. + +If you want to iterate through validation errors: + +.. code:: python + + from openapi_spec_validator import openapi_v3_spec_validator + + errors_iterator = openapi_v3_spec_validator.iter_errors(spec) diff --git a/poetry.lock b/poetry.lock index d74595a..a5b06ef 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,19 @@ +[[package]] +name = "alabaster" +version = "0.7.13" +description = "A configurable sidebar-enabled Sphinx theme" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" +optional = false +python-versions = "*" + [[package]] name = "astor" version = "0.8.1" @@ -28,6 +44,17 @@ docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +[[package]] +name = "babel" +version = "2.11.0" +description = "Internationalization utilities" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pytz = ">=2015.7" + [[package]] name = "black" version = "22.8.0" @@ -56,7 +83,7 @@ name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" -optional = true +optional = false python-versions = ">=3.6" [[package]] @@ -72,7 +99,7 @@ name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" -optional = true +optional = false python-versions = ">=3.6.0" [package.extras] @@ -94,7 +121,7 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} name = "colorama" version = "0.4.5" description = "Cross-platform colored terminal text." -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" @@ -120,6 +147,14 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "docutils" +version = "0.19" +description = "Docutils -- Python Documentation Utilities" +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "filelock" version = "3.8.0" @@ -174,9 +209,17 @@ name = "idna" version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" -optional = true +optional = false python-versions = ">=3.5" +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "importlib-metadata" version = "4.12.0" @@ -231,6 +274,20 @@ pipfile-deprecated-finder = ["pipreqs", "requirementslib"] plugins = ["setuptools"] requirements-deprecated-finder = ["pip-api", "pipreqs"] +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + [[package]] name = "jsonschema" version = "4.15.0" @@ -273,6 +330,14 @@ category = "main" optional = false python-versions = ">=3.6" +[[package]] +name = "markupsafe" +version = "2.1.2" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "mccabe" version = "0.6.1" @@ -335,7 +400,7 @@ rfc3339-validator = "*" name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" @@ -426,6 +491,21 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "pydantic" +version = "1.10.5" +description = "Data validation and settings management using python type hints" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + [[package]] name = "pyflakes" version = "2.3.1" @@ -434,11 +514,22 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "pygments" +version = "2.14.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +plugins = ["importlib-metadata"] + [[package]] name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "dev" +category = "main" optional = false python-versions = ">=3.6.8" @@ -502,6 +593,14 @@ python-versions = "*" flake8 = ">=3.5" pytest = ">=3.5" +[[package]] +name = "pytz" +version = "2022.7.1" +description = "World timezone definitions, modern and historical" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "pyyaml" version = "6.0" @@ -515,7 +614,7 @@ name = "requests" version = "2.28.1" description = "Python HTTP for Humans." category = "main" -optional = true +optional = false python-versions = ">=3.7, <4" [package.dependencies] @@ -560,6 +659,140 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "sphinx" +version = "5.3.0" +description = "Python documentation generator" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.14,<0.20" +imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.12" +requests = ">=2.5.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "types-requests", "types-typed-ast"] +test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] + +[[package]] +name = "sphinx-immaterial" +version = "0.11.0" +description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +appdirs = "*" +markupsafe = "*" +pydantic = "*" +requests = "*" +sphinx = ">=4.0" +typing-extensions = "*" + +[package.extras] +clang-format = ["clang-format"] +cpp = ["libclang"] +json = ["pyyaml"] +jsonschema-validation = ["jsonschema"] +keys = ["pymdown-extensions"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.0" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + [[package]] name = "toml" version = "0.10.2" @@ -620,7 +853,7 @@ name = "urllib3" version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" -optional = true +optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] @@ -660,14 +893,23 @@ testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>= [extras] dev = [] +docs = ["sphinx", "sphinx-immaterial"] requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "dec116bcea5b97bdc9e91563d2d8e24107bd3fa66056f133cc2d08a24143cf71" +content-hash = "0ca4b3efec83ed05ffa1e3885e96d4238ebf65b3071ed61f7e0bf10260828d41" [metadata.files] +alabaster = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] +appdirs = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] astor = [ {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, @@ -679,6 +921,10 @@ attrs = [ {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, ] +babel = [ + {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, + {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, +] black = [ {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, @@ -781,6 +1027,10 @@ distlib = [ {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, ] +docutils = [ + {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, + {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, +] filelock = [ {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, @@ -801,6 +1051,10 @@ idna = [ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] +imagesize = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] importlib-metadata = [ {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, @@ -817,6 +1071,10 @@ isort = [ {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, ] +jinja2 = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] jsonschema = [ {file = "jsonschema-4.15.0-py3-none-any.whl", hash = "sha256:2df0fab225abb3b41967bb3a46fd37dc74b1536b5296d0b1c2078cd072adf0f7"}, {file = "jsonschema-4.15.0.tar.gz", hash = "sha256:21f4979391bdceb044e502fd8e79e738c0cdfbdc8773f9a49b5769461e82fe1e"}, @@ -864,6 +1122,58 @@ lazy-object-proxy = [ {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, ] +markupsafe = [ + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, + {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, +] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, @@ -941,10 +1251,52 @@ pycodestyle = [ {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, ] +pydantic = [ + {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, + {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, + {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, + {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, + {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, + {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, + {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, + {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, + {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, + {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, + {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, + {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, + {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, + {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, + {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, + {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, + {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, + {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, + {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, + {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, + {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, + {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, + {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, + {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, + {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, + {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, + {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, + {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, + {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, + {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, + {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, + {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, + {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, + {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, + {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, + {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, +] pyflakes = [ {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, ] +pygments = [ + {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, + {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, +] pyparsing = [ {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, @@ -984,6 +1336,10 @@ pytest-flake8 = [ {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, ] +pytz = [ + {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, + {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, +] pyyaml = [ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, @@ -1042,6 +1398,42 @@ six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +snowballstemmer = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] +sphinx = [ + {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, + {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, +] +sphinx-immaterial = [ + {file = "sphinx_immaterial-0.11.0-py3-none-any.whl", hash = "sha256:2d4879a81b8f83863851b06cfa5e1bc89537c652c6af9824a1ec3e54cab6f863"}, + {file = "sphinx_immaterial-0.11.0.tar.gz", hash = "sha256:67416c77b39843923388b7c5fa5aa80381b120cb84e92921ca60a3e671644e9b"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] toml = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, diff --git a/pyproject.toml b/pyproject.toml index 2d52dd1..53793a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,9 +51,12 @@ requests = {version = "*", optional = true} importlib-resources = {version = "^5.8.0", python = "<3.9" } jsonschema-spec = "^0.1.1" lazy-object-proxy = "^1.7.1" +sphinx = {version = "^5.3.0", optional = true} +sphinx-immaterial = {version = "^0.11.0", optional = true} [tool.poetry.extras] dev = ["pre-commit"] +docs = ["sphinx", "sphinx-immaterial"] requests = ["requests"] [tool.poetry.dev-dependencies] @@ -70,6 +73,10 @@ flynt = "^0.76" [tool.poetry.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" +[tool.poetry.group.docs.dependencies] +sphinx = "^5.3.0" +sphinx-immaterial = "^0.11.0" + [tool.pytest.ini_options] addopts = """ --capture=no From 7698e298922ee3e80f02e48e5a9da52162a5d4b4 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 27 Feb 2023 06:50:49 +0000 Subject: [PATCH 148/371] Move to python-openapi org --- README.rst | 14 +++++++------- docs/conf.py | 2 +- docs/contributing.rst | 4 ++-- docs/hook.rst | 2 +- docs/index.rst | 6 +++--- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.rst b/README.rst index 748fa95..0efd7ec 100644 --- a/README.rst +++ b/README.rst @@ -4,10 +4,10 @@ OpenAPI Spec validator .. image:: https://img.shields.io/pypi/v/openapi-spec-validator.svg :target: https://pypi.python.org/pypi/openapi-spec-validator -.. image:: https://travis-ci.org/p1c2u/openapi-spec-validator.svg?branch=master - :target: https://travis-ci.org/p1c2u/openapi-spec-validator -.. image:: https://img.shields.io/codecov/c/github/p1c2u/openapi-spec-validator/master.svg?style=flat - :target: https://codecov.io/github/p1c2u/openapi-spec-validator?branch=master +.. image:: https://travis-ci.org/python-openapi/openapi-spec-validator.svg?branch=master + :target: https://travis-ci.org/python-openapi/openapi-spec-validator +.. image:: https://img.shields.io/codecov/c/github/python-openapi/openapi-spec-validator/master.svg?style=flat + :target: https://codecov.io/github/python-openapi/openapi-spec-validator?branch=master .. image:: https://img.shields.io/pypi/pyversions/openapi-spec-validator.svg :target: https://pypi.python.org/pypi/openapi-spec-validator .. image:: https://img.shields.io/pypi/format/openapi-spec-validator.svg @@ -43,7 +43,7 @@ Alternatively you can download the code and install from the repository: .. code-block:: bash - pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator + pip install -e git+https://github.com/python-openapi/openapi-spec-validator.git#egg=openapi_spec_validator Usage @@ -102,9 +102,9 @@ For more details, read about `Python package `__ +* `openapi-core `__ Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification. -* `openapi-schema-validator `__ +* `openapi-schema-validator `__ Python library that validates schema against the OpenAPI Schema Specification v3.0 and OpenAPI Schema Specification v3.1. License diff --git a/docs/conf.py b/docs/conf.py index 25085a0..b644a7f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -30,7 +30,7 @@ "provider": "google", "property": "G-SWHTV603PN", }, - "repo_url": "https://github.com/p1c2u/openapi-spec-validator/", + "repo_url": "https://github.com/python-openapi/openapi-spec-validator/", "repo_name": "openapi-spec-validator", "repo_type": "github", "icon": { diff --git a/docs/contributing.rst b/docs/contributing.rst index 3137c0b..ae9464f 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -11,8 +11,8 @@ Reporting bugs Before you report ^^^^^^^^^^^^^^^^^ -* Check whether your issue does not already exist in the `Issue tracker `__. -* Make sure it is not a support request or question better suited for `Discussion board `__. +* Check whether your issue does not already exist in the `Issue tracker `__. +* Make sure it is not a support request or question better suited for `Discussion board `__. How to submit a report ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/hook.rst b/docs/hook.rst index 670d094..5079078 100644 --- a/docs/hook.rst +++ b/docs/hook.rst @@ -15,7 +15,7 @@ A full .pre-commit-config.yaml example you can use in your repository: .. code-block:: yaml repos: - - repo: https://github.com/p1c2u/openapi-spec-validator + - repo: https://github.com/python-openapi/openapi-spec-validator rev: 0.5.5 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/docs/index.rst b/docs/index.rst index fc6aa3b..ca43e04 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -32,7 +32,7 @@ Installation .. code-block:: console - pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator + pip install -e git+https://github.com/python-openapi/openapi-spec-validator.git#egg=openapi_spec_validator Usage ----- @@ -94,9 +94,9 @@ Usage Related projects ---------------- -* `openapi-core `__ +* `openapi-core `__ Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification. -* `openapi-schema-validator `__ +* `openapi-schema-validator `__ Python library that validates schema against the OpenAPI Schema Specification v3.0 and OpenAPI Schema Specification v3.1. License diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 7bc9316..d9de6b9 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -9,7 +9,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" __version__ = "0.5.5" -__url__ = "https://github.com/p1c2u/openapi-spec-validator" +__url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" __all__ = [ diff --git a/pyproject.toml b/pyproject.toml index 53793a5..66f932a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" readme = "README.rst" -repository = "https://github.com/p1c2u/openapi-spec-validator" +repository = "https://github.com/python-openapi/openapi-spec-validator" keywords = ["openapi", "swagger", "schema"] classifiers = [ "Development Status :: 4 - Beta", From 4d405737f92aea3e3b2bc4fa2b84290433575379 Mon Sep 17 00:00:00 2001 From: Sam Mesterton-Gibbons Date: Tue, 7 Mar 2023 11:27:45 +0000 Subject: [PATCH 149/371] Fix typo in server variables schema for OAS 3.1.0 Fixes #197 --- openapi_spec_validator/resources/schemas/v3.1/schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/resources/schemas/v3.1/schema.json b/openapi_spec_validator/resources/schemas/v3.1/schema.json index 44fdbb9..b8302d2 100644 --- a/openapi_spec_validator/resources/schemas/v3.1/schema.json +++ b/openapi_spec_validator/resources/schemas/v3.1/schema.json @@ -189,7 +189,7 @@ "default": { "type": "string" }, - "descriptions": { + "description": { "type": "string" } }, From fb1bb55f20b2cc132e6c83a59c2adc35d3684584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 11 Mar 2023 11:09:00 +0100 Subject: [PATCH 150/371] Include tests in sdist archives Include the "tests" directory in sdist archives, to permit Linux distributions to use these archives instead of GitHub snapshots that are not reliable long-term. --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 66f932a..49a65b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,9 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Topic :: Software Development :: Libraries" ] +include = [ + {path = "tests", format = "sdist"}, +] [tool.poetry.dependencies] jsonschema = "^4.0.0" From afcf3b4be51320976173158f763a6542ba38a27d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 17 Mar 2023 07:00:42 +0000 Subject: [PATCH 151/371] jsonschema 4.17 dependency limit --- poetry.lock | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/poetry.lock b/poetry.lock index a5b06ef..0615f24 100644 --- a/poetry.lock +++ b/poetry.lock @@ -899,7 +899,7 @@ requests = ["requests"] [metadata] lock-version = "1.1" python-versions = "^3.7.0" -content-hash = "0ca4b3efec83ed05ffa1e3885e96d4238ebf65b3071ed61f7e0bf10260828d41" +content-hash = "ffbbac7c3f8cc9240f0819e88161dad1d4460bb27e346b6ca20aa6d83084434d" [metadata.files] alabaster = [ diff --git a/pyproject.toml b/pyproject.toml index 49a65b1..5369e22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,7 @@ include = [ ] [tool.poetry.dependencies] -jsonschema = "^4.0.0" +jsonschema = ">=4.0.0,<4.18.0" openapi-schema-validator = "^0.4.2" python = "^3.7.0" requests = {version = "*", optional = true} From 2a3c3d7afed1a980edc818f3fd1209e2c1647d4d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 17 Mar 2023 07:33:55 +0000 Subject: [PATCH 152/371] add python 3.11 support --- .github/workflows/python-test.yml | 2 +- pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 7c76d71..d6b8398 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] os: [windows-latest, ubuntu-latest] fail-fast: false steps: diff --git a/pyproject.toml b/pyproject.toml index 5369e22..32560b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,7 @@ classifiers = [ "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Software Development :: Libraries" ] include = [ From 928f80eed95fac11175b54f48256ed383d4e5859 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 17 Mar 2023 08:38:09 +0000 Subject: [PATCH 153/371] Version 0.5.6 --- .bumpversion.cfg | 3 ++- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 2a76766..16a3d1d 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.5 +current_version = 0.5.6 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) @@ -15,3 +15,4 @@ message = Version {new_version} [bumpversion:file:pyproject.toml] search = version = "{current_version}" replace = version = "{new_version}" + diff --git a/Dockerfile b/Dockerfile index bbef023..4be515a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.5 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.6 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index d9de6b9..05d5ffd 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.5" +__version__ = "0.5.6" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index 32560b6..608d4ea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.5" +version = "0.5.6" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 2acd5b346d2901930a0bcb95c7479d60354c579d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 17 Mar 2023 09:02:25 +0000 Subject: [PATCH 154/371] add docker hub badge --- README.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.rst b/README.rst index 0efd7ec..adce3a4 100644 --- a/README.rst +++ b/README.rst @@ -2,6 +2,8 @@ OpenAPI Spec validator ********************** +.. image:: https://img.shields.io/docker/v/p1c2u/openapi-spec-validator.svg?color=%23086DD7&label=docker%20hub&sort=semver + :target: https://hub.docker.com/r/p1c2u/openapi-spec-validator .. image:: https://img.shields.io/pypi/v/openapi-spec-validator.svg :target: https://pypi.python.org/pypi/openapi-spec-validator .. image:: https://travis-ci.org/python-openapi/openapi-spec-validator.svg?branch=master From 657ded7cfa28e5c812202c262736c3847c434ebc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 04:44:59 +0000 Subject: [PATCH 155/371] Bump requests from 2.28.1 to 2.31.0 Bumps [requests](https://github.com/psf/requests) from 2.28.1 to 2.31.0. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.28.1...v2.31.0) --- updated-dependencies: - dependency-name: requests dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- poetry.lock | 1242 +++++++++++++++++++++++++-------------------------- 1 file changed, 621 insertions(+), 621 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0615f24..1c240c1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,5 @@ +# This file is automatically @generated by Poetry and should not be changed by hand. + [[package]] name = "alabaster" version = "0.7.13" @@ -5,6 +7,10 @@ description = "A configurable sidebar-enabled Sphinx theme" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] [[package]] name = "appdirs" @@ -13,6 +19,10 @@ description = "A small Python module for determining appropriate platform-specif category = "main" optional = false python-versions = "*" +files = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] [[package]] name = "astor" @@ -21,6 +31,10 @@ description = "Read/rewrite/write Python ASTs" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +files = [ + {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, + {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, +] [[package]] name = "atomicwrites" @@ -29,6 +43,9 @@ description = "Atomic file writes." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] [[package]] name = "attrs" @@ -37,6 +54,10 @@ description = "Classes Without Boilerplate" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] [package.extras] dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] @@ -51,6 +72,10 @@ description = "Internationalization utilities" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, + {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, +] [package.dependencies] pytz = ">=2015.7" @@ -62,6 +87,31 @@ description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.6.2" +files = [ + {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, + {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, + {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, + {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, + {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, + {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, + {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, + {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, + {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, + {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, + {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, + {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, + {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, + {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, + {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, + {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, + {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, + {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, + {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, +] [package.dependencies] click = ">=8.0.0" @@ -85,6 +135,10 @@ description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] [[package]] name = "cfgv" @@ -93,6 +147,10 @@ description = "Validate configuration and produce human readable error messages. category = "dev" optional = true python-versions = ">=3.6.1" +files = [ + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, +] [[package]] name = "charset-normalizer" @@ -101,6 +159,10 @@ description = "The Real First Universal Charset Detector. Open, modern and activ category = "main" optional = false python-versions = ">=3.6.0" +files = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] [package.extras] unicode-backport = ["unicodedata2"] @@ -112,6 +174,10 @@ description = "Composable command line interface toolkit" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -124,6 +190,10 @@ description = "Cross-platform colored terminal text." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] [[package]] name = "coverage" @@ -132,6 +202,59 @@ description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "coverage-7.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2a7f23bbaeb2a87f90f607730b45564076d870f1fb07b9318d0c21f36871932b"}, + {file = "coverage-7.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c18d47f314b950dbf24a41787ced1474e01ca816011925976d90a88b27c22b89"}, + {file = "coverage-7.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef14d75d86f104f03dea66c13188487151760ef25dd6b2dbd541885185f05f40"}, + {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66e50680e888840c0995f2ad766e726ce71ca682e3c5f4eee82272c7671d38a2"}, + {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9fed35ca8c6e946e877893bbac022e8563b94404a605af1d1e6accc7eb73289"}, + {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d8d04e755934195bdc1db45ba9e040b8d20d046d04d6d77e71b3b34a8cc002d0"}, + {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e109f1c9a3ece676597831874126555997c48f62bddbcace6ed17be3e372de8"}, + {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0a1890fca2962c4f1ad16551d660b46ea77291fba2cc21c024cd527b9d9c8809"}, + {file = "coverage-7.0.5-cp310-cp310-win32.whl", hash = "sha256:be9fcf32c010da0ba40bf4ee01889d6c737658f4ddff160bd7eb9cac8f094b21"}, + {file = "coverage-7.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:cbfcba14a3225b055a28b3199c3d81cd0ab37d2353ffd7f6fd64844cebab31ad"}, + {file = "coverage-7.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:30b5fec1d34cc932c1bc04017b538ce16bf84e239378b8f75220478645d11fca"}, + {file = "coverage-7.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1caed2367b32cc80a2b7f58a9f46658218a19c6cfe5bc234021966dc3daa01f0"}, + {file = "coverage-7.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d254666d29540a72d17cc0175746cfb03d5123db33e67d1020e42dae611dc196"}, + {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19245c249aa711d954623d94f23cc94c0fd65865661f20b7781210cb97c471c0"}, + {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b05ed4b35bf6ee790832f68932baf1f00caa32283d66cc4d455c9e9d115aafc"}, + {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:29de916ba1099ba2aab76aca101580006adfac5646de9b7c010a0f13867cba45"}, + {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e057e74e53db78122a3979f908973e171909a58ac20df05c33998d52e6d35757"}, + {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:411d4ff9d041be08fdfc02adf62e89c735b9468f6d8f6427f8a14b6bb0a85095"}, + {file = "coverage-7.0.5-cp311-cp311-win32.whl", hash = "sha256:52ab14b9e09ce052237dfe12d6892dd39b0401690856bcfe75d5baba4bfe2831"}, + {file = "coverage-7.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:1f66862d3a41674ebd8d1a7b6f5387fe5ce353f8719040a986551a545d7d83ea"}, + {file = "coverage-7.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b69522b168a6b64edf0c33ba53eac491c0a8f5cc94fa4337f9c6f4c8f2f5296c"}, + {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436e103950d05b7d7f55e39beeb4d5be298ca3e119e0589c0227e6d0b01ee8c7"}, + {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c56bec53d6e3154eaff6ea941226e7bd7cc0d99f9b3756c2520fc7a94e6d96"}, + {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a38362528a9115a4e276e65eeabf67dcfaf57698e17ae388599568a78dcb029"}, + {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f67472c09a0c7486e27f3275f617c964d25e35727af952869dd496b9b5b7f6a3"}, + {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:220e3fa77d14c8a507b2d951e463b57a1f7810a6443a26f9b7591ef39047b1b2"}, + {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ecb0f73954892f98611e183f50acdc9e21a4653f294dfbe079da73c6378a6f47"}, + {file = "coverage-7.0.5-cp37-cp37m-win32.whl", hash = "sha256:d8f3e2e0a1d6777e58e834fd5a04657f66affa615dae61dd67c35d1568c38882"}, + {file = "coverage-7.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9e662e6fc4f513b79da5d10a23edd2b87685815b337b1a30cd11307a6679148d"}, + {file = "coverage-7.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:790e4433962c9f454e213b21b0fd4b42310ade9c077e8edcb5113db0818450cb"}, + {file = "coverage-7.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49640bda9bda35b057b0e65b7c43ba706fa2335c9a9896652aebe0fa399e80e6"}, + {file = "coverage-7.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d66187792bfe56f8c18ba986a0e4ae44856b1c645336bd2c776e3386da91e1dd"}, + {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:276f4cd0001cd83b00817c8db76730938b1ee40f4993b6a905f40a7278103b3a"}, + {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95304068686545aa368b35dfda1cdfbbdbe2f6fe43de4a2e9baa8ebd71be46e2"}, + {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:17e01dd8666c445025c29684d4aabf5a90dc6ef1ab25328aa52bedaa95b65ad7"}, + {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea76dbcad0b7b0deb265d8c36e0801abcddf6cc1395940a24e3595288b405ca0"}, + {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:50a6adc2be8edd7ee67d1abc3cd20678987c7b9d79cd265de55941e3d0d56499"}, + {file = "coverage-7.0.5-cp38-cp38-win32.whl", hash = "sha256:e4ce984133b888cc3a46867c8b4372c7dee9cee300335e2925e197bcd45b9e16"}, + {file = "coverage-7.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:4a950f83fd3f9bca23b77442f3a2b2ea4ac900944d8af9993743774c4fdc57af"}, + {file = "coverage-7.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c2155943896ac78b9b0fd910fb381186d0c345911f5333ee46ac44c8f0e43ab"}, + {file = "coverage-7.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:54f7e9705e14b2c9f6abdeb127c390f679f6dbe64ba732788d3015f7f76ef637"}, + {file = "coverage-7.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ee30375b409d9a7ea0f30c50645d436b6f5dfee254edffd27e45a980ad2c7f4"}, + {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b78729038abea6a5df0d2708dce21e82073463b2d79d10884d7d591e0f385ded"}, + {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13250b1f0bd023e0c9f11838bdeb60214dd5b6aaf8e8d2f110c7e232a1bff83b"}, + {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c407b1950b2d2ffa091f4e225ca19a66a9bd81222f27c56bd12658fc5ca1209"}, + {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c76a3075e96b9c9ff00df8b5f7f560f5634dffd1658bafb79eb2682867e94f78"}, + {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f26648e1b3b03b6022b48a9b910d0ae209e2d51f50441db5dce5b530fad6d9b1"}, + {file = "coverage-7.0.5-cp39-cp39-win32.whl", hash = "sha256:ba3027deb7abf02859aca49c865ece538aee56dcb4871b4cced23ba4d5088904"}, + {file = "coverage-7.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:949844af60ee96a376aac1ded2a27e134b8c8d35cc006a52903fc06c24a3296f"}, + {file = "coverage-7.0.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:b9727ac4f5cf2cbf87880a63870b5b9730a8ae3a4a360241a0fdaa2f71240ff0"}, + {file = "coverage-7.0.5.tar.gz", hash = "sha256:051afcbd6d2ac39298d62d340f94dbb6a1f31de06dfaf6fcef7b759dd3860c45"}, +] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} @@ -146,6 +269,10 @@ description = "Distribution utilities" category = "dev" optional = false python-versions = "*" +files = [ + {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, + {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, +] [[package]] name = "docutils" @@ -154,6 +281,10 @@ description = "Docutils -- Python Documentation Utilities" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, + {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, +] [[package]] name = "filelock" @@ -162,6 +293,10 @@ description = "A platform independent file lock." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, + {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, +] [package.extras] docs = ["furo (>=2022.6.21)", "sphinx (>=5.1.1)", "sphinx-autodoc-typehints (>=1.19.1)"] @@ -174,6 +309,10 @@ description = "the modular source code checker: pep8 pyflakes and co" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, + {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, +] [package.dependencies] importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} @@ -188,6 +327,10 @@ description = "CLI tool to convert a python project's %-formatted strings to f-s category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "flynt-0.76-py3-none-any.whl", hash = "sha256:fc122c5f589b0c4d019d7d33597f4925fd886a8e6fb3cbadb918e4baa3661687"}, + {file = "flynt-0.76.tar.gz", hash = "sha256:7a99c5a550ea9e8c21203f6999ed8ce69cbad7bc8465268469777cf06413193a"}, +] [package.dependencies] astor = "*" @@ -200,6 +343,10 @@ description = "File identification library for Python" category = "dev" optional = true python-versions = ">=3.7" +files = [ + {file = "identify-2.5.3-py2.py3-none-any.whl", hash = "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893"}, + {file = "identify-2.5.3.tar.gz", hash = "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44"}, +] [package.extras] license = ["ukkonen"] @@ -211,6 +358,10 @@ description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, +] [[package]] name = "imagesize" @@ -219,6 +370,10 @@ description = "Getting image size from png/jpeg/jpeg2000/gif file" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] [[package]] name = "importlib-metadata" @@ -227,6 +382,10 @@ description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, + {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, +] [package.dependencies] typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} @@ -244,6 +403,10 @@ description = "Read resources from Python packages" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "importlib_resources-5.9.0-py3-none-any.whl", hash = "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7"}, + {file = "importlib_resources-5.9.0.tar.gz", hash = "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681"}, +] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} @@ -259,6 +422,10 @@ description = "iniconfig: brain-dead simple config-ini parsing" category = "dev" optional = false python-versions = "*" +files = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] [[package]] name = "isort" @@ -267,6 +434,10 @@ description = "A Python utility / library to sort Python imports." category = "dev" optional = false python-versions = ">=3.6.1,<4.0" +files = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] [package.extras] colors = ["colorama (>=0.4.3,<0.5.0)"] @@ -281,6 +452,10 @@ description = "A very fast and expressive template engine." category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] [package.dependencies] MarkupSafe = ">=2.0" @@ -295,6 +470,10 @@ description = "An implementation of JSON Schema validation for Python" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "jsonschema-4.15.0-py3-none-any.whl", hash = "sha256:2df0fab225abb3b41967bb3a46fd37dc74b1536b5296d0b1c2078cd072adf0f7"}, + {file = "jsonschema-4.15.0.tar.gz", hash = "sha256:21f4979391bdceb044e502fd8e79e738c0cdfbdc8773f9a49b5769461e82fe1e"}, +] [package.dependencies] attrs = ">=17.4.0" @@ -315,6 +494,10 @@ description = "JSONSchema Spec with object-oriented paths" category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" +files = [ + {file = "jsonschema-spec-0.1.1.tar.gz", hash = "sha256:2eaf5d20c017921950df53d898e0e85029901d83c28730f0fa20813648c7af22"}, + {file = "jsonschema_spec-0.1.1-py3-none-any.whl", hash = "sha256:5fa06f740d81de4a46d51ffb847ea381d09c4a5872bf0f17d7e0d4bd862d687b"}, +] [package.dependencies] jsonschema = ">=4.0.0,<5.0.0" @@ -329,6 +512,45 @@ description = "A fast and thorough lazy object proxy." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, + {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, +] [[package]] name = "markupsafe" @@ -337,6 +559,58 @@ description = "Safely add untrusted strings to HTML/XML markup." category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, + {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, +] [[package]] name = "mccabe" @@ -345,6 +619,10 @@ description = "McCabe checker, plugin for flake8" category = "dev" optional = false python-versions = "*" +files = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] [[package]] name = "mypy" @@ -353,16 +631,41 @@ description = "Optional static typing for Python" category = "dev" optional = false python-versions = ">=3.6" - -[package.dependencies] -mypy-extensions = ">=0.4.3" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} -typing-extensions = ">=3.10" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -python2 = ["typed-ast (>=1.4.0,<2)"] +files = [ + {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, + {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, + {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, + {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, + {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, + {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, + {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, + {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, + {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, + {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, + {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, + {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, + {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, + {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, + {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, + {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, + {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, + {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, + {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, +] + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +python2 = ["typed-ast (>=1.4.0,<2)"] reports = ["lxml"] [[package]] @@ -372,6 +675,10 @@ description = "Experimental type system extensions for programs checked with the category = "dev" optional = false python-versions = "*" +files = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] [[package]] name = "nodeenv" @@ -380,6 +687,10 @@ description = "Node.js virtual environment builder" category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, + {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, +] [package.dependencies] setuptools = "*" @@ -391,6 +702,10 @@ description = "OpenAPI schema validation for Python" category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" +files = [ + {file = "openapi_schema_validator-0.4.3-py3-none-any.whl", hash = "sha256:f1eff2a7936546a3ce62b88a17d09de93c9bd229cbc43cb696c988a61a382548"}, + {file = "openapi_schema_validator-0.4.3.tar.gz", hash = "sha256:6940dba9f4906c97078fea6fd9d5a3a3384207db368c4e32f6af6abd7c5c560b"}, +] [package.dependencies] jsonschema = ">=4.0.0,<5.0.0" @@ -403,6 +718,10 @@ description = "Core utilities for Python packages" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] [package.dependencies] pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" @@ -414,6 +733,10 @@ description = "Object-oriented paths" category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" +files = [ + {file = "pathable-0.4.3-py3-none-any.whl", hash = "sha256:cdd7b1f9d7d5c8b8d3315dbf5a86b2596053ae845f056f57d97c0eefff84da14"}, + {file = "pathable-0.4.3.tar.gz", hash = "sha256:5c869d315be50776cc8a993f3af43e0c60dc01506b399643f919034ebf4cdcab"}, +] [[package]] name = "pathspec" @@ -422,6 +745,10 @@ description = "Utility library for gitignore style pattern matching of file path category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pathspec-0.10.0-py3-none-any.whl", hash = "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015"}, + {file = "pathspec-0.10.0.tar.gz", hash = "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85"}, +] [[package]] name = "pkgutil-resolve-name" @@ -430,6 +757,10 @@ description = "Resolve a name to an object." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, + {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, +] [[package]] name = "platformdirs" @@ -438,6 +769,10 @@ description = "A small Python module for determining appropriate platform-specif category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] [package.extras] docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] @@ -450,6 +785,10 @@ description = "plugin and hook calling mechanisms for python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] [package.dependencies] importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} @@ -465,6 +804,10 @@ description = "A framework for managing and maintaining multi-language pre-commi category = "dev" optional = true python-versions = ">=3.7" +files = [ + {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, + {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, +] [package.dependencies] cfgv = ">=2.0.0" @@ -482,6 +825,10 @@ description = "library with cross-python path, ini-parsing, io, code, log facili category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] [[package]] name = "pycodestyle" @@ -490,6 +837,10 @@ description = "Python style guide checker" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, + {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, +] [[package]] name = "pydantic" @@ -498,6 +849,44 @@ description = "Data validation and settings management using python type hints" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, + {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, + {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, + {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, + {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, + {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, + {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, + {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, + {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, + {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, + {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, + {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, + {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, + {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, + {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, + {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, + {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, + {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, + {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, + {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, + {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, + {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, + {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, + {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, + {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, + {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, + {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, + {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, + {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, + {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, + {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, + {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, + {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, + {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, + {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, + {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, +] [package.dependencies] typing-extensions = ">=4.2.0" @@ -513,6 +902,10 @@ description = "passive checker of Python programs" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, + {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, +] [[package]] name = "pygments" @@ -521,6 +914,10 @@ description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, + {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, +] [package.extras] plugins = ["importlib-metadata"] @@ -532,6 +929,10 @@ description = "pyparsing module - Classes and methods to define and execute pars category = "main" optional = false python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] @@ -543,6 +944,29 @@ description = "Persistent/Functional/Immutable data structures" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, + {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, + {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, + {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, +] [[package]] name = "pytest" @@ -551,6 +975,10 @@ description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] [package.dependencies] atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} @@ -573,6 +1001,10 @@ description = "Pytest plugin for measuring coverage." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, + {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, +] [package.dependencies] coverage = {version = ">=5.2.1", extras = ["toml"]} @@ -588,6 +1020,10 @@ description = "pytest plugin to check FLAKE8 requirements" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, + {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, +] [package.dependencies] flake8 = ">=3.5" @@ -600,6 +1036,10 @@ description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" +files = [ + {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, + {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, +] [[package]] name = "pyyaml" @@ -608,20 +1048,66 @@ description = "YAML parser and emitter for Python" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] [[package]] name = "requests" -version = "2.28.1" +version = "2.31.0" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=3.7, <4" +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<3" +charset-normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] @@ -634,6 +1120,10 @@ description = "A pure python RFC3339 validator" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] [package.dependencies] six = "*" @@ -645,6 +1135,10 @@ description = "Easily download, build, install, upgrade, and uninstall Python pa category = "dev" optional = true python-versions = ">=3.7" +files = [ + {file = "setuptools-67.0.0-py3-none-any.whl", hash = "sha256:9d790961ba6219e9ff7d9557622d2fe136816a264dd01d5997cfc057d804853d"}, + {file = "setuptools-67.0.0.tar.gz", hash = "sha256:883131c5b6efa70b9101c7ef30b2b7b780a4283d5fc1616383cdf22c83cbefe6"}, +] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] @@ -658,6 +1152,10 @@ description = "Python 2 and 3 compatibility utilities" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] [[package]] name = "snowballstemmer" @@ -666,6 +1164,10 @@ description = "This package provides 29 stemmers for 28 languages generated from category = "main" optional = false python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] [[package]] name = "sphinx" @@ -674,6 +1176,10 @@ description = "Python documentation generator" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, + {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, +] [package.dependencies] alabaster = ">=0.7,<0.8" @@ -706,6 +1212,10 @@ description = "Adaptation of mkdocs-material theme for the Sphinx documentation category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "sphinx_immaterial-0.11.0-py3-none-any.whl", hash = "sha256:2d4879a81b8f83863851b06cfa5e1bc89537c652c6af9824a1ec3e54cab6f863"}, + {file = "sphinx_immaterial-0.11.0.tar.gz", hash = "sha256:67416c77b39843923388b7c5fa5aa80381b120cb84e92921ca60a3e671644e9b"}, +] [package.dependencies] appdirs = "*" @@ -729,6 +1239,10 @@ description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -741,6 +1255,10 @@ description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -753,6 +1271,10 @@ description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML h category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -765,6 +1287,10 @@ description = "A sphinx extension which renders display math in HTML via JavaScr category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] [package.extras] test = ["flake8", "mypy", "pytest"] @@ -776,6 +1302,10 @@ description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp d category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -788,6 +1318,10 @@ description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -800,6 +1334,10 @@ description = "Python Library for Tom's Obvious, Minimal Language" category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] [[package]] name = "tomli" @@ -808,6 +1346,10 @@ description = "A lil' TOML parser" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] [[package]] name = "tox" @@ -816,6 +1358,10 @@ description = "tox is a generic virtualenv management and test command line tool category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "tox-3.25.1-py2.py3-none-any.whl", hash = "sha256:c38e15f4733683a9cc0129fba078633e07eb0961f550a010ada879e95fb32632"}, + {file = "tox-3.25.1.tar.gz", hash = "sha256:c138327815f53bc6da4fe56baec5f25f00622ae69ef3fe4e1e385720e22486f9"}, +] [package.dependencies] colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} @@ -839,24 +1385,58 @@ description = "a fork of Python 2 and 3 ast modules with type comment support" category = "dev" optional = false python-versions = ">=3.6" - -[[package]] -name = "typing-extensions" -version = "4.3.0" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" -optional = false -python-versions = ">=3.7" - -[[package]] -name = "urllib3" -version = "1.26.12" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" - -[package.extras] +files = [ + {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, + {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, + {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, + {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, + {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, + {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, + {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, + {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, + {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, +] + +[[package]] +name = "typing-extensions" +version = "4.3.0" +description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, + {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, +] + +[[package]] +name = "urllib3" +version = "1.26.12" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" +files = [ + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, +] + +[package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] @@ -868,6 +1448,10 @@ description = "Virtual Python Environment builder" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "virtualenv-20.16.4-py3-none-any.whl", hash = "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22"}, + {file = "virtualenv-20.16.4.tar.gz", hash = "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782"}, +] [package.dependencies] distlib = ">=0.3.5,<1" @@ -886,6 +1470,10 @@ description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, + {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, +] [package.extras] docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] @@ -897,594 +1485,6 @@ docs = ["sphinx", "sphinx-immaterial"] requests = ["requests"] [metadata] -lock-version = "1.1" +lock-version = "2.0" python-versions = "^3.7.0" content-hash = "ffbbac7c3f8cc9240f0819e88161dad1d4460bb27e346b6ca20aa6d83084434d" - -[metadata.files] -alabaster = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, -] -appdirs = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] -astor = [ - {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, - {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, -] -atomicwrites = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] -attrs = [ - {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, - {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, -] -babel = [ - {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, - {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, -] -black = [ - {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, - {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, - {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, - {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, - {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, - {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, - {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, - {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, - {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, - {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, - {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, - {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, - {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, - {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, - {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, - {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, - {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, - {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, - {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, -] -certifi = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] -cfgv = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, - {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, -] -click = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] -colorama = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] -coverage = [ - {file = "coverage-7.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2a7f23bbaeb2a87f90f607730b45564076d870f1fb07b9318d0c21f36871932b"}, - {file = "coverage-7.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c18d47f314b950dbf24a41787ced1474e01ca816011925976d90a88b27c22b89"}, - {file = "coverage-7.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef14d75d86f104f03dea66c13188487151760ef25dd6b2dbd541885185f05f40"}, - {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66e50680e888840c0995f2ad766e726ce71ca682e3c5f4eee82272c7671d38a2"}, - {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9fed35ca8c6e946e877893bbac022e8563b94404a605af1d1e6accc7eb73289"}, - {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d8d04e755934195bdc1db45ba9e040b8d20d046d04d6d77e71b3b34a8cc002d0"}, - {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e109f1c9a3ece676597831874126555997c48f62bddbcace6ed17be3e372de8"}, - {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0a1890fca2962c4f1ad16551d660b46ea77291fba2cc21c024cd527b9d9c8809"}, - {file = "coverage-7.0.5-cp310-cp310-win32.whl", hash = "sha256:be9fcf32c010da0ba40bf4ee01889d6c737658f4ddff160bd7eb9cac8f094b21"}, - {file = "coverage-7.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:cbfcba14a3225b055a28b3199c3d81cd0ab37d2353ffd7f6fd64844cebab31ad"}, - {file = "coverage-7.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:30b5fec1d34cc932c1bc04017b538ce16bf84e239378b8f75220478645d11fca"}, - {file = "coverage-7.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1caed2367b32cc80a2b7f58a9f46658218a19c6cfe5bc234021966dc3daa01f0"}, - {file = "coverage-7.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d254666d29540a72d17cc0175746cfb03d5123db33e67d1020e42dae611dc196"}, - {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19245c249aa711d954623d94f23cc94c0fd65865661f20b7781210cb97c471c0"}, - {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b05ed4b35bf6ee790832f68932baf1f00caa32283d66cc4d455c9e9d115aafc"}, - {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:29de916ba1099ba2aab76aca101580006adfac5646de9b7c010a0f13867cba45"}, - {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e057e74e53db78122a3979f908973e171909a58ac20df05c33998d52e6d35757"}, - {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:411d4ff9d041be08fdfc02adf62e89c735b9468f6d8f6427f8a14b6bb0a85095"}, - {file = "coverage-7.0.5-cp311-cp311-win32.whl", hash = "sha256:52ab14b9e09ce052237dfe12d6892dd39b0401690856bcfe75d5baba4bfe2831"}, - {file = "coverage-7.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:1f66862d3a41674ebd8d1a7b6f5387fe5ce353f8719040a986551a545d7d83ea"}, - {file = "coverage-7.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b69522b168a6b64edf0c33ba53eac491c0a8f5cc94fa4337f9c6f4c8f2f5296c"}, - {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436e103950d05b7d7f55e39beeb4d5be298ca3e119e0589c0227e6d0b01ee8c7"}, - {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c56bec53d6e3154eaff6ea941226e7bd7cc0d99f9b3756c2520fc7a94e6d96"}, - {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a38362528a9115a4e276e65eeabf67dcfaf57698e17ae388599568a78dcb029"}, - {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f67472c09a0c7486e27f3275f617c964d25e35727af952869dd496b9b5b7f6a3"}, - {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:220e3fa77d14c8a507b2d951e463b57a1f7810a6443a26f9b7591ef39047b1b2"}, - {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ecb0f73954892f98611e183f50acdc9e21a4653f294dfbe079da73c6378a6f47"}, - {file = "coverage-7.0.5-cp37-cp37m-win32.whl", hash = "sha256:d8f3e2e0a1d6777e58e834fd5a04657f66affa615dae61dd67c35d1568c38882"}, - {file = "coverage-7.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9e662e6fc4f513b79da5d10a23edd2b87685815b337b1a30cd11307a6679148d"}, - {file = "coverage-7.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:790e4433962c9f454e213b21b0fd4b42310ade9c077e8edcb5113db0818450cb"}, - {file = "coverage-7.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49640bda9bda35b057b0e65b7c43ba706fa2335c9a9896652aebe0fa399e80e6"}, - {file = "coverage-7.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d66187792bfe56f8c18ba986a0e4ae44856b1c645336bd2c776e3386da91e1dd"}, - {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:276f4cd0001cd83b00817c8db76730938b1ee40f4993b6a905f40a7278103b3a"}, - {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95304068686545aa368b35dfda1cdfbbdbe2f6fe43de4a2e9baa8ebd71be46e2"}, - {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:17e01dd8666c445025c29684d4aabf5a90dc6ef1ab25328aa52bedaa95b65ad7"}, - {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea76dbcad0b7b0deb265d8c36e0801abcddf6cc1395940a24e3595288b405ca0"}, - {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:50a6adc2be8edd7ee67d1abc3cd20678987c7b9d79cd265de55941e3d0d56499"}, - {file = "coverage-7.0.5-cp38-cp38-win32.whl", hash = "sha256:e4ce984133b888cc3a46867c8b4372c7dee9cee300335e2925e197bcd45b9e16"}, - {file = "coverage-7.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:4a950f83fd3f9bca23b77442f3a2b2ea4ac900944d8af9993743774c4fdc57af"}, - {file = "coverage-7.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c2155943896ac78b9b0fd910fb381186d0c345911f5333ee46ac44c8f0e43ab"}, - {file = "coverage-7.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:54f7e9705e14b2c9f6abdeb127c390f679f6dbe64ba732788d3015f7f76ef637"}, - {file = "coverage-7.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ee30375b409d9a7ea0f30c50645d436b6f5dfee254edffd27e45a980ad2c7f4"}, - {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b78729038abea6a5df0d2708dce21e82073463b2d79d10884d7d591e0f385ded"}, - {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13250b1f0bd023e0c9f11838bdeb60214dd5b6aaf8e8d2f110c7e232a1bff83b"}, - {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c407b1950b2d2ffa091f4e225ca19a66a9bd81222f27c56bd12658fc5ca1209"}, - {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c76a3075e96b9c9ff00df8b5f7f560f5634dffd1658bafb79eb2682867e94f78"}, - {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f26648e1b3b03b6022b48a9b910d0ae209e2d51f50441db5dce5b530fad6d9b1"}, - {file = "coverage-7.0.5-cp39-cp39-win32.whl", hash = "sha256:ba3027deb7abf02859aca49c865ece538aee56dcb4871b4cced23ba4d5088904"}, - {file = "coverage-7.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:949844af60ee96a376aac1ded2a27e134b8c8d35cc006a52903fc06c24a3296f"}, - {file = "coverage-7.0.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:b9727ac4f5cf2cbf87880a63870b5b9730a8ae3a4a360241a0fdaa2f71240ff0"}, - {file = "coverage-7.0.5.tar.gz", hash = "sha256:051afcbd6d2ac39298d62d340f94dbb6a1f31de06dfaf6fcef7b759dd3860c45"}, -] -distlib = [ - {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, - {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, -] -docutils = [ - {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, - {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, -] -filelock = [ - {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, - {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, -] -flake8 = [ - {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, - {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, -] -flynt = [ - {file = "flynt-0.76-py3-none-any.whl", hash = "sha256:fc122c5f589b0c4d019d7d33597f4925fd886a8e6fb3cbadb918e4baa3661687"}, - {file = "flynt-0.76.tar.gz", hash = "sha256:7a99c5a550ea9e8c21203f6999ed8ce69cbad7bc8465268469777cf06413193a"}, -] -identify = [ - {file = "identify-2.5.3-py2.py3-none-any.whl", hash = "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893"}, - {file = "identify-2.5.3.tar.gz", hash = "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44"}, -] -idna = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, -] -imagesize = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, - {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, -] -importlib-resources = [ - {file = "importlib_resources-5.9.0-py3-none-any.whl", hash = "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7"}, - {file = "importlib_resources-5.9.0.tar.gz", hash = "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -jsonschema = [ - {file = "jsonschema-4.15.0-py3-none-any.whl", hash = "sha256:2df0fab225abb3b41967bb3a46fd37dc74b1536b5296d0b1c2078cd072adf0f7"}, - {file = "jsonschema-4.15.0.tar.gz", hash = "sha256:21f4979391bdceb044e502fd8e79e738c0cdfbdc8773f9a49b5769461e82fe1e"}, -] -jsonschema-spec = [ - {file = "jsonschema-spec-0.1.1.tar.gz", hash = "sha256:2eaf5d20c017921950df53d898e0e85029901d83c28730f0fa20813648c7af22"}, - {file = "jsonschema_spec-0.1.1-py3-none-any.whl", hash = "sha256:5fa06f740d81de4a46d51ffb847ea381d09c4a5872bf0f17d7e0d4bd862d687b"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] -markupsafe = [ - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, - {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -mypy = [ - {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, - {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, - {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, - {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, - {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, - {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, - {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, - {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, - {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, - {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, - {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, - {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, - {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, - {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, - {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, - {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, - {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, - {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, - {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -nodeenv = [ - {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, - {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, -] -openapi-schema-validator = [ - {file = "openapi_schema_validator-0.4.3-py3-none-any.whl", hash = "sha256:f1eff2a7936546a3ce62b88a17d09de93c9bd229cbc43cb696c988a61a382548"}, - {file = "openapi_schema_validator-0.4.3.tar.gz", hash = "sha256:6940dba9f4906c97078fea6fd9d5a3a3384207db368c4e32f6af6abd7c5c560b"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pathable = [ - {file = "pathable-0.4.3-py3-none-any.whl", hash = "sha256:cdd7b1f9d7d5c8b8d3315dbf5a86b2596053ae845f056f57d97c0eefff84da14"}, - {file = "pathable-0.4.3.tar.gz", hash = "sha256:5c869d315be50776cc8a993f3af43e0c60dc01506b399643f919034ebf4cdcab"}, -] -pathspec = [ - {file = "pathspec-0.10.0-py3-none-any.whl", hash = "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015"}, - {file = "pathspec-0.10.0.tar.gz", hash = "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85"}, -] -pkgutil-resolve-name = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -pre-commit = [ - {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, - {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pycodestyle = [ - {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, - {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, -] -pydantic = [ - {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, - {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, - {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, - {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, - {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, - {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, - {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, - {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, - {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, - {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, -] -pyflakes = [ - {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, - {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, -] -pygments = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pyrsistent = [ - {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, - {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, - {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, - {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, -] -pytest = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] -pytest-cov = [ - {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, - {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, -] -pytest-flake8 = [ - {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, - {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, -] -pytz = [ - {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, - {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -requests = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] -rfc3339-validator = [ - {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, - {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, -] -setuptools = [ - {file = "setuptools-67.0.0-py3-none-any.whl", hash = "sha256:9d790961ba6219e9ff7d9557622d2fe136816a264dd01d5997cfc057d804853d"}, - {file = "setuptools-67.0.0.tar.gz", hash = "sha256:883131c5b6efa70b9101c7ef30b2b7b780a4283d5fc1616383cdf22c83cbefe6"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -sphinx = [ - {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, - {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, -] -sphinx-immaterial = [ - {file = "sphinx_immaterial-0.11.0-py3-none-any.whl", hash = "sha256:2d4879a81b8f83863851b06cfa5e1bc89537c652c6af9824a1ec3e54cab6f863"}, - {file = "sphinx_immaterial-0.11.0.tar.gz", hash = "sha256:67416c77b39843923388b7c5fa5aa80381b120cb84e92921ca60a3e671644e9b"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -tox = [ - {file = "tox-3.25.1-py2.py3-none-any.whl", hash = "sha256:c38e15f4733683a9cc0129fba078633e07eb0961f550a010ada879e95fb32632"}, - {file = "tox-3.25.1.tar.gz", hash = "sha256:c138327815f53bc6da4fe56baec5f25f00622ae69ef3fe4e1e385720e22486f9"}, -] -typed-ast = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, -] -typing-extensions = [ - {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, - {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, -] -urllib3 = [ - {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, - {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, -] -virtualenv = [ - {file = "virtualenv-20.16.4-py3-none-any.whl", hash = "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22"}, - {file = "virtualenv-20.16.4.tar.gz", hash = "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782"}, -] -zipp = [ - {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, - {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, -] From 5697bd303b4e3dc79fe754a2a8fa54df7699729f Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 08:44:41 +0100 Subject: [PATCH 156/371] workflows fix --- .github/workflows/build-docs.yml | 6 ++---- .github/workflows/docker-publish.yml | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 66dfd41..1b43749 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -20,10 +20,8 @@ jobs: id: full-python-version run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - - name: Bootstrap poetry - run: | - curl -sL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python - -y - echo "$HOME/.local/bin" >> $GITHUB_PATH + - name: Set up poetry + uses: Gr1N/setup-poetry@v8 - name: Configure poetry run: poetry config virtualenvs.in-project true diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 734f4f4..f827f76 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: release: types: - - created + - published jobs: docker: From 379d4f494f20aa41164c9e85f42e367ed0a148d2 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 08:30:13 +0100 Subject: [PATCH 157/371] allow path item ref fix --- .../resources/schemas/v3.1/schema.json | 2 +- tests/integration/data/v3.1/petstore.yaml | 55 ++++++++++--------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/openapi_spec_validator/resources/schemas/v3.1/schema.json b/openapi_spec_validator/resources/schemas/v3.1/schema.json index b8302d2..6b1105d 100644 --- a/openapi_spec_validator/resources/schemas/v3.1/schema.json +++ b/openapi_spec_validator/resources/schemas/v3.1/schema.json @@ -278,7 +278,7 @@ "type": "object", "patternProperties": { "^/": { - "$ref": "#/$defs/path-item" + "$ref": "#/$defs/path-item-or-reference" } }, "$ref": "#/$defs/specification-extensions", diff --git a/tests/integration/data/v3.1/petstore.yaml b/tests/integration/data/v3.1/petstore.yaml index d4e2ba4..3315706 100644 --- a/tests/integration/data/v3.1/petstore.yaml +++ b/tests/integration/data/v3.1/petstore.yaml @@ -55,31 +55,7 @@ paths: schema: $ref: "#/components/schemas/Error" /pets/{petId}: - get: - summary: Info for a specific pet - operationId: showPetById - tags: - - pets - parameters: - - name: petId - in: path - required: true - description: The id of the pet to retrieve - schema: - type: string - responses: - '200': - description: Expected response to a valid request - content: - application/json: - schema: - $ref: "#/components/schemas/Pets" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" + $ref: "#/components/pathItems/PetPath" components: schemas: Pet: @@ -109,4 +85,31 @@ components: type: integer format: int32 message: - type: string \ No newline at end of file + type: string + pathItems: + PetPath: + get: + summary: Info for a specific pet + operationId: showPetById + tags: + - pets + parameters: + - name: petId + in: path + required: true + description: The id of the pet to retrieve + schema: + type: string + responses: + '200': + description: Expected response to a valid request + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" \ No newline at end of file From 355ff2580d92175e75b7f0124118e629f500319d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 09:25:09 +0100 Subject: [PATCH 158/371] openapi 3.0 schema update --- .../resources/schemas/v3.0/schema.json | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/openapi_spec_validator/resources/schemas/v3.0/schema.json b/openapi_spec_validator/resources/schemas/v3.0/schema.json index 9a377c5..6e8eab8 100644 --- a/openapi_spec_validator/resources/schemas/v3.0/schema.json +++ b/openapi_spec_validator/resources/schemas/v3.0/schema.json @@ -1,7 +1,7 @@ { - "title": "A JSON Schema for OpenAPI 3.0.X.", + "id": "https://spec.openapis.org/oas/3.0/schema/2021-09-28", "$schema": "http://json-schema.org/draft-04/schema#", - "description": "Validation schema for OpenAPI Specification 3.0.X.", + "description": "The description of OpenAPI v3.0.x documents, as defined by https://spec.openapis.org/oas/v3.0.3", "type": "object", "required": [ "openapi", @@ -1358,9 +1358,8 @@ "description": "Bearer", "properties": { "scheme": { - "enum": [ - "bearer" - ] + "type": "string", + "pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$" } } }, @@ -1374,9 +1373,8 @@ "properties": { "scheme": { "not": { - "enum": [ - "bearer" - ] + "type": "string", + "pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$" } } } @@ -1489,7 +1487,8 @@ "PasswordOAuthFlow": { "type": "object", "required": [ - "tokenUrl" + "tokenUrl", + "scopes" ], "properties": { "tokenUrl": { @@ -1516,7 +1515,8 @@ "ClientCredentialsFlow": { "type": "object", "required": [ - "tokenUrl" + "tokenUrl", + "scopes" ], "properties": { "tokenUrl": { @@ -1544,7 +1544,8 @@ "type": "object", "required": [ "authorizationUrl", - "tokenUrl" + "tokenUrl", + "scopes" ], "properties": { "authorizationUrl": { @@ -1628,7 +1629,14 @@ "headers": { "type": "object", "additionalProperties": { - "$ref": "#/definitions/Header" + "oneOf": [ + { + "$ref": "#/definitions/Header" + }, + { + "$ref": "#/definitions/Reference" + } + ] } }, "style": { @@ -1648,6 +1656,10 @@ "default": false } }, + "patternProperties": { + "^x-": { + } + }, "additionalProperties": false } } From 0e8587063a0ef1f4a9240124e4a11b78b5510802 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 09:30:50 +0100 Subject: [PATCH 159/371] openapi 3.1 schema update --- .../resources/schemas/v3.1/schema.json | 246 +++++++++++++----- 1 file changed, 174 insertions(+), 72 deletions(-) diff --git a/openapi_spec_validator/resources/schemas/v3.1/schema.json b/openapi_spec_validator/resources/schemas/v3.1/schema.json index 6b1105d..b57b3ba 100644 --- a/openapi_spec_validator/resources/schemas/v3.1/schema.json +++ b/openapi_spec_validator/resources/schemas/v3.1/schema.json @@ -1,6 +1,7 @@ { - "$id": "https://spec.openapis.org/oas/3.1/schema/2021-05-20", + "$id": "https://spec.openapis.org/oas/3.1/schema/2022-10-07", "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The description of OpenAPI v3.1.x documents without schema validation, as defined by https://spec.openapis.org/oas/v3.1.0", "type": "object", "properties": { "openapi": { @@ -19,7 +20,12 @@ "type": "array", "items": { "$ref": "#/$defs/server" - } + }, + "default": [ + { + "url": "/" + } + ] }, "paths": { "$ref": "#/$defs/paths" @@ -74,6 +80,7 @@ "unevaluatedProperties": false, "$defs": { "info": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#info-object", "type": "object", "properties": { "title": { @@ -86,7 +93,8 @@ "type": "string" }, "termsOfService": { - "type": "string" + "type": "string", + "format": "uri" }, "contact": { "$ref": "#/$defs/contact" @@ -106,22 +114,26 @@ "unevaluatedProperties": false }, "contact": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#contact-object", "type": "object", "properties": { "name": { "type": "string" }, "url": { - "type": "string" + "type": "string", + "format": "uri" }, "email": { - "type": "string" + "type": "string", + "format": "email" } }, "$ref": "#/$defs/specification-extensions", "unevaluatedProperties": false }, "license": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#license-object", "type": "object", "properties": { "name": { @@ -138,22 +150,20 @@ "required": [ "name" ], - "oneOf": [ - { - "required": [ - "identifier" - ] - }, - { - "required": [ - "url" - ] + "dependentSchemas": { + "identifier": { + "not": { + "required": [ + "url" + ] + } } - ], + }, "$ref": "#/$defs/specification-extensions", "unevaluatedProperties": false }, "server": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#server-object", "type": "object", "properties": { "url": { @@ -177,6 +187,7 @@ "unevaluatedProperties": false }, "server-variable": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#server-variable-object", "type": "object", "properties": { "enum": { @@ -200,6 +211,7 @@ "unevaluatedProperties": false }, "components": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#components-object", "type": "object", "properties": { "schemas": { @@ -275,6 +287,7 @@ "unevaluatedProperties": false }, "paths": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#paths-object", "type": "object", "patternProperties": { "^/": { @@ -285,6 +298,7 @@ "unevaluatedProperties": false }, "path-item": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#path-item-object", "type": "object", "properties": { "summary": { @@ -304,10 +318,29 @@ "items": { "$ref": "#/$defs/parameter-or-reference" } - } - }, - "patternProperties": { - "^(get|put|post|delete|options|head|patch|trace)$": { + }, + "get": { + "$ref": "#/$defs/operation" + }, + "put": { + "$ref": "#/$defs/operation" + }, + "post": { + "$ref": "#/$defs/operation" + }, + "delete": { + "$ref": "#/$defs/operation" + }, + "options": { + "$ref": "#/$defs/operation" + }, + "head": { + "$ref": "#/$defs/operation" + }, + "patch": { + "$ref": "#/$defs/operation" + }, + "trace": { "$ref": "#/$defs/operation" } }, @@ -316,6 +349,7 @@ }, "path-item-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -328,6 +362,7 @@ } }, "operation": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#operation-object", "type": "object", "properties": { "tags": { @@ -387,6 +422,7 @@ "unevaluatedProperties": false }, "external-documentation": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#external-documentation-object", "type": "object", "properties": { "description": { @@ -404,6 +440,7 @@ "unevaluatedProperties": false }, "parameter": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#parameter-object", "type": "object", "properties": { "name": { @@ -428,18 +465,17 @@ "default": false, "type": "boolean" }, - "allowEmptyValue": { - "default": false, - "type": "boolean" - }, "schema": { "$dynamicRef": "#meta" }, "content": { - "$ref": "#/$defs/content" + "$ref": "#/$defs/content", + "minProperties": 1, + "maxProperties": 1 } }, "required": [ + "name", "in" ], "oneOf": [ @@ -454,6 +490,24 @@ ] } ], + "if": { + "properties": { + "in": { + "const": "query" + } + }, + "required": [ + "in" + ] + }, + "then": { + "properties": { + "allowEmptyValue": { + "default": false, + "type": "boolean" + } + } + }, "dependentSchemas": { "schema": { "properties": { @@ -462,10 +516,6 @@ }, "explode": { "type": "boolean" - }, - "allowReserved": { - "default": false, - "type": "boolean" } }, "allOf": [ @@ -502,6 +552,9 @@ }, "then": { "properties": { + "name": { + "pattern": "[^/#?]+$" + }, "style": { "default": "simple", "enum": [ @@ -534,9 +587,7 @@ "properties": { "style": { "default": "simple", - "enum": [ - "simple" - ] + "const": "simple" } } } @@ -562,6 +613,10 @@ "pipeDelimited", "deepObject" ] + }, + "allowReserved": { + "default": false, + "type": "boolean" } } } @@ -581,9 +636,7 @@ "properties": { "style": { "default": "form", - "enum": [ - "form" - ] + "const": "form" } } } @@ -622,6 +675,7 @@ }, "parameter-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -634,6 +688,7 @@ } }, "request-body": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#request-body-object", "type": "object", "properties": { "description": { @@ -655,6 +710,7 @@ }, "request-body-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -667,6 +723,7 @@ } }, "content": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#fixed-fields-10", "type": "object", "additionalProperties": { "$ref": "#/$defs/media-type" @@ -676,6 +733,7 @@ } }, "media-type": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#media-type-object", "type": "object", "properties": { "schema": { @@ -699,6 +757,7 @@ "unevaluatedProperties": false }, "encoding": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#encoding-object", "type": "object", "properties": { "contentType": { @@ -767,6 +826,7 @@ } }, "responses": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#responses-object", "type": "object", "properties": { "default": { @@ -774,14 +834,25 @@ } }, "patternProperties": { - "^[1-5][0-9X]{2}$": { + "^[1-5](?:[0-9]{2}|XX)$": { "$ref": "#/$defs/response-or-reference" } }, + "minProperties": 1, "$ref": "#/$defs/specification-extensions", - "unevaluatedProperties": false + "unevaluatedProperties": false, + "if": { + "$comment": "either default, or at least one response code property must exist", + "patternProperties": { + "^[1-5](?:[0-9]{2}|XX)$": false + } + }, + "then" : { + "required": [ "default" ] + } }, "response": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#response-object", "type": "object", "properties": { "description": { @@ -811,6 +882,7 @@ }, "response-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -823,6 +895,7 @@ } }, "callbacks": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#callback-object", "type": "object", "$ref": "#/$defs/specification-extensions", "additionalProperties": { @@ -831,6 +904,7 @@ }, "callbacks-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -843,6 +917,7 @@ } }, "example": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#example-object", "type": "object", "properties": { "summary": { @@ -857,11 +932,18 @@ "format": "uri" } }, + "not": { + "required": [ + "value", + "externalValue" + ] + }, "$ref": "#/$defs/specification-extensions", "unevaluatedProperties": false }, "example-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -874,13 +956,16 @@ } }, "link": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#link-object", "type": "object", "properties": { "operationRef": { "type": "string", "format": "uri-reference" }, - "operationId": true, + "operationId": { + "type": "string" + }, "parameters": { "$ref": "#/$defs/map-of-strings" }, @@ -909,6 +994,7 @@ }, "link-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -921,6 +1007,7 @@ } }, "header": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#header-object", "type": "object", "properties": { "description": { @@ -934,40 +1021,40 @@ "default": false, "type": "boolean" }, - "allowEmptyValue": { - "default": false, - "type": "boolean" + "schema": { + "$dynamicRef": "#meta" + }, + "content": { + "$ref": "#/$defs/content", + "minProperties": 1, + "maxProperties": 1 } }, + "oneOf": [ + { + "required": [ + "schema" + ] + }, + { + "required": [ + "content" + ] + } + ], "dependentSchemas": { "schema": { "properties": { "style": { "default": "simple", - "enum": [ - "simple" - ] + "const": "simple" }, "explode": { "default": false, "type": "boolean" - }, - "allowReserved": { - "default": false, - "type": "boolean" - }, - "schema": { - "$dynamicRef": "#meta" } }, "$ref": "#/$defs/examples" - }, - "content": { - "properties": { - "content": { - "$ref": "#/$defs/content" - } - } } }, "$ref": "#/$defs/specification-extensions", @@ -975,6 +1062,7 @@ }, "header-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -987,6 +1075,7 @@ } }, "tag": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#tag-object", "type": "object", "properties": { "name": { @@ -1006,6 +1095,7 @@ "unevaluatedProperties": false }, "reference": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#reference-object", "type": "object", "properties": { "$ref": { @@ -1022,6 +1112,7 @@ "unevaluatedProperties": false }, "schema": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#schema-object", "$dynamicAnchor": "meta", "type": [ "object", @@ -1029,6 +1120,7 @@ ] }, "security-scheme": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#security-scheme-object", "type": "object", "properties": { "type": { @@ -1128,7 +1220,8 @@ "const": "http" }, "scheme": { - "const": "bearer" + "type": "string", + "pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$" } }, "required": [ @@ -1141,10 +1234,7 @@ "bearerFormat": { "type": "string" } - }, - "required": [ - "scheme" - ] + } } }, "type-oauth2": { @@ -1196,6 +1286,7 @@ }, "security-scheme-or-reference": { "if": { + "type": "object", "required": [ "$ref" ] @@ -1230,10 +1321,12 @@ "type": "object", "properties": { "authorizationUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "refreshUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1250,10 +1343,12 @@ "type": "object", "properties": { "tokenUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "refreshUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1270,10 +1365,12 @@ "type": "object", "properties": { "tokenUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "refreshUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1290,13 +1387,16 @@ "type": "object", "properties": { "authorizationUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "tokenUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "refreshUrl": { - "type": "string" + "type": "string", + "format": "uri" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1313,6 +1413,7 @@ } }, "security-requirement": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#security-requirement-object", "type": "object", "additionalProperties": { "type": "array", @@ -1322,6 +1423,7 @@ } }, "specification-extensions": { + "$comment": "https://spec.openapis.org/oas/v3.1.0#specification-extensions", "patternProperties": { "^x-": true } From 2c3a126289371cc94ce6fc383c978413a0d77d66 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 16:47:22 +0100 Subject: [PATCH 160/371] Create dependabot config --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..6a7695c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "weekly" From 0a51f95ed7d21db20ad91fa367f784dbc672c588 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:48:55 +0000 Subject: [PATCH 161/371] Bump openapi-schema-validator from 0.4.3 to 0.4.4 Bumps [openapi-schema-validator](https://github.com/python-openapi/openapi-schema-validator) from 0.4.3 to 0.4.4. - [Release notes](https://github.com/python-openapi/openapi-schema-validator/releases) - [Commits](https://github.com/python-openapi/openapi-schema-validator/compare/0.4.3...0.4.4) --- updated-dependencies: - dependency-name: openapi-schema-validator dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 88 +++++------------------------------------------------ 1 file changed, 8 insertions(+), 80 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1c240c1..6908d34 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" optional = false python-versions = "*" files = [ @@ -28,7 +26,6 @@ files = [ name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -40,7 +37,6 @@ files = [ name = "atomicwrites" version = "1.4.1" description = "Atomic file writes." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -51,7 +47,6 @@ files = [ name = "attrs" version = "22.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -69,7 +64,6 @@ tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy name = "babel" version = "2.11.0" description = "Internationalization utilities" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -84,7 +78,6 @@ pytz = ">=2015.7" name = "black" version = "22.8.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -132,7 +125,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -144,7 +136,6 @@ files = [ name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = true python-versions = ">=3.6.1" files = [ @@ -156,7 +147,6 @@ files = [ name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -171,7 +161,6 @@ unicode-backport = ["unicodedata2"] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -187,7 +176,6 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} name = "colorama" version = "0.4.5" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -199,7 +187,6 @@ files = [ name = "coverage" version = "7.0.5" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -266,7 +253,6 @@ toml = ["tomli"] name = "distlib" version = "0.3.6" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" files = [ @@ -278,7 +264,6 @@ files = [ name = "docutils" version = "0.19" description = "Docutils -- Python Documentation Utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -290,7 +275,6 @@ files = [ name = "filelock" version = "3.8.0" description = "A platform independent file lock." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -306,7 +290,6 @@ testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pyt name = "flake8" version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -324,7 +307,6 @@ pyflakes = ">=2.3.0,<2.4.0" name = "flynt" version = "0.76" description = "CLI tool to convert a python project's %-formatted strings to f-strings." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -340,7 +322,6 @@ tomli = ">=1.1.0" name = "identify" version = "2.5.3" description = "File identification library for Python" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -355,7 +336,6 @@ license = ["ukkonen"] name = "idna" version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -367,7 +347,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -379,7 +358,6 @@ files = [ name = "importlib-metadata" version = "4.12.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -400,7 +378,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "importlib-resources" version = "5.9.0" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -419,7 +396,6 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = "*" files = [ @@ -431,7 +407,6 @@ files = [ name = "isort" version = "5.10.1" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.6.1,<4.0" files = [ @@ -449,7 +424,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -467,7 +441,6 @@ i18n = ["Babel (>=2.7)"] name = "jsonschema" version = "4.15.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -491,7 +464,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-spec" version = "0.1.1" description = "JSONSchema Spec with object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -509,7 +481,6 @@ typing-extensions = ">=4.3.0,<5.0.0" name = "lazy-object-proxy" version = "1.7.1" description = "A fast and thorough lazy object proxy." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -556,7 +527,6 @@ files = [ name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -616,7 +586,6 @@ files = [ name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = "*" files = [ @@ -628,7 +597,6 @@ files = [ name = "mypy" version = "0.971" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -672,7 +640,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" optional = false python-versions = "*" files = [ @@ -684,7 +651,6 @@ files = [ name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" -category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -697,25 +663,26 @@ setuptools = "*" [[package]] name = "openapi-schema-validator" -version = "0.4.3" +version = "0.4.4" description = "OpenAPI schema validation for Python" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ - {file = "openapi_schema_validator-0.4.3-py3-none-any.whl", hash = "sha256:f1eff2a7936546a3ce62b88a17d09de93c9bd229cbc43cb696c988a61a382548"}, - {file = "openapi_schema_validator-0.4.3.tar.gz", hash = "sha256:6940dba9f4906c97078fea6fd9d5a3a3384207db368c4e32f6af6abd7c5c560b"}, + {file = "openapi_schema_validator-0.4.4-py3-none-any.whl", hash = "sha256:79f37f38ef9fd5206b924ed7a6f382cea7b649b3b56383c47f1906082b7b9015"}, + {file = "openapi_schema_validator-0.4.4.tar.gz", hash = "sha256:c573e2be2c783abae56c5a1486ab716ca96e09d1c3eab56020d1dc680aa57bf8"}, ] [package.dependencies] -jsonschema = ">=4.0.0,<5.0.0" +jsonschema = ">=4.0.0,<4.18.0" rfc3339-validator = "*" +[package.extras] +docs = ["sphinx (>=5.3.0,<6.0.0)", "sphinx-immaterial (>=0.11.0,<0.12.0)"] + [[package]] name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -730,7 +697,6 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "pathable" version = "0.4.3" description = "Object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -742,7 +708,6 @@ files = [ name = "pathspec" version = "0.10.0" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -754,7 +719,6 @@ files = [ name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -766,7 +730,6 @@ files = [ name = "platformdirs" version = "2.5.2" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -782,7 +745,6 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -801,7 +763,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "2.20.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -822,7 +783,6 @@ virtualenv = ">=20.0.8" name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -834,7 +794,6 @@ files = [ name = "pycodestyle" version = "2.7.0" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -846,7 +805,6 @@ files = [ name = "pydantic" version = "1.10.5" description = "Data validation and settings management using python type hints" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -899,7 +857,6 @@ email = ["email-validator (>=1.0.3)"] name = "pyflakes" version = "2.3.1" description = "passive checker of Python programs" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -911,7 +868,6 @@ files = [ name = "pygments" version = "2.14.0" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -926,7 +882,6 @@ plugins = ["importlib-metadata"] name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -941,7 +896,6 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyrsistent" version = "0.18.1" description = "Persistent/Functional/Immutable data structures" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -972,7 +926,6 @@ files = [ name = "pytest" version = "6.2.5" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -998,7 +951,6 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm name = "pytest-cov" version = "3.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1017,7 +969,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-flake8" version = "1.0.7" description = "pytest plugin to check FLAKE8 requirements" -category = "dev" optional = false python-versions = "*" files = [ @@ -1033,7 +984,6 @@ pytest = ">=3.5" name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -1045,7 +995,6 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1095,7 +1044,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1117,7 +1065,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1132,7 +1079,6 @@ six = "*" name = "setuptools" version = "67.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -1149,7 +1095,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1161,7 +1106,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "main" optional = false python-versions = "*" files = [ @@ -1173,7 +1117,6 @@ files = [ name = "sphinx" version = "5.3.0" description = "Python documentation generator" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1209,7 +1152,6 @@ test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] name = "sphinx-immaterial" version = "0.11.0" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1236,7 +1178,6 @@ keys = ["pymdown-extensions"] name = "sphinxcontrib-applehelp" version = "1.0.2" description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1252,7 +1193,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1268,7 +1208,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1284,7 +1223,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1299,7 +1237,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1315,7 +1252,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1331,7 +1267,6 @@ test = ["pytest"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1343,7 +1278,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,7 +1289,6 @@ files = [ name = "tox" version = "3.25.1" description = "tox is a generic virtualenv management and test command line tool" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -1382,7 +1315,6 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psu name = "typed-ast" version = "1.5.4" description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1416,7 +1348,6 @@ files = [ name = "typing-extensions" version = "4.3.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1428,7 +1359,6 @@ files = [ name = "urllib3" version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" files = [ @@ -1445,7 +1375,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "virtualenv" version = "20.16.4" description = "Virtual Python Environment builder" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1467,7 +1396,6 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "zipp" version = "3.8.1" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.7" files = [ From a8fbf9617b525231a05847a62d5c640281b17208 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:49:29 +0000 Subject: [PATCH 162/371] Bump jsonschema from 4.15.0 to 4.17.3 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.15.0 to 4.17.3. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.15.0...v4.17.3) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 83 +++-------------------------------------------------- 1 file changed, 4 insertions(+), 79 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1c240c1..c043440 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" optional = false python-versions = "*" files = [ @@ -28,7 +26,6 @@ files = [ name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -40,7 +37,6 @@ files = [ name = "atomicwrites" version = "1.4.1" description = "Atomic file writes." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -51,7 +47,6 @@ files = [ name = "attrs" version = "22.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -69,7 +64,6 @@ tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy name = "babel" version = "2.11.0" description = "Internationalization utilities" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -84,7 +78,6 @@ pytz = ">=2015.7" name = "black" version = "22.8.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -132,7 +125,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -144,7 +136,6 @@ files = [ name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = true python-versions = ">=3.6.1" files = [ @@ -156,7 +147,6 @@ files = [ name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -171,7 +161,6 @@ unicode-backport = ["unicodedata2"] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -187,7 +176,6 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} name = "colorama" version = "0.4.5" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -199,7 +187,6 @@ files = [ name = "coverage" version = "7.0.5" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -266,7 +253,6 @@ toml = ["tomli"] name = "distlib" version = "0.3.6" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" files = [ @@ -278,7 +264,6 @@ files = [ name = "docutils" version = "0.19" description = "Docutils -- Python Documentation Utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -290,7 +275,6 @@ files = [ name = "filelock" version = "3.8.0" description = "A platform independent file lock." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -306,7 +290,6 @@ testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pyt name = "flake8" version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -324,7 +307,6 @@ pyflakes = ">=2.3.0,<2.4.0" name = "flynt" version = "0.76" description = "CLI tool to convert a python project's %-formatted strings to f-strings." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -340,7 +322,6 @@ tomli = ">=1.1.0" name = "identify" version = "2.5.3" description = "File identification library for Python" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -355,7 +336,6 @@ license = ["ukkonen"] name = "idna" version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -367,7 +347,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -379,7 +358,6 @@ files = [ name = "importlib-metadata" version = "4.12.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -400,7 +378,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "importlib-resources" version = "5.9.0" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -419,7 +396,6 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = "*" files = [ @@ -431,7 +407,6 @@ files = [ name = "isort" version = "5.10.1" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.6.1,<4.0" files = [ @@ -449,7 +424,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -465,14 +439,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.15.0" +version = "4.17.3" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "jsonschema-4.15.0-py3-none-any.whl", hash = "sha256:2df0fab225abb3b41967bb3a46fd37dc74b1536b5296d0b1c2078cd072adf0f7"}, - {file = "jsonschema-4.15.0.tar.gz", hash = "sha256:21f4979391bdceb044e502fd8e79e738c0cdfbdc8773f9a49b5769461e82fe1e"}, + {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, + {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, ] [package.dependencies] @@ -491,7 +464,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-spec" version = "0.1.1" description = "JSONSchema Spec with object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -509,7 +481,6 @@ typing-extensions = ">=4.3.0,<5.0.0" name = "lazy-object-proxy" version = "1.7.1" description = "A fast and thorough lazy object proxy." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -556,7 +527,6 @@ files = [ name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -616,7 +586,6 @@ files = [ name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = "*" files = [ @@ -628,7 +597,6 @@ files = [ name = "mypy" version = "0.971" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -672,7 +640,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" optional = false python-versions = "*" files = [ @@ -684,7 +651,6 @@ files = [ name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" -category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -699,7 +665,6 @@ setuptools = "*" name = "openapi-schema-validator" version = "0.4.3" description = "OpenAPI schema validation for Python" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -715,7 +680,6 @@ rfc3339-validator = "*" name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -730,7 +694,6 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "pathable" version = "0.4.3" description = "Object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -742,7 +705,6 @@ files = [ name = "pathspec" version = "0.10.0" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -754,7 +716,6 @@ files = [ name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -766,7 +727,6 @@ files = [ name = "platformdirs" version = "2.5.2" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -782,7 +742,6 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -801,7 +760,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "2.20.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -822,7 +780,6 @@ virtualenv = ">=20.0.8" name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -834,7 +791,6 @@ files = [ name = "pycodestyle" version = "2.7.0" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -846,7 +802,6 @@ files = [ name = "pydantic" version = "1.10.5" description = "Data validation and settings management using python type hints" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -899,7 +854,6 @@ email = ["email-validator (>=1.0.3)"] name = "pyflakes" version = "2.3.1" description = "passive checker of Python programs" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -911,7 +865,6 @@ files = [ name = "pygments" version = "2.14.0" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -926,7 +879,6 @@ plugins = ["importlib-metadata"] name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -941,7 +893,6 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyrsistent" version = "0.18.1" description = "Persistent/Functional/Immutable data structures" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -972,7 +923,6 @@ files = [ name = "pytest" version = "6.2.5" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -998,7 +948,6 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm name = "pytest-cov" version = "3.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1017,7 +966,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-flake8" version = "1.0.7" description = "pytest plugin to check FLAKE8 requirements" -category = "dev" optional = false python-versions = "*" files = [ @@ -1033,7 +981,6 @@ pytest = ">=3.5" name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -1045,7 +992,6 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1095,7 +1041,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1117,7 +1062,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1132,7 +1076,6 @@ six = "*" name = "setuptools" version = "67.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -1149,7 +1092,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1161,7 +1103,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "main" optional = false python-versions = "*" files = [ @@ -1173,7 +1114,6 @@ files = [ name = "sphinx" version = "5.3.0" description = "Python documentation generator" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1209,7 +1149,6 @@ test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] name = "sphinx-immaterial" version = "0.11.0" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1236,7 +1175,6 @@ keys = ["pymdown-extensions"] name = "sphinxcontrib-applehelp" version = "1.0.2" description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1252,7 +1190,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1268,7 +1205,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1284,7 +1220,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1299,7 +1234,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1315,7 +1249,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1331,7 +1264,6 @@ test = ["pytest"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1343,7 +1275,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,7 +1286,6 @@ files = [ name = "tox" version = "3.25.1" description = "tox is a generic virtualenv management and test command line tool" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -1382,7 +1312,6 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psu name = "typed-ast" version = "1.5.4" description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1416,7 +1345,6 @@ files = [ name = "typing-extensions" version = "4.3.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1428,7 +1356,6 @@ files = [ name = "urllib3" version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" files = [ @@ -1445,7 +1372,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "virtualenv" version = "20.16.4" description = "Virtual Python Environment builder" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1467,7 +1393,6 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "zipp" version = "3.8.1" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.7" files = [ From 6351c52e8ad5834c4893f63ee083cf36b9fed5df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:50:03 +0000 Subject: [PATCH 163/371] Bump lazy-object-proxy from 1.7.1 to 1.9.0 Bumps [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) from 1.7.1 to 1.9.0. - [Changelog](https://github.com/ionelmc/python-lazy-object-proxy/blob/master/CHANGELOG.rst) - [Commits](https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.7.1...v1.9.0) --- updated-dependencies: - dependency-name: lazy-object-proxy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 154 +++++++++++++--------------------------------------- 1 file changed, 39 insertions(+), 115 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1c240c1..cf74ead 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" optional = false python-versions = "*" files = [ @@ -28,7 +26,6 @@ files = [ name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -40,7 +37,6 @@ files = [ name = "atomicwrites" version = "1.4.1" description = "Atomic file writes." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -51,7 +47,6 @@ files = [ name = "attrs" version = "22.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -69,7 +64,6 @@ tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy name = "babel" version = "2.11.0" description = "Internationalization utilities" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -84,7 +78,6 @@ pytz = ">=2015.7" name = "black" version = "22.8.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -132,7 +125,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -144,7 +136,6 @@ files = [ name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = true python-versions = ">=3.6.1" files = [ @@ -156,7 +147,6 @@ files = [ name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -171,7 +161,6 @@ unicode-backport = ["unicodedata2"] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -187,7 +176,6 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} name = "colorama" version = "0.4.5" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -199,7 +187,6 @@ files = [ name = "coverage" version = "7.0.5" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -266,7 +253,6 @@ toml = ["tomli"] name = "distlib" version = "0.3.6" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" files = [ @@ -278,7 +264,6 @@ files = [ name = "docutils" version = "0.19" description = "Docutils -- Python Documentation Utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -290,7 +275,6 @@ files = [ name = "filelock" version = "3.8.0" description = "A platform independent file lock." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -306,7 +290,6 @@ testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pyt name = "flake8" version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -324,7 +307,6 @@ pyflakes = ">=2.3.0,<2.4.0" name = "flynt" version = "0.76" description = "CLI tool to convert a python project's %-formatted strings to f-strings." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -340,7 +322,6 @@ tomli = ">=1.1.0" name = "identify" version = "2.5.3" description = "File identification library for Python" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -355,7 +336,6 @@ license = ["ukkonen"] name = "idna" version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -367,7 +347,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -379,7 +358,6 @@ files = [ name = "importlib-metadata" version = "4.12.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -400,7 +378,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "importlib-resources" version = "5.9.0" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -419,7 +396,6 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = "*" files = [ @@ -431,7 +407,6 @@ files = [ name = "isort" version = "5.10.1" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.6.1,<4.0" files = [ @@ -449,7 +424,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -467,7 +441,6 @@ i18n = ["Babel (>=2.7)"] name = "jsonschema" version = "4.15.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -491,7 +464,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-spec" version = "0.1.1" description = "JSONSchema Spec with object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -507,56 +479,53 @@ typing-extensions = ">=4.3.0,<5.0.0" [[package]] name = "lazy-object-proxy" -version = "1.7.1" +version = "1.9.0" description = "A fast and thorough lazy object proxy." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, + {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, ] [[package]] name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -616,7 +585,6 @@ files = [ name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = "*" files = [ @@ -628,7 +596,6 @@ files = [ name = "mypy" version = "0.971" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -672,7 +639,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" optional = false python-versions = "*" files = [ @@ -684,7 +650,6 @@ files = [ name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" -category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -699,7 +664,6 @@ setuptools = "*" name = "openapi-schema-validator" version = "0.4.3" description = "OpenAPI schema validation for Python" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -715,7 +679,6 @@ rfc3339-validator = "*" name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -730,7 +693,6 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "pathable" version = "0.4.3" description = "Object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -742,7 +704,6 @@ files = [ name = "pathspec" version = "0.10.0" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -754,7 +715,6 @@ files = [ name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -766,7 +726,6 @@ files = [ name = "platformdirs" version = "2.5.2" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -782,7 +741,6 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -801,7 +759,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "2.20.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -822,7 +779,6 @@ virtualenv = ">=20.0.8" name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -834,7 +790,6 @@ files = [ name = "pycodestyle" version = "2.7.0" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -846,7 +801,6 @@ files = [ name = "pydantic" version = "1.10.5" description = "Data validation and settings management using python type hints" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -899,7 +853,6 @@ email = ["email-validator (>=1.0.3)"] name = "pyflakes" version = "2.3.1" description = "passive checker of Python programs" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -911,7 +864,6 @@ files = [ name = "pygments" version = "2.14.0" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -926,7 +878,6 @@ plugins = ["importlib-metadata"] name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -941,7 +892,6 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyrsistent" version = "0.18.1" description = "Persistent/Functional/Immutable data structures" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -972,7 +922,6 @@ files = [ name = "pytest" version = "6.2.5" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -998,7 +947,6 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm name = "pytest-cov" version = "3.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1017,7 +965,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-flake8" version = "1.0.7" description = "pytest plugin to check FLAKE8 requirements" -category = "dev" optional = false python-versions = "*" files = [ @@ -1033,7 +980,6 @@ pytest = ">=3.5" name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -1045,7 +991,6 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1095,7 +1040,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1117,7 +1061,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1132,7 +1075,6 @@ six = "*" name = "setuptools" version = "67.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -1149,7 +1091,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1161,7 +1102,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "main" optional = false python-versions = "*" files = [ @@ -1173,7 +1113,6 @@ files = [ name = "sphinx" version = "5.3.0" description = "Python documentation generator" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1209,7 +1148,6 @@ test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] name = "sphinx-immaterial" version = "0.11.0" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1236,7 +1174,6 @@ keys = ["pymdown-extensions"] name = "sphinxcontrib-applehelp" version = "1.0.2" description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1252,7 +1189,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1268,7 +1204,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1284,7 +1219,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1299,7 +1233,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1315,7 +1248,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1331,7 +1263,6 @@ test = ["pytest"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1343,7 +1274,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,7 +1285,6 @@ files = [ name = "tox" version = "3.25.1" description = "tox is a generic virtualenv management and test command line tool" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -1382,7 +1311,6 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psu name = "typed-ast" version = "1.5.4" description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1416,7 +1344,6 @@ files = [ name = "typing-extensions" version = "4.3.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1428,7 +1355,6 @@ files = [ name = "urllib3" version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" files = [ @@ -1445,7 +1371,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "virtualenv" version = "20.16.4" description = "Virtual Python Environment builder" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1467,7 +1392,6 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "zipp" version = "3.8.1" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.7" files = [ From 3da4e8d6c1f7d9d997d4e629e2dd254fdc061540 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:50:37 +0000 Subject: [PATCH 164/371] Bump isort from 5.10.1 to 5.11.5 Bumps [isort](https://github.com/pycqa/isort) from 5.10.1 to 5.11.5. - [Release notes](https://github.com/pycqa/isort/releases) - [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md) - [Commits](https://github.com/pycqa/isort/compare/5.10.1...5.11.5) --- updated-dependencies: - dependency-name: isort dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 89 ++++---------------------------------------------- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 83 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1c240c1..6e9de11 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" optional = false python-versions = "*" files = [ @@ -28,7 +26,6 @@ files = [ name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -40,7 +37,6 @@ files = [ name = "atomicwrites" version = "1.4.1" description = "Atomic file writes." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -51,7 +47,6 @@ files = [ name = "attrs" version = "22.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -69,7 +64,6 @@ tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy name = "babel" version = "2.11.0" description = "Internationalization utilities" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -84,7 +78,6 @@ pytz = ">=2015.7" name = "black" version = "22.8.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -132,7 +125,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -144,7 +136,6 @@ files = [ name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = true python-versions = ">=3.6.1" files = [ @@ -156,7 +147,6 @@ files = [ name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -171,7 +161,6 @@ unicode-backport = ["unicodedata2"] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -187,7 +176,6 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} name = "colorama" version = "0.4.5" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -199,7 +187,6 @@ files = [ name = "coverage" version = "7.0.5" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -266,7 +253,6 @@ toml = ["tomli"] name = "distlib" version = "0.3.6" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" files = [ @@ -278,7 +264,6 @@ files = [ name = "docutils" version = "0.19" description = "Docutils -- Python Documentation Utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -290,7 +275,6 @@ files = [ name = "filelock" version = "3.8.0" description = "A platform independent file lock." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -306,7 +290,6 @@ testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pyt name = "flake8" version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -324,7 +307,6 @@ pyflakes = ">=2.3.0,<2.4.0" name = "flynt" version = "0.76" description = "CLI tool to convert a python project's %-formatted strings to f-strings." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -340,7 +322,6 @@ tomli = ">=1.1.0" name = "identify" version = "2.5.3" description = "File identification library for Python" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -355,7 +336,6 @@ license = ["ukkonen"] name = "idna" version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -367,7 +347,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -379,7 +358,6 @@ files = [ name = "importlib-metadata" version = "4.12.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -400,7 +378,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "importlib-resources" version = "5.9.0" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -419,7 +396,6 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = "*" files = [ @@ -429,19 +405,18 @@ files = [ [[package]] name = "isort" -version = "5.10.1" +version = "5.11.5" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false -python-versions = ">=3.6.1,<4.0" +python-versions = ">=3.7.0" files = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, + {file = "isort-5.11.5-py3-none-any.whl", hash = "sha256:ba1d72fb2595a01c7895a5128f9585a5cc4b6d395f1c8d514989b9a7eb2a8746"}, + {file = "isort-5.11.5.tar.gz", hash = "sha256:6be1f76a507cb2ecf16c7cf14a37e41609ca082330be4e3436a18ef74add55db"}, ] [package.extras] colors = ["colorama (>=0.4.3,<0.5.0)"] -pipfile-deprecated-finder = ["pipreqs", "requirementslib"] +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] plugins = ["setuptools"] requirements-deprecated-finder = ["pip-api", "pipreqs"] @@ -449,7 +424,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -467,7 +441,6 @@ i18n = ["Babel (>=2.7)"] name = "jsonschema" version = "4.15.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -491,7 +464,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-spec" version = "0.1.1" description = "JSONSchema Spec with object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -509,7 +481,6 @@ typing-extensions = ">=4.3.0,<5.0.0" name = "lazy-object-proxy" version = "1.7.1" description = "A fast and thorough lazy object proxy." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -556,7 +527,6 @@ files = [ name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -616,7 +586,6 @@ files = [ name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = "*" files = [ @@ -628,7 +597,6 @@ files = [ name = "mypy" version = "0.971" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -672,7 +640,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" optional = false python-versions = "*" files = [ @@ -684,7 +651,6 @@ files = [ name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" -category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -699,7 +665,6 @@ setuptools = "*" name = "openapi-schema-validator" version = "0.4.3" description = "OpenAPI schema validation for Python" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -715,7 +680,6 @@ rfc3339-validator = "*" name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -730,7 +694,6 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "pathable" version = "0.4.3" description = "Object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -742,7 +705,6 @@ files = [ name = "pathspec" version = "0.10.0" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -754,7 +716,6 @@ files = [ name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -766,7 +727,6 @@ files = [ name = "platformdirs" version = "2.5.2" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -782,7 +742,6 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -801,7 +760,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "2.20.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -822,7 +780,6 @@ virtualenv = ">=20.0.8" name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -834,7 +791,6 @@ files = [ name = "pycodestyle" version = "2.7.0" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -846,7 +802,6 @@ files = [ name = "pydantic" version = "1.10.5" description = "Data validation and settings management using python type hints" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -899,7 +854,6 @@ email = ["email-validator (>=1.0.3)"] name = "pyflakes" version = "2.3.1" description = "passive checker of Python programs" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -911,7 +865,6 @@ files = [ name = "pygments" version = "2.14.0" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -926,7 +879,6 @@ plugins = ["importlib-metadata"] name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -941,7 +893,6 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyrsistent" version = "0.18.1" description = "Persistent/Functional/Immutable data structures" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -972,7 +923,6 @@ files = [ name = "pytest" version = "6.2.5" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -998,7 +948,6 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm name = "pytest-cov" version = "3.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1017,7 +966,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-flake8" version = "1.0.7" description = "pytest plugin to check FLAKE8 requirements" -category = "dev" optional = false python-versions = "*" files = [ @@ -1033,7 +981,6 @@ pytest = ">=3.5" name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -1045,7 +992,6 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1095,7 +1041,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1117,7 +1062,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1132,7 +1076,6 @@ six = "*" name = "setuptools" version = "67.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -1149,7 +1092,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1161,7 +1103,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "main" optional = false python-versions = "*" files = [ @@ -1173,7 +1114,6 @@ files = [ name = "sphinx" version = "5.3.0" description = "Python documentation generator" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1209,7 +1149,6 @@ test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] name = "sphinx-immaterial" version = "0.11.0" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1236,7 +1175,6 @@ keys = ["pymdown-extensions"] name = "sphinxcontrib-applehelp" version = "1.0.2" description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1252,7 +1190,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1268,7 +1205,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1284,7 +1220,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1299,7 +1234,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1315,7 +1249,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1331,7 +1264,6 @@ test = ["pytest"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1343,7 +1275,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,7 +1286,6 @@ files = [ name = "tox" version = "3.25.1" description = "tox is a generic virtualenv management and test command line tool" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -1382,7 +1312,6 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psu name = "typed-ast" version = "1.5.4" description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1416,7 +1345,6 @@ files = [ name = "typing-extensions" version = "4.3.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1428,7 +1356,6 @@ files = [ name = "urllib3" version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" files = [ @@ -1445,7 +1372,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "virtualenv" version = "20.16.4" description = "Virtual Python Environment builder" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1467,7 +1393,6 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "zipp" version = "3.8.1" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1487,4 +1412,4 @@ requests = ["requests"] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "ffbbac7c3f8cc9240f0819e88161dad1d4460bb27e346b6ca20aa6d83084434d" +content-hash = "0185c1bbc58179ade65dd018552473b2e26e6985c3f6b0f75d3b0cabab1dc8dc" diff --git a/pyproject.toml b/pyproject.toml index 608d4ea..d07cf4c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ pytest-flake8 = "=1.0.7" pytest-cov = "^3.0.0" tox = "*" mypy = "^0.971" -isort = "^5.10.1" +isort = "^5.11.5" black = "^22.8.0" flynt = "^0.76" From ed0dfae171db021bb0f2a0d28a21610f48bd4ff2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:51:11 +0000 Subject: [PATCH 165/371] Bump importlib-resources from 5.9.0 to 5.12.0 Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.9.0 to 5.12.0. - [Release notes](https://github.com/python/importlib_resources/releases) - [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst) - [Commits](https://github.com/python/importlib_resources/compare/v5.9.0...v5.12.0) --- updated-dependencies: - dependency-name: importlib-resources dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 87 ++++------------------------------------------------- 1 file changed, 6 insertions(+), 81 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1c240c1..3efe08d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" optional = false python-versions = "*" files = [ @@ -28,7 +26,6 @@ files = [ name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -40,7 +37,6 @@ files = [ name = "atomicwrites" version = "1.4.1" description = "Atomic file writes." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -51,7 +47,6 @@ files = [ name = "attrs" version = "22.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -69,7 +64,6 @@ tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy name = "babel" version = "2.11.0" description = "Internationalization utilities" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -84,7 +78,6 @@ pytz = ">=2015.7" name = "black" version = "22.8.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -132,7 +125,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -144,7 +136,6 @@ files = [ name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = true python-versions = ">=3.6.1" files = [ @@ -156,7 +147,6 @@ files = [ name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -171,7 +161,6 @@ unicode-backport = ["unicodedata2"] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -187,7 +176,6 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} name = "colorama" version = "0.4.5" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -199,7 +187,6 @@ files = [ name = "coverage" version = "7.0.5" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -266,7 +253,6 @@ toml = ["tomli"] name = "distlib" version = "0.3.6" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" files = [ @@ -278,7 +264,6 @@ files = [ name = "docutils" version = "0.19" description = "Docutils -- Python Documentation Utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -290,7 +275,6 @@ files = [ name = "filelock" version = "3.8.0" description = "A platform independent file lock." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -306,7 +290,6 @@ testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pyt name = "flake8" version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -324,7 +307,6 @@ pyflakes = ">=2.3.0,<2.4.0" name = "flynt" version = "0.76" description = "CLI tool to convert a python project's %-formatted strings to f-strings." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -340,7 +322,6 @@ tomli = ">=1.1.0" name = "identify" version = "2.5.3" description = "File identification library for Python" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -355,7 +336,6 @@ license = ["ukkonen"] name = "idna" version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -367,7 +347,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -379,7 +358,6 @@ files = [ name = "importlib-metadata" version = "4.12.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -398,28 +376,26 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "5.9.0" +version = "5.12.0" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "importlib_resources-5.9.0-py3-none-any.whl", hash = "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7"}, - {file = "importlib_resources-5.9.0.tar.gz", hash = "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681"}, + {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, + {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = "*" files = [ @@ -431,7 +407,6 @@ files = [ name = "isort" version = "5.10.1" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.6.1,<4.0" files = [ @@ -449,7 +424,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -467,7 +441,6 @@ i18n = ["Babel (>=2.7)"] name = "jsonschema" version = "4.15.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -491,7 +464,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-spec" version = "0.1.1" description = "JSONSchema Spec with object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -509,7 +481,6 @@ typing-extensions = ">=4.3.0,<5.0.0" name = "lazy-object-proxy" version = "1.7.1" description = "A fast and thorough lazy object proxy." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -556,7 +527,6 @@ files = [ name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -616,7 +586,6 @@ files = [ name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = "*" files = [ @@ -628,7 +597,6 @@ files = [ name = "mypy" version = "0.971" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -672,7 +640,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" optional = false python-versions = "*" files = [ @@ -684,7 +651,6 @@ files = [ name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" -category = "dev" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -699,7 +665,6 @@ setuptools = "*" name = "openapi-schema-validator" version = "0.4.3" description = "OpenAPI schema validation for Python" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -715,7 +680,6 @@ rfc3339-validator = "*" name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -730,7 +694,6 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "pathable" version = "0.4.3" description = "Object-oriented paths" -category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -742,7 +705,6 @@ files = [ name = "pathspec" version = "0.10.0" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -754,7 +716,6 @@ files = [ name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -766,7 +727,6 @@ files = [ name = "platformdirs" version = "2.5.2" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -782,7 +742,6 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -801,7 +760,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "2.20.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -822,7 +780,6 @@ virtualenv = ">=20.0.8" name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -834,7 +791,6 @@ files = [ name = "pycodestyle" version = "2.7.0" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -846,7 +802,6 @@ files = [ name = "pydantic" version = "1.10.5" description = "Data validation and settings management using python type hints" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -899,7 +854,6 @@ email = ["email-validator (>=1.0.3)"] name = "pyflakes" version = "2.3.1" description = "passive checker of Python programs" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -911,7 +865,6 @@ files = [ name = "pygments" version = "2.14.0" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -926,7 +879,6 @@ plugins = ["importlib-metadata"] name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -941,7 +893,6 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyrsistent" version = "0.18.1" description = "Persistent/Functional/Immutable data structures" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -972,7 +923,6 @@ files = [ name = "pytest" version = "6.2.5" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -998,7 +948,6 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm name = "pytest-cov" version = "3.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1017,7 +966,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-flake8" version = "1.0.7" description = "pytest plugin to check FLAKE8 requirements" -category = "dev" optional = false python-versions = "*" files = [ @@ -1033,7 +981,6 @@ pytest = ">=3.5" name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -1045,7 +992,6 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1095,7 +1041,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1117,7 +1062,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1132,7 +1076,6 @@ six = "*" name = "setuptools" version = "67.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = true python-versions = ">=3.7" files = [ @@ -1149,7 +1092,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1161,7 +1103,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "main" optional = false python-versions = "*" files = [ @@ -1173,7 +1114,6 @@ files = [ name = "sphinx" version = "5.3.0" description = "Python documentation generator" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1209,7 +1149,6 @@ test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] name = "sphinx-immaterial" version = "0.11.0" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1236,7 +1175,6 @@ keys = ["pymdown-extensions"] name = "sphinxcontrib-applehelp" version = "1.0.2" description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1252,7 +1190,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1268,7 +1205,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1284,7 +1220,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1299,7 +1234,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1315,7 +1249,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1331,7 +1264,6 @@ test = ["pytest"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1343,7 +1275,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,7 +1286,6 @@ files = [ name = "tox" version = "3.25.1" description = "tox is a generic virtualenv management and test command line tool" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -1382,7 +1312,6 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psu name = "typed-ast" version = "1.5.4" description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1416,7 +1345,6 @@ files = [ name = "typing-extensions" version = "4.3.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1428,7 +1356,6 @@ files = [ name = "urllib3" version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" files = [ @@ -1445,7 +1372,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "virtualenv" version = "20.16.4" description = "Virtual Python Environment builder" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1467,7 +1393,6 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "zipp" version = "3.8.1" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.7" files = [ From dacee10d54e91c0f87eadd11cdb2f3e99ec68334 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 18:47:17 +0100 Subject: [PATCH 166/371] deptry added --- .github/workflows/build-docs.yml | 2 +- .github/workflows/python-test.yml | 6 ++- .../validation/protocols.py | 1 - poetry.lock | 43 ++++++++++++++++--- pyproject.toml | 5 +-- 5 files changed, 44 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 1b43749..e397d54 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -38,7 +38,7 @@ jobs: run: timeout 10s poetry run pip --version || rm -rf .venv - name: Install dependencies - run: poetry install -E docs + run: poetry install --with docs - name: Build documentation run: | diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index d6b8398..38922c2 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -48,7 +48,7 @@ jobs: run: timeout 10s poetry run pip --version || rm -rf .venv - name: Install dependencies - run: poetry install -E requests + run: poetry install --all-extras - name: Test env: @@ -58,5 +58,9 @@ jobs: - name: Static type check run: poetry run mypy + - name: Check dependencies + run: poetry run deptry . + if: ${{ matrix.python-version != '3.7' }} + - name: Upload coverage uses: codecov/codecov-action@v1 diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py index b876987..fa30938 100644 --- a/openapi_spec_validator/validation/protocols.py +++ b/openapi_spec_validator/validation/protocols.py @@ -1,5 +1,4 @@ import sys -from typing import TYPE_CHECKING from typing import Any from typing import Hashable from typing import Iterator diff --git a/poetry.lock b/poetry.lock index 4fceb49..aca4529 100644 --- a/poetry.lock +++ b/poetry.lock @@ -143,6 +143,17 @@ files = [ {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, ] +[[package]] +name = "chardet" +version = "5.1.0" +description = "Universal encoding detector for Python 3" +optional = false +python-versions = ">=3.7" +files = [ + {file = "chardet-5.1.0-py3-none-any.whl", hash = "sha256:362777fb014af596ad31334fde1e8c327dfdb076e1960d1694662d46a6917ab9"}, + {file = "chardet-5.1.0.tar.gz", hash = "sha256:0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5"}, +] + [[package]] name = "charset-normalizer" version = "2.1.1" @@ -174,13 +185,13 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" -version = "0.4.5" +version = "0.4.6" description = "Cross-platform colored terminal text." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] [[package]] @@ -249,6 +260,24 @@ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.1 [package.extras] toml = ["tomli"] +[[package]] +name = "deptry" +version = "0.11.0" +description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "deptry-0.11.0-py3-none-any.whl", hash = "sha256:e6d713806c0aff3ed3ac4f425b5b05b4473759a25a5ecfe5f93ddf224bfef57e"}, + {file = "deptry-0.11.0.tar.gz", hash = "sha256:fcd778cd5539458dbc665489404932135651dc1a2c9c7bc45b92455e57268802"}, +] + +[package.dependencies] +chardet = ">=4.0.0" +click = ">=8.0.0,<9.0.0" +colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} +pathspec = ">=0.9.0" +tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} + [[package]] name = "distlib" version = "0.3.6" @@ -1408,10 +1437,10 @@ testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>= [extras] dev = [] -docs = ["sphinx", "sphinx-immaterial"] -requests = ["requests"] +docs = [] +requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "0185c1bbc58179ade65dd018552473b2e26e6985c3f6b0f75d3b0cabab1dc8dc" +content-hash = "6d087e3b869d29046ce51c1030fa994197fef954d8a2f2f87c63442d03d99c71" diff --git a/pyproject.toml b/pyproject.toml index d07cf4c..0cff60a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,12 +51,10 @@ include = [ jsonschema = ">=4.0.0,<4.18.0" openapi-schema-validator = "^0.4.2" python = "^3.7.0" -requests = {version = "*", optional = true} importlib-resources = {version = "^5.8.0", python = "<3.9" } +typing-extensions = "^4.3.0" jsonschema-spec = "^0.1.1" lazy-object-proxy = "^1.7.1" -sphinx = {version = "^5.3.0", optional = true} -sphinx-immaterial = {version = "^0.11.0", optional = true} [tool.poetry.extras] dev = ["pre-commit"] @@ -73,6 +71,7 @@ mypy = "^0.971" isort = "^5.11.5" black = "^22.8.0" flynt = "^0.76" +deptry = { version = "^0.11.0", python = ">=3.8" } [tool.poetry.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" From 21b4c6a98a5de48638beef0e9548a87a44644a84 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 18:53:54 +0100 Subject: [PATCH 167/371] Add docker dependabot config --- .github/dependabot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6a7695c..799abf8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,5 +1,9 @@ version: 2 updates: + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" - package-ecosystem: "pip" directory: "/" schedule: From 938a7a495ae15e178203dca2da9b9cb2bd336e4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 17:54:54 +0000 Subject: [PATCH 168/371] Bump python from 3.7-alpine to 3.11-alpine Bumps python from 3.7-alpine to 3.11-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4be515a..fd3fb1c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7-alpine +FROM python:3.11-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.6 From ed4b020ac8dfebbf84df14816ce4816d27b48dea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 17:59:28 +0000 Subject: [PATCH 169/371] Bump mypy from 0.971 to 1.3.0 Bumps [mypy](https://github.com/python/mypy) from 0.971 to 1.3.0. - [Commits](https://github.com/python/mypy/compare/v0.971...v1.3.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 68 ++++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 37 insertions(+), 33 deletions(-) diff --git a/poetry.lock b/poetry.lock index aca4529..2f8c484 100644 --- a/poetry.lock +++ b/poetry.lock @@ -623,56 +623,60 @@ files = [ [[package]] name = "mypy" -version = "0.971" +version = "1.3.0" description = "Optional static typing for Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, - {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, - {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, - {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, - {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, - {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, - {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, - {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, - {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, - {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, - {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, - {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, - {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, - {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, - {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, - {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, - {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, - {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, - {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, + {file = "mypy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c1eb485cea53f4f5284e5baf92902cd0088b24984f4209e25981cc359d64448d"}, + {file = "mypy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c99c3ecf223cf2952638da9cd82793d8f3c0c5fa8b6ae2b2d9ed1e1ff51ba85"}, + {file = "mypy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:550a8b3a19bb6589679a7c3c31f64312e7ff482a816c96e0cecec9ad3a7564dd"}, + {file = "mypy-1.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cbc07246253b9e3d7d74c9ff948cd0fd7a71afcc2b77c7f0a59c26e9395cb152"}, + {file = "mypy-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:a22435632710a4fcf8acf86cbd0d69f68ac389a3892cb23fbad176d1cddaf228"}, + {file = "mypy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6e33bb8b2613614a33dff70565f4c803f889ebd2f859466e42b46e1df76018dd"}, + {file = "mypy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7d23370d2a6b7a71dc65d1266f9a34e4cde9e8e21511322415db4b26f46f6b8c"}, + {file = "mypy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:658fe7b674769a0770d4b26cb4d6f005e88a442fe82446f020be8e5f5efb2fae"}, + {file = "mypy-1.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6e42d29e324cdda61daaec2336c42512e59c7c375340bd202efa1fe0f7b8f8ca"}, + {file = "mypy-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:d0b6c62206e04061e27009481cb0ec966f7d6172b5b936f3ead3d74f29fe3dcf"}, + {file = "mypy-1.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:76ec771e2342f1b558c36d49900dfe81d140361dd0d2df6cd71b3db1be155409"}, + {file = "mypy-1.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebc95f8386314272bbc817026f8ce8f4f0d2ef7ae44f947c4664efac9adec929"}, + {file = "mypy-1.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:faff86aa10c1aa4a10e1a301de160f3d8fc8703b88c7e98de46b531ff1276a9a"}, + {file = "mypy-1.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8c5979d0deb27e0f4479bee18ea0f83732a893e81b78e62e2dda3e7e518c92ee"}, + {file = "mypy-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c5d2cc54175bab47011b09688b418db71403aefad07cbcd62d44010543fc143f"}, + {file = "mypy-1.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:87df44954c31d86df96c8bd6e80dfcd773473e877ac6176a8e29898bfb3501cb"}, + {file = "mypy-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:473117e310febe632ddf10e745a355714e771ffe534f06db40702775056614c4"}, + {file = "mypy-1.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:74bc9b6e0e79808bf8678d7678b2ae3736ea72d56eede3820bd3849823e7f305"}, + {file = "mypy-1.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:44797d031a41516fcf5cbfa652265bb994e53e51994c1bd649ffcd0c3a7eccbf"}, + {file = "mypy-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ddae0f39ca146972ff6bb4399f3b2943884a774b8771ea0a8f50e971f5ea5ba8"}, + {file = "mypy-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c4c42c60a8103ead4c1c060ac3cdd3ff01e18fddce6f1016e08939647a0e703"}, + {file = "mypy-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e86c2c6852f62f8f2b24cb7a613ebe8e0c7dc1402c61d36a609174f63e0ff017"}, + {file = "mypy-1.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f9dca1e257d4cc129517779226753dbefb4f2266c4eaad610fc15c6a7e14283e"}, + {file = "mypy-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:95d8d31a7713510685b05fbb18d6ac287a56c8f6554d88c19e73f724a445448a"}, + {file = "mypy-1.3.0-py3-none-any.whl", hash = "sha256:a8763e72d5d9574d45ce5881962bc8e9046bf7b375b0abf031f3e6811732a897"}, + {file = "mypy-1.3.0.tar.gz", hash = "sha256:e1f4d16e296f5135624b34e8fb741eb0eadedca90862405b1f1fde2040b9bd11"}, ] [package.dependencies] -mypy-extensions = ">=0.4.3" +mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} typing-extensions = ">=3.10" [package.extras] dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] python2 = ["typed-ast (>=1.4.0,<2)"] reports = ["lxml"] [[package]] name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." optional = false -python-versions = "*" +python-versions = ">=3.5" files = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] [[package]] @@ -1443,4 +1447,4 @@ requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "6d087e3b869d29046ce51c1030fa994197fef954d8a2f2f87c63442d03d99c71" +content-hash = "97e127c0df97e7a9e02380143cc6117998c19d327c04f351b4c21fd728dd6529" diff --git a/pyproject.toml b/pyproject.toml index 0cff60a..e28df8f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,7 @@ pytest = "^6.2.5" pytest-flake8 = "=1.0.7" pytest-cov = "^3.0.0" tox = "*" -mypy = "^0.971" +mypy = "^1.3" isort = "^5.11.5" black = "^22.8.0" flynt = "^0.76" From ec24924ca40f2d193c6d6e3078e21bc3049fb538 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 19:15:47 +0000 Subject: [PATCH 170/371] Bump flynt from 0.76 to 0.78 Bumps [flynt](https://github.com/ikamensh/flynt) from 0.76 to 0.78. - [Changelog](https://github.com/ikamensh/flynt/blob/master/CHANGELOG.md) - [Commits](https://github.com/ikamensh/flynt/compare/0.76...0.78) --- updated-dependencies: - dependency-name: flynt dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 15 +++++++++------ pyproject.toml | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2f8c484..3de0d83 100644 --- a/poetry.lock +++ b/poetry.lock @@ -334,18 +334,21 @@ pyflakes = ">=2.3.0,<2.4.0" [[package]] name = "flynt" -version = "0.76" +version = "0.78" description = "CLI tool to convert a python project's %-formatted strings to f-strings." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "flynt-0.76-py3-none-any.whl", hash = "sha256:fc122c5f589b0c4d019d7d33597f4925fd886a8e6fb3cbadb918e4baa3661687"}, - {file = "flynt-0.76.tar.gz", hash = "sha256:7a99c5a550ea9e8c21203f6999ed8ce69cbad7bc8465268469777cf06413193a"}, + {file = "flynt-0.78-py3-none-any.whl", hash = "sha256:3a4cf278518f7dec3af52c94b5e7c395f623186503a684b2ba28705522871e74"}, + {file = "flynt-0.78.tar.gz", hash = "sha256:15082167a538ea56b6ce4ca6874c22c739710759832dda78d8f43b6079b7e646"}, ] [package.dependencies] astor = "*" -tomli = ">=1.1.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] [[package]] name = "identify" @@ -1447,4 +1450,4 @@ requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "97e127c0df97e7a9e02380143cc6117998c19d327c04f351b4c21fd728dd6529" +content-hash = "6be6dc6a0429d79ac1eddec8957719d4d28f80cc2a6d6f74fccfb9f1146f100b" diff --git a/pyproject.toml b/pyproject.toml index e28df8f..01323ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ tox = "*" mypy = "^1.3" isort = "^5.11.5" black = "^22.8.0" -flynt = "^0.76" +flynt = "^0.78" deptry = { version = "^0.11.0", python = ">=3.8" } [tool.poetry.scripts] From 77bef3ce38a78022f42a4d83978e4e310e7d3963 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 19:24:20 +0000 Subject: [PATCH 171/371] Bump pytest-flake8 from 1.0.7 to 1.1.0 Bumps [pytest-flake8](https://github.com/tholo/pytest-flake8) from 1.0.7 to 1.1.0. - [Release notes](https://github.com/tholo/pytest-flake8/releases) - [Changelog](https://github.com/tholo/pytest-flake8/blob/master/CHANGELOG) - [Commits](https://github.com/tholo/pytest-flake8/compare/1.0.7...1.1.0) --- updated-dependencies: - dependency-name: pytest-flake8 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3de0d83..1c397b9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1002,13 +1002,13 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale [[package]] name = "pytest-flake8" -version = "1.0.7" +version = "1.1.0" description = "pytest plugin to check FLAKE8 requirements" optional = false python-versions = "*" files = [ - {file = "pytest-flake8-1.0.7.tar.gz", hash = "sha256:f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b"}, - {file = "pytest_flake8-1.0.7-py2.py3-none-any.whl", hash = "sha256:c28cf23e7d359753c896745fd4ba859495d02e16c84bac36caa8b1eec58f5bc1"}, + {file = "pytest-flake8-1.1.0.tar.gz", hash = "sha256:358d449ca06b80dbadcb43506cd3e38685d273b4968ac825da871bd4cc436202"}, + {file = "pytest_flake8-1.1.0-py2.py3-none-any.whl", hash = "sha256:f1b19dad0b9f0aa651d391c9527ebc20ac1a0f847aa78581094c747462bfa182"}, ] [package.dependencies] @@ -1450,4 +1450,4 @@ requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "6be6dc6a0429d79ac1eddec8957719d4d28f80cc2a6d6f74fccfb9f1146f100b" +content-hash = "d9d729463016b97b48fe5deb056d671f4a389f9d0ad75787075259b8ff67a172" diff --git a/pyproject.toml b/pyproject.toml index 01323ef..6fdcdf8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ requests = ["requests"] [tool.poetry.dev-dependencies] pre-commit = {version = "*", optional = true} pytest = "^6.2.5" -pytest-flake8 = "=1.0.7" +pytest-flake8 = "=1.1.0" pytest-cov = "^3.0.0" tox = "*" mypy = "^1.3" From 4b8851ade9f78021b0bb6fb5b68aca80232233ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 19:33:16 +0000 Subject: [PATCH 172/371] Bump pytest-cov from 3.0.0 to 4.1.0 Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 3.0.0 to 4.1.0. - [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest-cov/compare/v3.0.0...v4.1.0) --- updated-dependencies: - dependency-name: pytest-cov dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 10 +++++----- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1c397b9..84e88cf 100644 --- a/poetry.lock +++ b/poetry.lock @@ -984,13 +984,13 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm [[package]] name = "pytest-cov" -version = "3.0.0" +version = "4.1.0" description = "Pytest plugin for measuring coverage." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, - {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, ] [package.dependencies] @@ -1450,4 +1450,4 @@ requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "d9d729463016b97b48fe5deb056d671f4a389f9d0ad75787075259b8ff67a172" +content-hash = "767602d2abdc3e9d06e9dacd6d633709b355727c95031ea51b5a9ab8a9a3a56b" diff --git a/pyproject.toml b/pyproject.toml index 6fdcdf8..b4866a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,7 +65,7 @@ requests = ["requests"] pre-commit = {version = "*", optional = true} pytest = "^6.2.5" pytest-flake8 = "=1.1.0" -pytest-cov = "^3.0.0" +pytest-cov = "^4.1.0" tox = "*" mypy = "^1.3" isort = "^5.11.5" From 1e149c58e074cffd448a43815e47d6503f3cca2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 19:40:35 +0000 Subject: [PATCH 173/371] Bump black from 22.8.0 to 23.3.0 Bumps [black](https://github.com/psf/black) from 22.8.0 to 23.3.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/22.8.0...23.3.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 84 +++++++++++++++++++++----------------------------- pyproject.toml | 2 +- 2 files changed, 36 insertions(+), 50 deletions(-) diff --git a/poetry.lock b/poetry.lock index 84e88cf..b1ebc4b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -76,42 +76,45 @@ pytz = ">=2015.7" [[package]] name = "black" -version = "22.8.0" +version = "23.3.0" description = "The uncompromising code formatter." optional = false -python-versions = ">=3.6.2" -files = [ - {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, - {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, - {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, - {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, - {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, - {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, - {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, - {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, - {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, - {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, - {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, - {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, - {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, - {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, - {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, - {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, - {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, - {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, - {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, +python-versions = ">=3.7" +files = [ + {file = "black-23.3.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:0945e13506be58bf7db93ee5853243eb368ace1c08a24c65ce108986eac65915"}, + {file = "black-23.3.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:67de8d0c209eb5b330cce2469503de11bca4085880d62f1628bd9972cc3366b9"}, + {file = "black-23.3.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:7c3eb7cea23904399866c55826b31c1f55bbcd3890ce22ff70466b907b6775c2"}, + {file = "black-23.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32daa9783106c28815d05b724238e30718f34155653d4d6e125dc7daec8e260c"}, + {file = "black-23.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:35d1381d7a22cc5b2be2f72c7dfdae4072a3336060635718cc7e1ede24221d6c"}, + {file = "black-23.3.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:a8a968125d0a6a404842fa1bf0b349a568634f856aa08ffaff40ae0dfa52e7c6"}, + {file = "black-23.3.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c7ab5790333c448903c4b721b59c0d80b11fe5e9803d8703e84dcb8da56fec1b"}, + {file = "black-23.3.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d"}, + {file = "black-23.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70"}, + {file = "black-23.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326"}, + {file = "black-23.3.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:1d06691f1eb8de91cd1b322f21e3bfc9efe0c7ca1f0e1eb1db44ea367dff656b"}, + {file = "black-23.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50cb33cac881766a5cd9913e10ff75b1e8eb71babf4c7104f2e9c52da1fb7de2"}, + {file = "black-23.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e114420bf26b90d4b9daa597351337762b63039752bdf72bf361364c1aa05925"}, + {file = "black-23.3.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:48f9d345675bb7fbc3dd85821b12487e1b9a75242028adad0333ce36ed2a6d27"}, + {file = "black-23.3.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:714290490c18fb0126baa0fca0a54ee795f7502b44177e1ce7624ba1c00f2331"}, + {file = "black-23.3.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:064101748afa12ad2291c2b91c960be28b817c0c7eaa35bec09cc63aa56493c5"}, + {file = "black-23.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:562bd3a70495facf56814293149e51aa1be9931567474993c7942ff7d3533961"}, + {file = "black-23.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:e198cf27888ad6f4ff331ca1c48ffc038848ea9f031a3b40ba36aced7e22f2c8"}, + {file = "black-23.3.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30"}, + {file = "black-23.3.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3"}, + {file = "black-23.3.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266"}, + {file = "black-23.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab"}, + {file = "black-23.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb"}, + {file = "black-23.3.0-py3-none-any.whl", hash = "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4"}, + {file = "black-23.3.0.tar.gz", hash = "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940"}, ] [package.dependencies] click = ">=8.0.0" mypy-extensions = ">=0.4.3" +packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} @@ -716,18 +719,15 @@ docs = ["sphinx (>=5.3.0,<6.0.0)", "sphinx-immaterial (>=0.11.0,<0.12.0)"] [[package]] name = "packaging" -version = "21.3" +version = "23.1" description = "Core utilities for Python packages" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, ] -[package.dependencies] -pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" - [[package]] name = "pathable" version = "0.4.3" @@ -913,20 +913,6 @@ files = [ [package.extras] plugins = ["importlib-metadata"] -[[package]] -name = "pyparsing" -version = "3.0.9" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.6.8" -files = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - [[package]] name = "pyrsistent" version = "0.18.1" @@ -1450,4 +1436,4 @@ requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "767602d2abdc3e9d06e9dacd6d633709b355727c95031ea51b5a9ab8a9a3a56b" +content-hash = "5f5b00b738b3e2ccf441414fb91010aeb7265da8e7ce8ea67692ab0a7a0fd8df" diff --git a/pyproject.toml b/pyproject.toml index b4866a5..0f2d6e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.3" isort = "^5.11.5" -black = "^22.8.0" +black = "^23.3.0" flynt = "^0.78" deptry = { version = "^0.11.0", python = ">=3.8" } From e89ed4a27b617e23a89df343604b088b0bff1483 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 10 Jun 2023 23:01:13 +0100 Subject: [PATCH 174/371] python publish workflow trigger fix --- .github/workflows/python-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index fd8bcba..e3e198e 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: release: types: - - created + - published jobs: publish: From 41e4827e261dc8cbbd8c5784e81f1738cb73437a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 11 Jun 2023 10:11:53 +0100 Subject: [PATCH 175/371] Bump jsonschema-spec from 0.1.1 to 0.1.6 --- poetry.lock | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index b1ebc4b..e9ce272 100644 --- a/poetry.lock +++ b/poetry.lock @@ -497,20 +497,21 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-spec" -version = "0.1.1" +version = "0.1.6" description = "JSONSchema Spec with object-oriented paths" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ - {file = "jsonschema-spec-0.1.1.tar.gz", hash = "sha256:2eaf5d20c017921950df53d898e0e85029901d83c28730f0fa20813648c7af22"}, - {file = "jsonschema_spec-0.1.1-py3-none-any.whl", hash = "sha256:5fa06f740d81de4a46d51ffb847ea381d09c4a5872bf0f17d7e0d4bd862d687b"}, + {file = "jsonschema_spec-0.1.6-py3-none-any.whl", hash = "sha256:f2206d18c89d1824c1f775ba14ed039743b41a9167bd2c5bdb774b66b3ca0bbf"}, + {file = "jsonschema_spec-0.1.6.tar.gz", hash = "sha256:90215863b56e212086641956b20127ccbf6d8a3a38343dad01d6a74d19482f76"}, ] [package.dependencies] -jsonschema = ">=4.0.0,<5.0.0" +jsonschema = ">=4.0.0,<4.18.0" pathable = ">=0.4.1,<0.5.0" PyYAML = ">=5.1" -typing-extensions = ">=4.3.0,<5.0.0" +requests = ">=2.31.0,<3.0.0" +typing-extensions = {version = "<4.6.0", markers = "python_version < \"3.8\""} [[package]] name = "lazy-object-proxy" From 86de66bfc01c87e32e16b798e050a5f35c05e3cc Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 11 Jun 2023 19:09:58 +0100 Subject: [PATCH 176/371] readthedocs poetry extra fix --- .readthedocs.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 1efe11c..59848f9 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -5,10 +5,13 @@ sphinx: formats: all -python: - version: 3.8 - install: - - method: pip - path: . - extra_requirements: - - docs +build: + os: ubuntu-20.04 + tools: + python: "3.9" + jobs: + post_create_environment: + - pip install poetry + - poetry config virtualenvs.create false + post_install: + - poetry install --with docs From c82f7a0c1e8a69ece0a44e19c4100886c936e36f Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 11 Jun 2023 23:41:26 +0100 Subject: [PATCH 177/371] Bump typing-extensions from 4.3.0 to 4.5.0 --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index e9ce272..b48fe52 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1368,13 +1368,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.3.0" +version = "4.5.0" description = "Backported and Experimental Type Hints for Python 3.7+" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, - {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, + {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, + {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, ] [[package]] @@ -1437,4 +1437,4 @@ requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "5f5b00b738b3e2ccf441414fb91010aeb7265da8e7ce8ea67692ab0a7a0fd8df" +content-hash = "4d5c01e18ffb0b8685c5587334fb10b54c7df3cca883f451e5a0ee2ed26dc0e0" diff --git a/pyproject.toml b/pyproject.toml index 0f2d6e9..b539354 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,7 @@ jsonschema = ">=4.0.0,<4.18.0" openapi-schema-validator = "^0.4.2" python = "^3.7.0" importlib-resources = {version = "^5.8.0", python = "<3.9" } -typing-extensions = "^4.3.0" +typing-extensions = {version = "^4.5.0", python = "<3.8" } jsonschema-spec = "^0.1.1" lazy-object-proxy = "^1.7.1" From 3c2941c0b6ef5895af961a86e94c14cd9ab24ecc Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 12 Jun 2023 00:06:32 +0100 Subject: [PATCH 178/371] Version 0.5.7 --- .bumpversion.cfg | 3 +-- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 16a3d1d..37b1881 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.6 +current_version = 0.5.7 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) @@ -15,4 +15,3 @@ message = Version {new_version} [bumpversion:file:pyproject.toml] search = version = "{current_version}" replace = version = "{new_version}" - diff --git a/Dockerfile b/Dockerfile index fd3fb1c..0fce1f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.11-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.6 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.7 RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 05d5ffd..c9b109d 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.6" +__version__ = "0.5.7" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index b539354..9da4c7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.6" +version = "0.5.7" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 7eb1dbfa23a0ef7a95c3d44439e170e4497d6478 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 12 Jun 2023 00:12:36 +0100 Subject: [PATCH 179/371] python publish workflow poetry fix --- .github/workflows/python-publish.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index e3e198e..afb77e7 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -20,10 +20,8 @@ jobs: with: python-version: '3.x' - - name: Bootstrap poetry - run: | - curl -sL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python - -y - echo "$HOME/.local/bin" >> $GITHUB_PATH + - name: Set up poetry + uses: Gr1N/setup-poetry@v8 - name: Build run: poetry build From 8069827f6ba97aa70569d01e763233b21bfb9e68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 13:07:06 +0000 Subject: [PATCH 180/371] Bump pytest from 6.2.5 to 7.3.2 Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.5 to 7.3.2. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/6.2.5...7.3.2) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 42 ++++++++++++++++++++++-------------------- pyproject.toml | 2 +- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/poetry.lock b/poetry.lock index b48fe52..860099b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -33,16 +33,6 @@ files = [ {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, ] -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] - [[package]] name = "attrs" version = "22.1.0" @@ -303,6 +293,20 @@ files = [ {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, ] +[[package]] +name = "exceptiongroup" +version = "1.1.1" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, + {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, +] + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "filelock" version = "3.8.0" @@ -946,28 +950,26 @@ files = [ [[package]] name = "pytest" -version = "6.2.5" +version = "7.3.2" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, + {file = "pytest-7.3.2-py3-none-any.whl", hash = "sha256:cdcbd012c9312258922f8cd3f1b62a6580fdced17db6014896053d47cddf9295"}, + {file = "pytest-7.3.2.tar.gz", hash = "sha256:ee990a3cc55ba808b80795a79944756f315c67c12b56abd3ac993a7b8c17030b"}, ] [package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -toml = "*" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -1437,4 +1439,4 @@ requests = [] [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "4d5c01e18ffb0b8685c5587334fb10b54c7df3cca883f451e5a0ee2ed26dc0e0" +content-hash = "3a670c9e568dc0e449f8e682c7fb1b17f2439dbaa31e1bf8df63c6fc366c5cbe" diff --git a/pyproject.toml b/pyproject.toml index 9da4c7f..e89a6c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,7 +63,7 @@ requests = ["requests"] [tool.poetry.dev-dependencies] pre-commit = {version = "*", optional = true} -pytest = "^6.2.5" +pytest = "^7.3.2" pytest-flake8 = "=1.1.0" pytest-cov = "^4.1.0" tox = "*" From 1ff41c17755dda729d684c141f0294d8ba6644c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 15:04:50 +0000 Subject: [PATCH 181/371] Bump tox from 3.25.1 to 4.5.1 Bumps [tox](https://github.com/tox-dev/tox) from 3.25.1 to 4.5.1. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/3.25.1...4.5.1) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 131 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 78 insertions(+), 53 deletions(-) diff --git a/poetry.lock b/poetry.lock index 860099b..93ab8bf 100644 --- a/poetry.lock +++ b/poetry.lock @@ -114,6 +114,17 @@ d = ["aiohttp (>=3.7.4)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] +[[package]] +name = "cachetools" +version = "5.3.1" +description = "Extensible memoizing collections and decorators" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, + {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, +] + [[package]] name = "certifi" version = "2022.12.7" @@ -309,18 +320,18 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.8.0" +version = "3.12.1" description = "A platform independent file lock." optional = false python-versions = ">=3.7" files = [ - {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, - {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, + {file = "filelock-3.12.1-py3-none-any.whl", hash = "sha256:42f1e4ff2b497311213d61ad7aac5fed9050608e5309573f101eefa94143134a"}, + {file = "filelock-3.12.1.tar.gz", hash = "sha256:82b1f7da46f0ae42abf1bc78e548667f484ac59d2bcec38c713cee7e2eb51e83"}, ] [package.extras] -docs = ["furo (>=2022.6.21)", "sphinx (>=5.1.1)", "sphinx-autodoc-typehints (>=1.19.1)"] -testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pytest-cov (>=3)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] [[package]] name = "flake8" @@ -395,13 +406,13 @@ files = [ [[package]] name = "importlib-metadata" -version = "4.12.0" +version = "6.6.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, - {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, + {file = "importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"}, + {file = "importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"}, ] [package.dependencies] @@ -409,9 +420,9 @@ typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] +testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] [[package]] name = "importlib-resources" @@ -768,18 +779,21 @@ files = [ [[package]] name = "platformdirs" -version = "2.5.2" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "3.5.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, + {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, + {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} + [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] -test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] [[package]] name = "pluggy" @@ -819,17 +833,6 @@ pyyaml = ">=5.1" toml = "*" virtualenv = ">=20.0.8" -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - [[package]] name = "pycodestyle" version = "2.7.0" @@ -918,6 +921,25 @@ files = [ [package.extras] plugins = ["importlib-metadata"] +[[package]] +name = "pyproject-api" +version = "1.5.1" +description = "API to interact with the python pyproject.toml based projects" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyproject_api-1.5.1-py3-none-any.whl", hash = "sha256:4698a3777c2e0f6b624f8a4599131e2a25376d90fe8d146d7ac74c67c6f97c43"}, + {file = "pyproject_api-1.5.1.tar.gz", hash = "sha256:435f46547a9ff22cf4208ee274fca3e2869aeb062a4834adfc99a4dd64af3cf9"}, +] + +[package.dependencies] +packaging = ">=23" +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +docs = ["furo (>=2022.12.7)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] +testing = ["covdefaults (>=2.2.2)", "importlib-metadata (>=6)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "virtualenv (>=20.17.1)", "wheel (>=0.38.4)"] + [[package]] name = "pyrsistent" version = "0.18.1" @@ -1291,7 +1313,7 @@ test = ["pytest"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -optional = false +optional = true python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, @@ -1311,29 +1333,32 @@ files = [ [[package]] name = "tox" -version = "3.25.1" +version = "4.5.1" description = "tox is a generic virtualenv management and test command line tool" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.7" files = [ - {file = "tox-3.25.1-py2.py3-none-any.whl", hash = "sha256:c38e15f4733683a9cc0129fba078633e07eb0961f550a010ada879e95fb32632"}, - {file = "tox-3.25.1.tar.gz", hash = "sha256:c138327815f53bc6da4fe56baec5f25f00622ae69ef3fe4e1e385720e22486f9"}, + {file = "tox-4.5.1-py3-none-any.whl", hash = "sha256:d25a2e6cb261adc489604fafd76cd689efeadfa79709965e965668d6d3f63046"}, + {file = "tox-4.5.1.tar.gz", hash = "sha256:5a2eac5fb816779dfdf5cb00fecbc27eb0524e4626626bb1de84747b24cacc56"}, ] [package.dependencies] -colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} -filelock = ">=3.0.0" -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -packaging = ">=14" -pluggy = ">=0.12.0" -py = ">=1.4.17" -six = ">=1.14.0" -toml = ">=0.9.4" -virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7" +cachetools = ">=5.3" +chardet = ">=5.1" +colorama = ">=0.4.6" +filelock = ">=3.11" +importlib-metadata = {version = ">=6.4.1", markers = "python_version < \"3.8\""} +packaging = ">=23.1" +platformdirs = ">=3.2" +pluggy = ">=1" +pyproject-api = ">=1.5.1" +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} +virtualenv = ">=20.21" [package.extras] -docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] -testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"] +docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-argparse-cli (>=1.11)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2022.1.2b11)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] +testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "devpi-process (>=0.3)", "diff-cover (>=7.5)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.14)", "psutil (>=5.9.4)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-xdist (>=3.2.1)", "re-assert (>=1.1)", "time-machine (>=2.9)", "wheel (>=0.40)"] [[package]] name = "typed-ast" @@ -1397,24 +1422,24 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "virtualenv" -version = "20.16.4" +version = "20.23.0" description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "virtualenv-20.16.4-py3-none-any.whl", hash = "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22"}, - {file = "virtualenv-20.16.4.tar.gz", hash = "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782"}, + {file = "virtualenv-20.23.0-py3-none-any.whl", hash = "sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e"}, + {file = "virtualenv-20.23.0.tar.gz", hash = "sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924"}, ] [package.dependencies] -distlib = ">=0.3.5,<1" -filelock = ">=3.4.1,<4" -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.8\""} -platformdirs = ">=2.4,<3" +distlib = ">=0.3.6,<1" +filelock = ">=3.11,<4" +importlib-metadata = {version = ">=6.4.1", markers = "python_version < \"3.8\""} +platformdirs = ">=3.2,<4" [package.extras] -docs = ["proselint (>=0.13)", "sphinx (>=5.1.1)", "sphinx-argparse (>=0.3.1)", "sphinx-rtd-theme (>=1)", "towncrier (>=21.9)"] -testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=21.3)", "pytest (>=7.0.1)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.6.1)", "pytest-randomly (>=3.10.3)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.7.1)", "time-machine (>=2.9)"] [[package]] name = "zipp" From 40e6926ba8ecff72a8e3dbd377c6fb9f67f291ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 15:06:11 +0000 Subject: [PATCH 182/371] Bump pre-commit from 2.20.0 to 2.21.0 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.20.0 to 2.21.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v2.20.0...v2.21.0) --- updated-dependencies: - dependency-name: pre-commit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 860099b..f367e64 100644 --- a/poetry.lock +++ b/poetry.lock @@ -801,13 +801,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "2.20.0" +version = "2.21.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = true python-versions = ">=3.7" files = [ - {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, - {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, + {file = "pre_commit-2.21.0-py2.py3-none-any.whl", hash = "sha256:e2f91727039fc39a92f58a588a25b87f936de6567eed4f0e673e0507edc75bad"}, + {file = "pre_commit-2.21.0.tar.gz", hash = "sha256:31ef31af7e474a8d8995027fefdfcf509b5c913ff31f2015b4ec4beb26a6f658"}, ] [package.dependencies] @@ -816,8 +816,7 @@ identify = ">=1.0.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} nodeenv = ">=0.11.1" pyyaml = ">=5.1" -toml = "*" -virtualenv = ">=20.0.8" +virtualenv = ">=20.10.0" [[package]] name = "py" From 96ad36a36636d73e83fef95d4ef74ddb687b3707 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 11 Jun 2023 23:37:26 +0100 Subject: [PATCH 183/371] drop python 3.7 support --- .github/workflows/python-test.yml | 3 +- .travis.yml | 1 - .../validation/protocols.py | 10 +-- poetry.lock | 67 +------------------ pyproject.toml | 6 +- 5 files changed, 7 insertions(+), 80 deletions(-) diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 38922c2..76eca5f 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] os: [windows-latest, ubuntu-latest] fail-fast: false steps: @@ -60,7 +60,6 @@ jobs: - name: Check dependencies run: poetry run deptry . - if: ${{ matrix.python-version != '3.7' }} - name: Upload coverage uses: codecov/codecov-action@v1 diff --git a/.travis.yml b/.travis.yml index ba691cf..693dc34 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,6 @@ language: python sudo: false matrix: include: - - python: '3.7' - python: '3.8' - python: '3.9' - python: '3.10-dev' diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py index fa30938..8480209 100644 --- a/openapi_spec_validator/validation/protocols.py +++ b/openapi_spec_validator/validation/protocols.py @@ -1,15 +1,9 @@ -import sys from typing import Any from typing import Hashable from typing import Iterator from typing import Mapping - -if sys.version_info >= (3, 8): - from typing import Protocol - from typing import runtime_checkable -else: - from typing_extensions import Protocol - from typing_extensions import runtime_checkable +from typing import Protocol +from typing import runtime_checkable from openapi_spec_validator.validation.exceptions import OpenAPIValidationError diff --git a/poetry.lock b/poetry.lock index 57f1d64..92441e8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -105,7 +105,6 @@ packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] @@ -185,7 +184,6 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" @@ -345,7 +343,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} mccabe = ">=0.6.0,<0.7.0" pycodestyle = ">=2.7.0,<2.8.0" pyflakes = ">=2.3.0,<2.4.0" @@ -416,7 +413,6 @@ files = [ ] [package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] @@ -500,11 +496,9 @@ files = [ [package.dependencies] attrs = ">=17.4.0" -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] @@ -526,7 +520,6 @@ jsonschema = ">=4.0.0,<4.18.0" pathable = ">=0.4.1,<0.5.0" PyYAML = ">=5.1" requests = ">=2.31.0,<3.0.0" -typing-extensions = {version = "<4.6.0", markers = "python_version < \"3.8\""} [[package]] name = "lazy-object-proxy" @@ -681,7 +674,6 @@ files = [ [package.dependencies] mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} typing-extensions = ">=3.10" [package.extras] @@ -788,9 +780,6 @@ files = [ {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} - [package.extras] docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] @@ -806,9 +795,6 @@ files = [ {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, ] -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] @@ -827,7 +813,6 @@ files = [ [package.dependencies] cfgv = ">=2.0.0" identify = ">=1.0.0" -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} nodeenv = ">=0.11.1" pyyaml = ">=5.1" virtualenv = ">=20.10.0" @@ -983,7 +968,6 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" @@ -1308,17 +1292,6 @@ files = [ lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -optional = true -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] - [[package]] name = "tomli" version = "2.0.1" @@ -1346,52 +1319,17 @@ cachetools = ">=5.3" chardet = ">=5.1" colorama = ">=0.4.6" filelock = ">=3.11" -importlib-metadata = {version = ">=6.4.1", markers = "python_version < \"3.8\""} packaging = ">=23.1" platformdirs = ">=3.2" pluggy = ">=1" pyproject-api = ">=1.5.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} virtualenv = ">=20.21" [package.extras] docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-argparse-cli (>=1.11)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2022.1.2b11)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "devpi-process (>=0.3)", "diff-cover (>=7.5)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.14)", "psutil (>=5.9.4)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-xdist (>=3.2.1)", "re-assert (>=1.1)", "time-machine (>=2.9)", "wheel (>=0.40)"] -[[package]] -name = "typed-ast" -version = "1.5.4" -description = "a fork of Python 2 and 3 ast modules with type comment support" -optional = false -python-versions = ">=3.6" -files = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, -] - [[package]] name = "typing-extensions" version = "4.5.0" @@ -1433,7 +1371,6 @@ files = [ [package.dependencies] distlib = ">=0.3.6,<1" filelock = ">=3.11,<4" -importlib-metadata = {version = ">=6.4.1", markers = "python_version < \"3.8\""} platformdirs = ">=3.2,<4" [package.extras] @@ -1462,5 +1399,5 @@ requests = [] [metadata] lock-version = "2.0" -python-versions = "^3.7.0" -content-hash = "3a670c9e568dc0e449f8e682c7fb1b17f2439dbaa31e1bf8df63c6fc366c5cbe" +python-versions = "^3.8.0" +content-hash = "b86a1d81b4bb1eb9da80d03026e6365bcc703872bb9b49157bfe71d7f8af6ed1" diff --git a/pyproject.toml b/pyproject.toml index e89a6c0..7d14504 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,6 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", @@ -50,9 +49,8 @@ include = [ [tool.poetry.dependencies] jsonschema = ">=4.0.0,<4.18.0" openapi-schema-validator = "^0.4.2" -python = "^3.7.0" +python = "^3.8.0" importlib-resources = {version = "^5.8.0", python = "<3.9" } -typing-extensions = {version = "^4.5.0", python = "<3.8" } jsonschema-spec = "^0.1.1" lazy-object-proxy = "^1.7.1" @@ -71,7 +69,7 @@ mypy = "^1.3" isort = "^5.11.5" black = "^23.3.0" flynt = "^0.78" -deptry = { version = "^0.11.0", python = ">=3.8" } +deptry = "^0.11.0" [tool.poetry.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" From caa3945a3d287d6a0e1e630f2a5b965a179ed39e Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 15 Jun 2023 10:21:50 +0100 Subject: [PATCH 184/371] bump packages --- docs/conf.py | 1 - poetry.lock | 671 +++++++++++++++++++++++++++++---------------------- 2 files changed, 379 insertions(+), 293 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index b644a7f..1eac603 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,6 @@ }, "repo_url": "https://github.com/python-openapi/openapi-spec-validator/", "repo_name": "openapi-spec-validator", - "repo_type": "github", "icon": { "repo": "fontawesome/brands/github-alt", "edit": "material/file-edit-outline", diff --git a/poetry.lock b/poetry.lock index 92441e8..33a058c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -35,34 +35,35 @@ files = [ [[package]] name = "attrs" -version = "22.1.0" +version = "23.1.0" description = "Classes Without Boilerplate" optional = false -python-versions = ">=3.5" +python-versions = ">=3.7" files = [ - {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, - {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, + {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, + {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, ] [package.extras] -dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] -docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] -tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] -tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[docs,tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] [[package]] name = "babel" -version = "2.11.0" +version = "2.12.1" description = "Internationalization utilities" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, - {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, + {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, + {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, ] [package.dependencies] -pytz = ">=2015.7" +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" @@ -126,13 +127,13 @@ files = [ [[package]] name = "certifi" -version = "2022.12.7" +version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, + {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, + {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, ] [[package]] @@ -159,18 +160,88 @@ files = [ [[package]] name = "charset-normalizer" -version = "2.1.1" +version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false -python-versions = ">=3.6.0" +python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, - {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, + {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, + {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, ] -[package.extras] -unicode-backport = ["unicodedata2"] - [[package]] name = "click" version = "8.1.3" @@ -198,62 +269,71 @@ files = [ [[package]] name = "coverage" -version = "7.0.5" +version = "7.2.7" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.7" files = [ - {file = "coverage-7.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2a7f23bbaeb2a87f90f607730b45564076d870f1fb07b9318d0c21f36871932b"}, - {file = "coverage-7.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c18d47f314b950dbf24a41787ced1474e01ca816011925976d90a88b27c22b89"}, - {file = "coverage-7.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef14d75d86f104f03dea66c13188487151760ef25dd6b2dbd541885185f05f40"}, - {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66e50680e888840c0995f2ad766e726ce71ca682e3c5f4eee82272c7671d38a2"}, - {file = "coverage-7.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9fed35ca8c6e946e877893bbac022e8563b94404a605af1d1e6accc7eb73289"}, - {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d8d04e755934195bdc1db45ba9e040b8d20d046d04d6d77e71b3b34a8cc002d0"}, - {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e109f1c9a3ece676597831874126555997c48f62bddbcace6ed17be3e372de8"}, - {file = "coverage-7.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0a1890fca2962c4f1ad16551d660b46ea77291fba2cc21c024cd527b9d9c8809"}, - {file = "coverage-7.0.5-cp310-cp310-win32.whl", hash = "sha256:be9fcf32c010da0ba40bf4ee01889d6c737658f4ddff160bd7eb9cac8f094b21"}, - {file = "coverage-7.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:cbfcba14a3225b055a28b3199c3d81cd0ab37d2353ffd7f6fd64844cebab31ad"}, - {file = "coverage-7.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:30b5fec1d34cc932c1bc04017b538ce16bf84e239378b8f75220478645d11fca"}, - {file = "coverage-7.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1caed2367b32cc80a2b7f58a9f46658218a19c6cfe5bc234021966dc3daa01f0"}, - {file = "coverage-7.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d254666d29540a72d17cc0175746cfb03d5123db33e67d1020e42dae611dc196"}, - {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19245c249aa711d954623d94f23cc94c0fd65865661f20b7781210cb97c471c0"}, - {file = "coverage-7.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b05ed4b35bf6ee790832f68932baf1f00caa32283d66cc4d455c9e9d115aafc"}, - {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:29de916ba1099ba2aab76aca101580006adfac5646de9b7c010a0f13867cba45"}, - {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e057e74e53db78122a3979f908973e171909a58ac20df05c33998d52e6d35757"}, - {file = "coverage-7.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:411d4ff9d041be08fdfc02adf62e89c735b9468f6d8f6427f8a14b6bb0a85095"}, - {file = "coverage-7.0.5-cp311-cp311-win32.whl", hash = "sha256:52ab14b9e09ce052237dfe12d6892dd39b0401690856bcfe75d5baba4bfe2831"}, - {file = "coverage-7.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:1f66862d3a41674ebd8d1a7b6f5387fe5ce353f8719040a986551a545d7d83ea"}, - {file = "coverage-7.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b69522b168a6b64edf0c33ba53eac491c0a8f5cc94fa4337f9c6f4c8f2f5296c"}, - {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436e103950d05b7d7f55e39beeb4d5be298ca3e119e0589c0227e6d0b01ee8c7"}, - {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c56bec53d6e3154eaff6ea941226e7bd7cc0d99f9b3756c2520fc7a94e6d96"}, - {file = "coverage-7.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a38362528a9115a4e276e65eeabf67dcfaf57698e17ae388599568a78dcb029"}, - {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f67472c09a0c7486e27f3275f617c964d25e35727af952869dd496b9b5b7f6a3"}, - {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:220e3fa77d14c8a507b2d951e463b57a1f7810a6443a26f9b7591ef39047b1b2"}, - {file = "coverage-7.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ecb0f73954892f98611e183f50acdc9e21a4653f294dfbe079da73c6378a6f47"}, - {file = "coverage-7.0.5-cp37-cp37m-win32.whl", hash = "sha256:d8f3e2e0a1d6777e58e834fd5a04657f66affa615dae61dd67c35d1568c38882"}, - {file = "coverage-7.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9e662e6fc4f513b79da5d10a23edd2b87685815b337b1a30cd11307a6679148d"}, - {file = "coverage-7.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:790e4433962c9f454e213b21b0fd4b42310ade9c077e8edcb5113db0818450cb"}, - {file = "coverage-7.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49640bda9bda35b057b0e65b7c43ba706fa2335c9a9896652aebe0fa399e80e6"}, - {file = "coverage-7.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d66187792bfe56f8c18ba986a0e4ae44856b1c645336bd2c776e3386da91e1dd"}, - {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:276f4cd0001cd83b00817c8db76730938b1ee40f4993b6a905f40a7278103b3a"}, - {file = "coverage-7.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95304068686545aa368b35dfda1cdfbbdbe2f6fe43de4a2e9baa8ebd71be46e2"}, - {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:17e01dd8666c445025c29684d4aabf5a90dc6ef1ab25328aa52bedaa95b65ad7"}, - {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea76dbcad0b7b0deb265d8c36e0801abcddf6cc1395940a24e3595288b405ca0"}, - {file = "coverage-7.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:50a6adc2be8edd7ee67d1abc3cd20678987c7b9d79cd265de55941e3d0d56499"}, - {file = "coverage-7.0.5-cp38-cp38-win32.whl", hash = "sha256:e4ce984133b888cc3a46867c8b4372c7dee9cee300335e2925e197bcd45b9e16"}, - {file = "coverage-7.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:4a950f83fd3f9bca23b77442f3a2b2ea4ac900944d8af9993743774c4fdc57af"}, - {file = "coverage-7.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c2155943896ac78b9b0fd910fb381186d0c345911f5333ee46ac44c8f0e43ab"}, - {file = "coverage-7.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:54f7e9705e14b2c9f6abdeb127c390f679f6dbe64ba732788d3015f7f76ef637"}, - {file = "coverage-7.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ee30375b409d9a7ea0f30c50645d436b6f5dfee254edffd27e45a980ad2c7f4"}, - {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b78729038abea6a5df0d2708dce21e82073463b2d79d10884d7d591e0f385ded"}, - {file = "coverage-7.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13250b1f0bd023e0c9f11838bdeb60214dd5b6aaf8e8d2f110c7e232a1bff83b"}, - {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c407b1950b2d2ffa091f4e225ca19a66a9bd81222f27c56bd12658fc5ca1209"}, - {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c76a3075e96b9c9ff00df8b5f7f560f5634dffd1658bafb79eb2682867e94f78"}, - {file = "coverage-7.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f26648e1b3b03b6022b48a9b910d0ae209e2d51f50441db5dce5b530fad6d9b1"}, - {file = "coverage-7.0.5-cp39-cp39-win32.whl", hash = "sha256:ba3027deb7abf02859aca49c865ece538aee56dcb4871b4cced23ba4d5088904"}, - {file = "coverage-7.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:949844af60ee96a376aac1ded2a27e134b8c8d35cc006a52903fc06c24a3296f"}, - {file = "coverage-7.0.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:b9727ac4f5cf2cbf87880a63870b5b9730a8ae3a4a360241a0fdaa2f71240ff0"}, - {file = "coverage-7.0.5.tar.gz", hash = "sha256:051afcbd6d2ac39298d62d340f94dbb6a1f31de06dfaf6fcef7b759dd3860c45"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, + {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, + {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, + {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, + {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, + {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, + {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, + {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, + {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, + {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, + {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, + {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, + {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, + {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, + {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, + {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, + {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, ] [package.dependencies] @@ -318,13 +398,13 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.12.1" +version = "3.12.2" description = "A platform independent file lock." optional = false python-versions = ">=3.7" files = [ - {file = "filelock-3.12.1-py3-none-any.whl", hash = "sha256:42f1e4ff2b497311213d61ad7aac5fed9050608e5309573f101eefa94143134a"}, - {file = "filelock-3.12.1.tar.gz", hash = "sha256:82b1f7da46f0ae42abf1bc78e548667f484ac59d2bcec38c713cee7e2eb51e83"}, + {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, + {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, ] [package.extras] @@ -333,19 +413,19 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "p [[package]] name = "flake8" -version = "3.9.2" +version = "5.0.4" description = "the modular source code checker: pep8 pyflakes and co" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6.1" files = [ - {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, - {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, + {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, + {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, ] [package.dependencies] -mccabe = ">=0.6.0,<0.7.0" -pycodestyle = ">=2.7.0,<2.8.0" -pyflakes = ">=2.3.0,<2.4.0" +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.9.0,<2.10.0" +pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "flynt" @@ -367,13 +447,13 @@ dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] [[package]] name = "identify" -version = "2.5.3" +version = "2.5.24" description = "File identification library for Python" optional = true python-versions = ">=3.7" files = [ - {file = "identify-2.5.3-py2.py3-none-any.whl", hash = "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893"}, - {file = "identify-2.5.3.tar.gz", hash = "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44"}, + {file = "identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"}, + {file = "identify-2.5.24.tar.gz", hash = "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4"}, ] [package.extras] @@ -381,13 +461,13 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.3" +version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] [[package]] @@ -440,28 +520,28 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec [[package]] name = "iniconfig" -version = "1.1.1" -description = "iniconfig: brain-dead simple config-ini parsing" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] [[package]] name = "isort" -version = "5.11.5" +version = "5.12.0" description = "A Python utility / library to sort Python imports." optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" files = [ - {file = "isort-5.11.5-py3-none-any.whl", hash = "sha256:ba1d72fb2595a01c7895a5128f9585a5cc4b6d395f1c8d514989b9a7eb2a8746"}, - {file = "isort-5.11.5.tar.gz", hash = "sha256:6be1f76a507cb2ecf16c7cf14a37e41609ca082330be4e3436a18ef74add55db"}, + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, ] [package.extras] -colors = ["colorama (>=0.4.3,<0.5.0)"] +colors = ["colorama (>=0.4.3)"] pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] plugins = ["setuptools"] requirements-deprecated-finder = ["pip-api", "pipreqs"] @@ -568,72 +648,72 @@ files = [ [[package]] name = "markupsafe" -version = "2.1.2" +version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, - {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, ] [[package]] name = "mccabe" -version = "0.6.1" +version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] [[package]] @@ -695,13 +775,13 @@ files = [ [[package]] name = "nodeenv" -version = "1.7.0" +version = "1.8.0" description = "Node.js virtual environment builder" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ - {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, - {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, ] [package.dependencies] @@ -749,13 +829,13 @@ files = [ [[package]] name = "pathspec" -version = "0.10.0" +version = "0.11.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.7" files = [ - {file = "pathspec-0.10.0-py3-none-any.whl", hash = "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015"}, - {file = "pathspec-0.10.0.tar.gz", hash = "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85"}, + {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, + {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, ] [[package]] @@ -771,18 +851,18 @@ files = [ [[package]] name = "platformdirs" -version = "3.5.1" +version = "3.5.3" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, - {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, + {file = "platformdirs-3.5.3-py3-none-any.whl", hash = "sha256:0ade98a4895e87dc51d47151f7d2ec290365a585151d97b4d8d6312ed6132fed"}, + {file = "platformdirs-3.5.3.tar.gz", hash = "sha256:e48fabd87db8f3a7df7150a4a5ea22c546ee8bc39bc2473244730d4b56d2cc4e"}, ] [package.extras] -docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)"] [[package]] name = "pluggy" @@ -801,13 +881,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "2.21.0" +version = "3.3.3" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = true -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pre_commit-2.21.0-py2.py3-none-any.whl", hash = "sha256:e2f91727039fc39a92f58a588a25b87f936de6567eed4f0e673e0507edc75bad"}, - {file = "pre_commit-2.21.0.tar.gz", hash = "sha256:31ef31af7e474a8d8995027fefdfcf509b5c913ff31f2015b4ec4beb26a6f658"}, + {file = "pre_commit-3.3.3-py2.py3-none-any.whl", hash = "sha256:10badb65d6a38caff29703362271d7dca483d01da88f9d7e05d0b97171c136cb"}, + {file = "pre_commit-3.3.3.tar.gz", hash = "sha256:a2256f489cd913d575c145132ae196fe335da32d91a8294b7afe6622335dd023"}, ] [package.dependencies] @@ -819,58 +899,58 @@ virtualenv = ">=20.10.0" [[package]] name = "pycodestyle" -version = "2.7.0" +version = "2.9.1" description = "Python style guide checker" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" files = [ - {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, - {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, + {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, + {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, ] [[package]] name = "pydantic" -version = "1.10.5" +version = "1.10.9" description = "Data validation and settings management using python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, - {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, - {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, - {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, - {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, - {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, - {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, - {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, - {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, - {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, + {file = "pydantic-1.10.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e692dec4a40bfb40ca530e07805b1208c1de071a18d26af4a2a0d79015b352ca"}, + {file = "pydantic-1.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c52eb595db83e189419bf337b59154bdcca642ee4b2a09e5d7797e41ace783f"}, + {file = "pydantic-1.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:939328fd539b8d0edf244327398a667b6b140afd3bf7e347cf9813c736211896"}, + {file = "pydantic-1.10.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b48d3d634bca23b172f47f2335c617d3fcb4b3ba18481c96b7943a4c634f5c8d"}, + {file = "pydantic-1.10.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f0b7628fb8efe60fe66fd4adadd7ad2304014770cdc1f4934db41fe46cc8825f"}, + {file = "pydantic-1.10.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e1aa5c2410769ca28aa9a7841b80d9d9a1c5f223928ca8bec7e7c9a34d26b1d4"}, + {file = "pydantic-1.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:eec39224b2b2e861259d6f3c8b6290d4e0fbdce147adb797484a42278a1a486f"}, + {file = "pydantic-1.10.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d111a21bbbfd85c17248130deac02bbd9b5e20b303338e0dbe0faa78330e37e0"}, + {file = "pydantic-1.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e9aec8627a1a6823fc62fb96480abe3eb10168fd0d859ee3d3b395105ae19a7"}, + {file = "pydantic-1.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07293ab08e7b4d3c9d7de4949a0ea571f11e4557d19ea24dd3ae0c524c0c334d"}, + {file = "pydantic-1.10.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ee829b86ce984261d99ff2fd6e88f2230068d96c2a582f29583ed602ef3fc2c"}, + {file = "pydantic-1.10.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4b466a23009ff5cdd7076eb56aca537c745ca491293cc38e72bf1e0e00de5b91"}, + {file = "pydantic-1.10.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7847ca62e581e6088d9000f3c497267868ca2fa89432714e21a4fb33a04d52e8"}, + {file = "pydantic-1.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:7845b31959468bc5b78d7b95ec52fe5be32b55d0d09983a877cca6aedc51068f"}, + {file = "pydantic-1.10.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:517a681919bf880ce1dac7e5bc0c3af1e58ba118fd774da2ffcd93c5f96eaece"}, + {file = "pydantic-1.10.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67195274fd27780f15c4c372f4ba9a5c02dad6d50647b917b6a92bf00b3d301a"}, + {file = "pydantic-1.10.9-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2196c06484da2b3fded1ab6dbe182bdabeb09f6318b7fdc412609ee2b564c49a"}, + {file = "pydantic-1.10.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6257bb45ad78abacda13f15bde5886efd6bf549dd71085e64b8dcf9919c38b60"}, + {file = "pydantic-1.10.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3283b574b01e8dbc982080d8287c968489d25329a463b29a90d4157de4f2baaf"}, + {file = "pydantic-1.10.9-cp37-cp37m-win_amd64.whl", hash = "sha256:5f8bbaf4013b9a50e8100333cc4e3fa2f81214033e05ac5aa44fa24a98670a29"}, + {file = "pydantic-1.10.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9cd67fb763248cbe38f0593cd8611bfe4b8ad82acb3bdf2b0898c23415a1f82"}, + {file = "pydantic-1.10.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f50e1764ce9353be67267e7fd0da08349397c7db17a562ad036aa7c8f4adfdb6"}, + {file = "pydantic-1.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73ef93e5e1d3c8e83f1ff2e7fdd026d9e063c7e089394869a6e2985696693766"}, + {file = "pydantic-1.10.9-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:128d9453d92e6e81e881dd7e2484e08d8b164da5507f62d06ceecf84bf2e21d3"}, + {file = "pydantic-1.10.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ad428e92ab68798d9326bb3e5515bc927444a3d71a93b4a2ca02a8a5d795c572"}, + {file = "pydantic-1.10.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fab81a92f42d6d525dd47ced310b0c3e10c416bbfae5d59523e63ea22f82b31e"}, + {file = "pydantic-1.10.9-cp38-cp38-win_amd64.whl", hash = "sha256:963671eda0b6ba6926d8fc759e3e10335e1dc1b71ff2a43ed2efd6996634dafb"}, + {file = "pydantic-1.10.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:970b1bdc6243ef663ba5c7e36ac9ab1f2bfecb8ad297c9824b542d41a750b298"}, + {file = "pydantic-1.10.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7e1d5290044f620f80cf1c969c542a5468f3656de47b41aa78100c5baa2b8276"}, + {file = "pydantic-1.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83fcff3c7df7adff880622a98022626f4f6dbce6639a88a15a3ce0f96466cb60"}, + {file = "pydantic-1.10.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0da48717dc9495d3a8f215e0d012599db6b8092db02acac5e0d58a65248ec5bc"}, + {file = "pydantic-1.10.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0a2aabdc73c2a5960e87c3ffebca6ccde88665616d1fd6d3db3178ef427b267a"}, + {file = "pydantic-1.10.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9863b9420d99dfa9c064042304868e8ba08e89081428a1c471858aa2af6f57c4"}, + {file = "pydantic-1.10.9-cp39-cp39-win_amd64.whl", hash = "sha256:e7c9900b43ac14110efa977be3da28931ffc74c27e96ee89fbcaaf0b0fe338e1"}, + {file = "pydantic-1.10.9-py3-none-any.whl", hash = "sha256:6cafde02f6699ce4ff643417d1a9223716ec25e228ddc3b436fe7e2d25a1f305"}, + {file = "pydantic-1.10.9.tar.gz", hash = "sha256:95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be"}, ] [package.dependencies] @@ -882,24 +962,24 @@ email = ["email-validator (>=1.0.3)"] [[package]] name = "pyflakes" -version = "2.3.1" +version = "2.5.0" description = "passive checker of Python programs" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" files = [ - {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, - {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, + {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, + {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, ] [[package]] name = "pygments" -version = "2.14.0" +version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, + {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, + {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, ] [package.extras] @@ -907,51 +987,57 @@ plugins = ["importlib-metadata"] [[package]] name = "pyproject-api" -version = "1.5.1" +version = "1.5.2" description = "API to interact with the python pyproject.toml based projects" optional = false python-versions = ">=3.7" files = [ - {file = "pyproject_api-1.5.1-py3-none-any.whl", hash = "sha256:4698a3777c2e0f6b624f8a4599131e2a25376d90fe8d146d7ac74c67c6f97c43"}, - {file = "pyproject_api-1.5.1.tar.gz", hash = "sha256:435f46547a9ff22cf4208ee274fca3e2869aeb062a4834adfc99a4dd64af3cf9"}, + {file = "pyproject_api-1.5.2-py3-none-any.whl", hash = "sha256:9cffcbfb64190f207444d7579d315f3278f2c04ba46d685fad93197b5326d348"}, + {file = "pyproject_api-1.5.2.tar.gz", hash = "sha256:999f58fa3c92b23ebd31a6bad5d1f87d456744d75e05391be7f5c729015d3d91"}, ] [package.dependencies] -packaging = ">=23" +packaging = ">=23.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo (>=2022.12.7)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] -testing = ["covdefaults (>=2.2.2)", "importlib-metadata (>=6)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "virtualenv (>=20.17.1)", "wheel (>=0.38.4)"] +docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +testing = ["covdefaults (>=2.3)", "importlib-metadata (>=6.6)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "setuptools (>=67.8)", "wheel (>=0.40)"] [[package]] name = "pyrsistent" -version = "0.18.1" +version = "0.19.3" description = "Persistent/Functional/Immutable data structures" optional = false python-versions = ">=3.7" files = [ - {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, - {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, - {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, - {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, + {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, + {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, + {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, + {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, + {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, + {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, ] [[package]] @@ -1011,13 +1097,13 @@ pytest = ">=3.5" [[package]] name = "pytz" -version = "2022.7.1" +version = "2023.3" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, - {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, + {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, + {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, ] [[package]] @@ -1106,18 +1192,18 @@ six = "*" [[package]] name = "setuptools" -version = "67.0.0" +version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = true python-versions = ">=3.7" files = [ - {file = "setuptools-67.0.0-py3-none-any.whl", hash = "sha256:9d790961ba6219e9ff7d9557622d2fe136816a264dd01d5997cfc057d804853d"}, - {file = "setuptools-67.0.0.tar.gz", hash = "sha256:883131c5b6efa70b9101c7ef30b2b7b780a4283d5fc1616383cdf22c83cbefe6"}, + {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, + {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -1179,13 +1265,13 @@ test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] [[package]] name = "sphinx-immaterial" -version = "0.11.0" +version = "0.11.4" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.0-py3-none-any.whl", hash = "sha256:2d4879a81b8f83863851b06cfa5e1bc89537c652c6af9824a1ec3e54cab6f863"}, - {file = "sphinx_immaterial-0.11.0.tar.gz", hash = "sha256:67416c77b39843923388b7c5fa5aa80381b120cb84e92921ca60a3e671644e9b"}, + {file = "sphinx_immaterial-0.11.4-py3-none-any.whl", hash = "sha256:98f9d7f93eeddcb8c9d959c144e616e84eea99860dee2ffb8b5fe5aa4b85ea63"}, + {file = "sphinx_immaterial-0.11.4.tar.gz", hash = "sha256:8d902654ffeda1ca2ecd7f8ef4f67feb8b9abf9b5f23d68518170ffe433772d7"}, ] [package.dependencies] @@ -1193,7 +1279,7 @@ appdirs = "*" markupsafe = "*" pydantic = "*" requests = "*" -sphinx = ">=4.0" +sphinx = ">=4.5" typing-extensions = "*" [package.extras] @@ -1205,13 +1291,13 @@ keys = ["pymdown-extensions"] [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.2" -description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +version = "1.0.4" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, ] [package.extras] @@ -1235,13 +1321,13 @@ test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.0" +version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, ] [package.extras] @@ -1305,57 +1391,58 @@ files = [ [[package]] name = "tox" -version = "4.5.1" +version = "4.6.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.7" files = [ - {file = "tox-4.5.1-py3-none-any.whl", hash = "sha256:d25a2e6cb261adc489604fafd76cd689efeadfa79709965e965668d6d3f63046"}, - {file = "tox-4.5.1.tar.gz", hash = "sha256:5a2eac5fb816779dfdf5cb00fecbc27eb0524e4626626bb1de84747b24cacc56"}, + {file = "tox-4.6.0-py3-none-any.whl", hash = "sha256:4874000453e637a87ca892f9744a2ab9a7d24064dad1b0ecbf5a4c3c146cc732"}, + {file = "tox-4.6.0.tar.gz", hash = "sha256:954f1f647f67f481d239a193288983242a6152b67503c4a56b19a4aafaa29736"}, ] [package.dependencies] cachetools = ">=5.3" chardet = ">=5.1" colorama = ">=0.4.6" -filelock = ">=3.11" +filelock = ">=3.12" packaging = ">=23.1" -platformdirs = ">=3.2" +platformdirs = ">=3.5.1" pluggy = ">=1" pyproject-api = ">=1.5.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.21" +virtualenv = ">=20.23" [package.extras] -docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-argparse-cli (>=1.11)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2022.1.2b11)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "devpi-process (>=0.3)", "diff-cover (>=7.5)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.14)", "psutil (>=5.9.4)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-xdist (>=3.2.1)", "re-assert (>=1.1)", "time-machine (>=2.9)", "wheel (>=0.40)"] +docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] +testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "devpi-process (>=0.3)", "diff-cover (>=7.5)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17)", "psutil (>=5.9.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.9)", "wheel (>=0.40)"] [[package]] name = "typing-extensions" -version = "4.5.0" +version = "4.6.3" description = "Backported and Experimental Type Hints for Python 3.7+" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, + {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, + {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, ] [[package]] name = "urllib3" -version = "1.26.12" +version = "2.0.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" +python-versions = ">=3.7" files = [ - {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, - {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, + {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, + {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" @@ -1379,18 +1466,18 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess [[package]] name = "zipp" -version = "3.8.1" +version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.7" files = [ - {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, - {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, + {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, + {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, ] [package.extras] -docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] -testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] dev = [] From fc2807b64301181a40f2101af1ad39f298eca849 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 17 Mar 2023 06:11:52 +0000 Subject: [PATCH 185/371] jsonschema 4.18 compatibility --- .../validation/validators.py | 103 ++++++------ poetry.lock | 150 ++++++++++-------- pyproject.toml | 14 +- tests/integration/test_shortcuts.py | 4 - .../integration/validation/test_validators.py | 10 +- 5 files changed, 156 insertions(+), 125 deletions(-) diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index 2e2d892..e7aa299 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -1,21 +1,20 @@ """OpenAPI spec validator validation validators module.""" import logging import string +import warnings from typing import Any -from typing import Callable -from typing import Hashable from typing import Iterator from typing import List -from typing import Mapping from typing import Optional from typing import Type from jsonschema._format import FormatChecker from jsonschema.exceptions import ValidationError from jsonschema.protocols import Validator -from jsonschema.validators import RefResolver -from jsonschema_spec.accessors import SpecAccessor -from jsonschema_spec.paths import Spec +from jsonschema_spec.handlers import default_handlers +from jsonschema_spec.paths import SchemaPath +from jsonschema_spec.typing import ResolverHandlers +from jsonschema_spec.typing import Schema from openapi_spec_validator.validation.decorators import ValidationErrorWrapper from openapi_spec_validator.validation.exceptions import ( @@ -35,12 +34,7 @@ wraps_errors = ValidationErrorWrapper(OpenAPIValidationError) -def is_ref(spec: Any) -> bool: - return isinstance(spec, dict) and "$ref" in spec - - class SpecValidator: - OPERATIONS = [ "get", "put", @@ -57,7 +51,7 @@ def __init__( schema_validator: Validator, value_validator_class: Type[Validator], value_validator_format_checker: FormatChecker, - resolver_handlers: Optional[Mapping[str, Callable[[str], Any]]] = None, + resolver_handlers: ResolverHandlers = default_handlers, ): self.schema_validator = schema_validator self.value_validator_class = value_validator_class @@ -66,30 +60,48 @@ def __init__( self.operation_ids_registry: Optional[List[str]] = None self.schema_ids_registry: Optional[List[int]] = None - self.resolver = None def validate( - self, instance: Mapping[Hashable, Any], spec_url: str = "" + self, + schema: Schema, + base_uri: str = "", + spec_url: Optional[str] = None, ) -> None: - for err in self.iter_errors(instance, spec_url=spec_url): + for err in self.iter_errors( + schema, + base_uri=base_uri, + spec_url=spec_url, + ): raise err - def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: - error = next(self.iter_errors(instance), None) + def is_valid(self, schema: Schema) -> bool: + error = next(self.iter_errors(schema), None) return error is None @wraps_errors def iter_errors( - self, instance: Mapping[Hashable, Any], spec_url: str = "" + self, + schema: Schema, + base_uri: str = "", + spec_url: Optional[str] = None, ) -> Iterator[ValidationError]: + if spec_url is not None: + warnings.warn( + "spec_url parameter is deprecated. " "Use base_uri instead.", + DeprecationWarning, + ) + base_uri = spec_url + self.operation_ids_registry = [] self.schema_ids_registry = [] - self.resolver = self._get_resolver(spec_url, instance) - yield from self.schema_validator.iter_errors(instance) + yield from self.schema_validator.iter_errors(schema) - accessor = SpecAccessor(instance, self.resolver) - spec = Spec(accessor) + spec = SchemaPath.from_dict( + schema, + base_uri=base_uri, + handlers=self.resolver_handlers, + ) if "paths" in spec: paths = spec / "paths" yield from self._iter_paths_errors(paths) @@ -98,17 +110,14 @@ def iter_errors( components = spec / "components" yield from self._iter_components_errors(components) - def _get_resolver( - self, base_uri: str, referrer: Mapping[Hashable, Any] - ) -> RefResolver: - return RefResolver(base_uri, referrer, handlers=self.resolver_handlers) - - def _iter_paths_errors(self, paths: Spec) -> Iterator[ValidationError]: + def _iter_paths_errors( + self, paths: SchemaPath + ) -> Iterator[ValidationError]: for url, path_item in paths.items(): yield from self._iter_path_errors(url, path_item) def _iter_path_errors( - self, url: str, path_item: Spec + self, url: str, path_item: SchemaPath ) -> Iterator[ValidationError]: parameters = None if "parameters" in path_item: @@ -127,8 +136,8 @@ def _iter_operation_errors( self, url: str, name: str, - operation: Spec, - path_parameters: Optional[Spec], + operation: SchemaPath, + path_parameters: Optional[SchemaPath], ) -> Iterator[ValidationError]: assert self.operation_ids_registry is not None @@ -168,13 +177,13 @@ def _iter_operation_errors( return def _iter_responses_errors( - self, responses: Spec + self, responses: SchemaPath ) -> Iterator[ValidationError]: for response_code, response in responses.items(): yield from self._iter_response_errors(response_code, response) def _iter_response_errors( - self, response_code: str, response: Spec + self, response_code: str, response: SchemaPath ) -> Iterator[ValidationError]: # openapi 2 if "schema" in response: @@ -185,18 +194,20 @@ def _iter_response_errors( content = response / "content" yield from self._iter_content_errors(content) - def _iter_content_errors(self, content: Spec) -> Iterator[ValidationError]: + def _iter_content_errors( + self, content: SchemaPath + ) -> Iterator[ValidationError]: for mimetype, media_type in content.items(): yield from self._iter_media_type_errors(mimetype, media_type) def _iter_media_type_errors( - self, mimetype: str, media_type: Spec + self, mimetype: str, media_type: SchemaPath ) -> Iterator[ValidationError]: if "schema" in media_type: schema = media_type / "schema" yield from self._iter_schema_errors(schema) - def _get_path_param_names(self, params: Spec) -> Iterator[str]: + def _get_path_param_names(self, params: SchemaPath) -> Iterator[str]: for param in params: if param["in"] == "path": yield param["name"] @@ -207,7 +218,7 @@ def _get_path_params_from_url(self, url: str) -> Iterator[str]: return filter(None, path_params) def _iter_parameters_errors( - self, parameters: Spec + self, parameters: SchemaPath ) -> Iterator[ValidationError]: seen = set() for parameter in parameters: @@ -221,7 +232,7 @@ def _iter_parameters_errors( seen.add(key) def _iter_parameter_errors( - self, parameter: Spec + self, parameter: SchemaPath ) -> Iterator[ValidationError]: if "schema" in parameter: schema = parameter / "schema" @@ -234,18 +245,18 @@ def _iter_parameter_errors( yield from self._iter_value_errors(parameter, default) def _iter_value_errors( - self, schema: Spec, value: Any + self, schema: SchemaPath, value: Any ) -> Iterator[ValidationError]: - with schema.open() as content: + with schema.resolve() as resolved: validator = self.value_validator_class( - content, - resolver=self.resolver, + resolved.contents, + _resolver=resolved.resolver, format_checker=self.value_validator_format_checker, ) yield from validator.iter_errors(value) def _iter_schema_errors( - self, schema: Spec, require_properties: bool = True + self, schema: SchemaPath, require_properties: bool = True ) -> Iterator[ValidationError]: if not hasattr(schema.content(), "__getitem__"): return @@ -329,11 +340,13 @@ def _iter_schema_errors( yield from self._iter_value_errors(schema, default) def _iter_components_errors( - self, components: Spec + self, components: SchemaPath ) -> Iterator[ValidationError]: schemas = components.get("schemas", {}) yield from self._iter_schemas_errors(schemas) - def _iter_schemas_errors(self, schemas: Spec) -> Iterator[ValidationError]: + def _iter_schemas_errors( + self, schemas: SchemaPath + ) -> Iterator[ValidationError]: for _, schema in schemas.items(): yield from self._iter_schema_errors(schema) diff --git a/poetry.lock b/poetry.lock index 33a058c..2087dab 100644 --- a/poetry.lock +++ b/poetry.lock @@ -140,7 +140,7 @@ files = [ name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -optional = true +optional = false python-versions = ">=3.6.1" files = [ {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, @@ -449,7 +449,7 @@ dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] name = "identify" version = "2.5.24" description = "File identification library for Python" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"}, @@ -565,20 +565,22 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.17.3" +version = "4.18.0a1" description = "An implementation of JSON Schema validation for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, - {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, + {file = "jsonschema-4.18.0a1-py3-none-any.whl", hash = "sha256:29c0a6a25c80e6cee56bc87c97a6d67f798cf959401b5408861fe89034b250cd"}, + {file = "jsonschema-4.18.0a1.tar.gz", hash = "sha256:d977e5edb8259f0e8993af430e722ce23f814c01000691735e0ac12111ff85c2"}, ] [package.dependencies] -attrs = ">=17.4.0" +attrs = ">=22.2.0" importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +jsonschema-specifications = ">=2023.03.4" pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} -pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +referencing = ">=0.24.4" +rpds-py = ">=0.6.1" [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] @@ -586,21 +588,36 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-spec" -version = "0.1.6" +version = "0.2.2" description = "JSONSchema Spec with object-oriented paths" optional = false -python-versions = ">=3.7.0,<4.0.0" +python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "jsonschema_spec-0.1.6-py3-none-any.whl", hash = "sha256:f2206d18c89d1824c1f775ba14ed039743b41a9167bd2c5bdb774b66b3ca0bbf"}, - {file = "jsonschema_spec-0.1.6.tar.gz", hash = "sha256:90215863b56e212086641956b20127ccbf6d8a3a38343dad01d6a74d19482f76"}, + {file = "jsonschema_spec-0.2.2-py3-none-any.whl", hash = "sha256:8a4be06134787e4d747dfb68851b9f9bceafcaa90647a852e8e8993af11705e2"}, + {file = "jsonschema_spec-0.2.2.tar.gz", hash = "sha256:a5c98c2b0be73a1b3cf8464b8a300210d1006eb086ffb9fb0e58b19052ec86ec"}, ] [package.dependencies] -jsonschema = ">=4.0.0,<4.18.0" pathable = ">=0.4.1,<0.5.0" PyYAML = ">=5.1" +referencing = ">=0.28.0,<0.30.0" requests = ">=2.31.0,<3.0.0" +[[package]] +name = "jsonschema-specifications" +version = "2023.5.2" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.5.2-py3-none-any.whl", hash = "sha256:51d2972bf690cfe21970f722f878580d863f7c127d200fce671c5dae10b88f5f"}, + {file = "jsonschema_specifications-2023.5.2.tar.gz", hash = "sha256:1aefc07b022e3b8ce8bec135c78b74ae1ffd260822c67011427192b3a7525e09"}, +] + +[package.dependencies] +importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +referencing = ">=0.28.0" + [[package]] name = "lazy-object-proxy" version = "1.9.0" @@ -777,7 +794,7 @@ files = [ name = "nodeenv" version = "1.8.0" description = "Node.js virtual environment builder" -optional = true +optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, @@ -789,22 +806,20 @@ setuptools = "*" [[package]] name = "openapi-schema-validator" -version = "0.4.4" +version = "0.6.0a1" description = "OpenAPI schema validation for Python" optional = false -python-versions = ">=3.7.0,<4.0.0" +python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "openapi_schema_validator-0.4.4-py3-none-any.whl", hash = "sha256:79f37f38ef9fd5206b924ed7a6f382cea7b649b3b56383c47f1906082b7b9015"}, - {file = "openapi_schema_validator-0.4.4.tar.gz", hash = "sha256:c573e2be2c783abae56c5a1486ab716ca96e09d1c3eab56020d1dc680aa57bf8"}, + {file = "openapi_schema_validator-0.6.0a1-py3-none-any.whl", hash = "sha256:ba58308d97f7382c84d9462788530fb45b928f8c5afbf0d66f7e9a38ae19505c"}, + {file = "openapi_schema_validator-0.6.0a1.tar.gz", hash = "sha256:e6edc71d4d7d7c57649a32613657033243d7ff326b787a00aa69151b4ee10d35"}, ] [package.dependencies] -jsonschema = ">=4.0.0,<4.18.0" +jsonschema = ">=4.18.0a1,<5.0.0" +jsonschema-specifications = ">=2023.5.2,<2024.0.0" rfc3339-validator = "*" -[package.extras] -docs = ["sphinx (>=5.3.0,<6.0.0)", "sphinx-immaterial (>=0.11.0,<0.12.0)"] - [[package]] name = "packaging" version = "23.1" @@ -883,7 +898,7 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "3.3.3" description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = true +optional = false python-versions = ">=3.8" files = [ {file = "pre_commit-3.3.3-py2.py3-none-any.whl", hash = "sha256:10badb65d6a38caff29703362271d7dca483d01da88f9d7e05d0b97171c136cb"}, @@ -1004,42 +1019,6 @@ tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] testing = ["covdefaults (>=2.3)", "importlib-metadata (>=6.6)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "setuptools (>=67.8)", "wheel (>=0.40)"] -[[package]] -name = "pyrsistent" -version = "0.19.3" -description = "Persistent/Functional/Immutable data structures" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, - {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, - {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, - {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, - {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, - {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, -] - [[package]] name = "pytest" version = "7.3.2" @@ -1155,6 +1134,21 @@ files = [ {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] +[[package]] +name = "referencing" +version = "0.29.0" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.29.0-py3-none-any.whl", hash = "sha256:bddd26f8fbb64d153334cca7bc20305c72295e287d84bbf5756afa50efdeb6ae"}, + {file = "referencing-0.29.0.tar.gz", hash = "sha256:54b64ae36b91827f9f50d05a5af27570a5ca9ba6a1be49809215419d5ab32253"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + [[package]] name = "requests" version = "2.31.0" @@ -1190,11 +1184,43 @@ files = [ [package.dependencies] six = "*" +[[package]] +name = "rpds-py" +version = "0.7.1" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.7.1-cp38-abi3-macosx_10_7_x86_64.whl", hash = "sha256:858604fe5d7eb50e91b1096bcbcb421f2cb3101454244afda92b4d768d0cb4ce"}, + {file = "rpds_py-0.7.1-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:e16c02923726307d960e908b61d4d833939f322877d2957c001fca23b644914e"}, + {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:311a57cc972481bd220af28cf4309141c680a356b2359f163daac030d0c2318d"}, + {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b6db70c2ab847229fa9cff3a5eb641c33ab3f981ee8b99d326a7deb8989e4ce"}, + {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34007442d36980c4aab3f4044c1fd05a736c8ae09d47b8a42112deab5d6b5a10"}, + {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d1d4078d60ca47f0eb6bdddbf79f00a72d41ee3148aba1dcf9b980f73a8d26e"}, + {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:025b8101dbf39d77cf41ac3c737e4c713e0b2728a516443b382e66b9d492ff98"}, + {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cc6ff891c3814d8cd92549cb385353a922518d433aaf1d2d0d99e98e59915370"}, + {file = "rpds_py-0.7.1-cp38-abi3-win32.whl", hash = "sha256:cbdc8ab6108b8bb260ee68fb2de83fb1c481d3a77355156049a8a49ea47eacf6"}, + {file = "rpds_py-0.7.1-cp38-abi3-win_amd64.whl", hash = "sha256:5eda3aba0cd291de9d4bb138db45814bac24bc4c07e0f38b0544374b6104c488"}, + {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:038249d2bbaf91aa65c4108a40ee076f657654261b1a246ab99726710bfb77de"}, + {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2a5c672b1cd382973bf414518ddc9d743d06bcee751fa65256d84ba412192b0b"}, + {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:453e62d679d8de32c5e00ba27f8c8c45a456e5d6db6fa6f67fdd3e12f1658833"}, + {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0bcb162f5549408125ec986bfed1a66f2036ac2910d3fb0a6afda0f97bc6ea15"}, + {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b54a47e670093b8bf7d1a0222d0af26dac19314a0e79ac478e447357396a2d"}, + {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f53f65cf56bb60355681431d04bc04dbe709452dd85eebf537035dc145bd36c9"}, + {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e8f2cedc65198248a14d716125016fd0816f63f216a82c2209a0686d5447cf"}, + {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8391420714e84ae9f4c6d4e4d52eb4209ca8d66abfbe4b2ba4892221be1c6f5"}, + {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c7bd3a381c4a5fe7e0fc4dff554bd1ce2b0be12ba0193c176c291b7dc1e8bea0"}, + {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c38d17af73aa03686d701686628e37c114a459650233c0d5f0492dad3a76e3e0"}, + {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:014828cd68b4cdee84ab66adaf5bfe1f137656a7a588c31fdca04ba0768ef62d"}, + {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33a2a15b641bc17bc6574f9600976374a085ff81ac8dddd4bde6c451e9e9e58d"}, + {file = "rpds_py-0.7.1.tar.gz", hash = "sha256:d940b5644f14e49b1c6e7902b9ec8a0c7584109fbf380fa18115831a641927c8"}, +] + [[package]] name = "setuptools" version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, @@ -1480,11 +1506,9 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] -dev = [] docs = [] -requests = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "b86a1d81b4bb1eb9da80d03026e6365bcc703872bb9b49157bfe71d7f8af6ed1" +content-hash = "e810ad74e577249cc612850223a244c8495fe1d14afa7982478c7604e0d335b9" diff --git a/pyproject.toml b/pyproject.toml index 7d14504..66580f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,10 @@ strict = true module = "jsonschema.*" ignore_missing_imports = true +[[tool.mypy.overrides]] +module = "jsonschema_specifications" +ignore_missing_imports = true + [[tool.mypy.overrides]] module = "lazy_object_proxy.*" ignore_missing_imports = true @@ -47,20 +51,18 @@ include = [ ] [tool.poetry.dependencies] -jsonschema = ">=4.0.0,<4.18.0" -openapi-schema-validator = "^0.4.2" +jsonschema = {version = "^4.18.0a1", allow-prereleases = true} +openapi-schema-validator = {version = "^0.6.0a1", allow-prereleases = true} python = "^3.8.0" importlib-resources = {version = "^5.8.0", python = "<3.9" } -jsonschema-spec = "^0.1.1" +jsonschema-spec = "^0.2.2" lazy-object-proxy = "^1.7.1" [tool.poetry.extras] -dev = ["pre-commit"] docs = ["sphinx", "sphinx-immaterial"] -requests = ["requests"] [tool.poetry.dev-dependencies] -pre-commit = {version = "*", optional = true} +pre-commit = "*" pytest = "^7.3.2" pytest-flake8 = "=1.1.0" pytest-cov = "^4.1.0" diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index fe4e057..7c69ce1 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -26,7 +26,6 @@ def test_spec_schema_version_not_detected(self, factory): class TestLiocalValidatev2Spec: - LOCAL_SOURCE_DIRECTORY = "data/v2.0/" def local_test_suite_file_path(self, test_file): @@ -61,7 +60,6 @@ def test_falied(self, factory, spec_file): class TestLocalValidatev30Spec: - LOCAL_SOURCE_DIRECTORY = "data/v3.0/" def local_test_suite_file_path(self, test_file): @@ -98,7 +96,6 @@ def test_falied(self, factory, spec_file): @pytest.mark.network class TestRemoteValidatev2SpecUrl: - REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" ) @@ -126,7 +123,6 @@ def test_valid(self, spec_file): @pytest.mark.network class TestRemoteValidatev30SpecUrl: - REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" ) diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 680d883..5eacfd2 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -1,11 +1,10 @@ import pytest -from jsonschema.exceptions import RefResolutionError +from referencing.exceptions import Unresolvable from openapi_spec_validator.validation.exceptions import OpenAPIValidationError class TestLocalOpenAPIv2Validator: - LOCAL_SOURCE_DIRECTORY = "data/v2.0/" def local_test_suite_file_path(self, test_file): @@ -49,12 +48,11 @@ def test_ref_failed(self, factory, validator_v2, spec_file): spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) - with pytest.raises(RefResolutionError): + with pytest.raises(Unresolvable): validator_v2.validate(spec, spec_url=spec_url) class TestLocalOpenAPIv30Validator: - LOCAL_SOURCE_DIRECTORY = "data/v3.0/" def local_test_suite_file_path(self, test_file): @@ -101,13 +99,12 @@ def test_ref_failed(self, factory, validator_v30, spec_file): spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) - with pytest.raises(RefResolutionError): + with pytest.raises(Unresolvable): validator_v30.validate(spec, spec_url=spec_url) @pytest.mark.network class TestRemoteOpenAPIv30Validator: - REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/" ) @@ -135,7 +132,6 @@ def test_valid(self, factory, validator_v30, spec_file): @pytest.mark.network class TestRemoteOpenAPIv31Validator: - REMOTE_SOURCE_URL = ( "https://raw.githubusercontent.com/" "OAI/OpenAPI-Specification/" From 926be2eacb372769d9a6fe01dca452462ccca5f3 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 15 Jun 2023 12:34:42 +0100 Subject: [PATCH 186/371] Allow pre-releases for docker images --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0fce1f2..b840e99 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,6 @@ FROM python:3.11-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.7 -RUN pip install --no-cache-dir openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} +RUN pip install --no-cache-dir --pre openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} ENTRYPOINT ["openapi-spec-validator"] From 22943b0aef752abe76850d55af5a8a2482033552 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 15 Jun 2023 12:38:41 +0100 Subject: [PATCH 187/371] Version 0.6.0a1 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 37b1881..65dfc11 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.7 +current_version = 0.6.0a1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index b840e99..1156006 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.11-alpine -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.5.7 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0a1 RUN pip install --no-cache-dir --pre openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index c9b109d..5f96fc4 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.5.7" +__version__ = "0.6.0a1" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index 66580f3..fddc21f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.5.7" +version = "0.6.0a1" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 37e3de338fff9be90d1fd298120bbc335412af2a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 15 Jun 2023 13:37:09 +0100 Subject: [PATCH 188/371] Update Dockerfile to build rpds (pyo3) dependency --- Dockerfile | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1156006..7ce403c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,21 @@ -FROM python:3.11-alpine - ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0a1 -RUN pip install --no-cache-dir --pre openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} +FROM python:3.11.4-alpine as builder + +ARG OPENAPI_SPEC_VALIDATOR_VERSION + +ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse + +RUN apk add --no-cache cargo +RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} + +FROM python:3.11.4-alpine + +ARG OPENAPI_SPEC_VALIDATOR_VERSION + +COPY --from=builder /wheels /wheels +RUN apk add --no-cache libgcc +RUN pip install --no-cache-dir --pre --find-links /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} && \ + rm -r /wheels ENTRYPOINT ["openapi-spec-validator"] From 408a412c89e7895d56cbca429054cf1238e775dc Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 16 Jun 2023 09:08:54 +0100 Subject: [PATCH 189/371] Update SupportsValidation protocol --- openapi_spec_validator/shortcuts.py | 8 +++++--- .../validation/protocols.py | 11 +++++++++-- openapi_spec_validator/validation/proxies.py | 19 +++++++++++++++---- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 3a4a797..121411f 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -2,6 +2,7 @@ from typing import Any from typing import Hashable from typing import Mapping +from typing import Optional from jsonschema_spec.handlers import all_urls_handler @@ -11,10 +12,11 @@ def validate_spec( spec: Mapping[Hashable, Any], - spec_url: str = "", + base_uri: str = "", validator: SupportsValidation = openapi_spec_validator_proxy, + spec_url: Optional[str] = None, ) -> None: - return validator.validate(spec, spec_url=spec_url) + return validator.validate(spec, base_uri=base_uri, spec_url=spec_url) def validate_spec_url( @@ -22,4 +24,4 @@ def validate_spec_url( validator: SupportsValidation = openapi_spec_validator_proxy, ) -> None: spec = all_urls_handler(spec_url) - return validator.validate(spec, spec_url=spec_url) + return validator.validate(spec, base_uri=spec_url) diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py index 8480209..f6aa41a 100644 --- a/openapi_spec_validator/validation/protocols.py +++ b/openapi_spec_validator/validation/protocols.py @@ -2,6 +2,7 @@ from typing import Hashable from typing import Iterator from typing import Mapping +from typing import Optional from typing import Protocol from typing import runtime_checkable @@ -14,11 +15,17 @@ def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: ... def iter_errors( - self, instance: Mapping[Hashable, Any], spec_url: str = "" + self, + instance: Mapping[Hashable, Any], + base_uri: str = "", + spec_url: Optional[str] = None, ) -> Iterator[OpenAPIValidationError]: ... def validate( - self, instance: Mapping[Hashable, Any], spec_url: str = "" + self, + instance: Mapping[Hashable, Any], + base_uri: str = "", + spec_url: Optional[str] = None, ) -> None: ... diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index ca4541e..372c6bf 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -3,6 +3,7 @@ from typing import Hashable from typing import Iterator from typing import Mapping +from typing import Optional from typing import Tuple from openapi_spec_validator.validation.exceptions import OpenAPIValidationError @@ -21,10 +22,15 @@ def detect(self, instance: Mapping[Hashable, Any]) -> SpecValidator: raise ValidatorDetectError("Spec schema version not detected") def validate( - self, instance: Mapping[Hashable, Any], spec_url: str = "" + self, + instance: Mapping[Hashable, Any], + base_uri: str = "", + spec_url: Optional[str] = None, ) -> None: validator = self.detect(instance) - for err in validator.iter_errors(instance, spec_url=spec_url): + for err in validator.iter_errors( + instance, base_uri=base_uri, spec_url=spec_url + ): raise err def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: @@ -33,7 +39,12 @@ def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: return error is None def iter_errors( - self, instance: Mapping[Hashable, Any], spec_url: str = "" + self, + instance: Mapping[Hashable, Any], + base_uri: str = "", + spec_url: Optional[str] = None, ) -> Iterator[OpenAPIValidationError]: validator = self.detect(instance) - yield from validator.iter_errors(instance, spec_url=spec_url) + yield from validator.iter_errors( + instance, base_uri=base_uri, spec_url=spec_url + ) From 472e38cf8b25b04ee4a6c39997401c247c10ac73 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 16 Jun 2023 09:22:37 +0100 Subject: [PATCH 190/371] Version 0.6.0a2 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 65dfc11..859c620 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.6.0a1 +current_version = 0.6.0a2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 7ce403c..ad0eb9c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0a1 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0a2 FROM python:3.11.4-alpine as builder diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 5f96fc4..730b380 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.6.0a1" +__version__ = "0.6.0a2" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index fddc21f..694569c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.6.0a1" +version = "0.6.0a2" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 0c0eec134302027a6a6061e69252bfff9dc135a7 Mon Sep 17 00:00:00 2001 From: Artur Date: Sun, 18 Jun 2023 16:43:12 +0000 Subject: [PATCH 191/371] Added github-actions dependabot updates --- .github/dependabot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 799abf8..5bb1222 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,3 +8,7 @@ updates: directory: "/" schedule: interval: "weekly" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" From 3cee6841546b6e06e2d13aa9d84155cab7741f6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Jun 2023 16:43:55 +0000 Subject: [PATCH 192/371] Bump sphinx from 5.3.0 to 7.0.1 Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 7.0.1. - [Release notes](https://github.com/sphinx-doc/sphinx/releases) - [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES) - [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.3.0...v7.0.1) --- updated-dependencies: - dependency-name: sphinx dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 20 ++++++++++---------- pyproject.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2087dab..af9229f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1256,26 +1256,26 @@ files = [ [[package]] name = "sphinx" -version = "5.3.0" +version = "7.0.1" description = "Python documentation generator" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, - {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, + {file = "Sphinx-7.0.1.tar.gz", hash = "sha256:61e025f788c5977d9412587e733733a289e2b9fdc2fef8868ddfbfc4ccfe881d"}, + {file = "sphinx-7.0.1-py3-none-any.whl", hash = "sha256:60c5e04756c1709a98845ed27a2eed7a556af3993afb66e77fec48189f742616"}, ] [package.dependencies] alabaster = ">=0.7,<0.8" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.14,<0.20" +docutils = ">=0.18.1,<0.21" imagesize = ">=1.3" importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" packaging = ">=21.0" -Pygments = ">=2.12" -requests = ">=2.5.0" +Pygments = ">=2.13" +requests = ">=2.25.0" snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" @@ -1286,8 +1286,8 @@ sphinxcontrib-serializinghtml = ">=1.1.5" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "types-requests", "types-typed-ast"] -test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" @@ -1511,4 +1511,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "e810ad74e577249cc612850223a244c8495fe1d14afa7982478c7604e0d335b9" +content-hash = "942a2240c2bd5f5eb58782afc60299a379d3b2fa968439a0ab9c459b8ade5f4a" diff --git a/pyproject.toml b/pyproject.toml index 694569c..db35fcc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -77,7 +77,7 @@ deptry = "^0.11.0" openapi-spec-validator = "openapi_spec_validator.__main__:main" [tool.poetry.group.docs.dependencies] -sphinx = "^5.3.0" +sphinx = ">=5.3,<8.0" sphinx-immaterial = "^0.11.0" [tool.pytest.ini_options] From a09b6635a31ce3aab1098337bc7a8db73f96bef5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Jun 2023 16:44:14 +0000 Subject: [PATCH 193/371] Bump jsonschema from 4.18.0a1 to 4.18.0a10 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.18.0a1 to 4.18.0a10. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.18.0a1...v4.18.0a10) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2087dab..74915fc 100644 --- a/poetry.lock +++ b/poetry.lock @@ -565,22 +565,22 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.18.0a1" +version = "4.18.0a10" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.18.0a1-py3-none-any.whl", hash = "sha256:29c0a6a25c80e6cee56bc87c97a6d67f798cf959401b5408861fe89034b250cd"}, - {file = "jsonschema-4.18.0a1.tar.gz", hash = "sha256:d977e5edb8259f0e8993af430e722ce23f814c01000691735e0ac12111ff85c2"}, + {file = "jsonschema-4.18.0a10-py3-none-any.whl", hash = "sha256:1b0ae112eb7a9681cc0a2a83eabf564b62417128d9c2dbd940eb410d20a8bbb9"}, + {file = "jsonschema-4.18.0a10.tar.gz", hash = "sha256:7641e516a53ac67221a8045eccf11ba30312f9c28e173c911b84561f6f17fccb"}, ] [package.dependencies] attrs = ">=22.2.0" importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} -jsonschema-specifications = ">=2023.03.4" +jsonschema-specifications = ">=2023.03.6" pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} -referencing = ">=0.24.4" -rpds-py = ">=0.6.1" +referencing = ">=0.28.4" +rpds-py = ">=0.7.1" [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] From 3b34875ad5b59013c4e4c34a562463d90d05214c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Jun 2023 16:44:31 +0000 Subject: [PATCH 194/371] Bump tox from 4.6.0 to 4.6.2 Bumps [tox](https://github.com/tox-dev/tox) from 4.6.0 to 4.6.2. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.6.0...4.6.2) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2087dab..cce6983 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1417,30 +1417,30 @@ files = [ [[package]] name = "tox" -version = "4.6.0" +version = "4.6.2" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.7" files = [ - {file = "tox-4.6.0-py3-none-any.whl", hash = "sha256:4874000453e637a87ca892f9744a2ab9a7d24064dad1b0ecbf5a4c3c146cc732"}, - {file = "tox-4.6.0.tar.gz", hash = "sha256:954f1f647f67f481d239a193288983242a6152b67503c4a56b19a4aafaa29736"}, + {file = "tox-4.6.2-py3-none-any.whl", hash = "sha256:52241851a7b0cd7de07d6ef067a13b092d2a4f82fe9048efb2444aed1708d713"}, + {file = "tox-4.6.2.tar.gz", hash = "sha256:58c7c2acce2f3d44cd1b359349557162336288ecf19ef53ccda89c9cee0ad9c4"}, ] [package.dependencies] -cachetools = ">=5.3" +cachetools = ">=5.3.1" chardet = ">=5.1" colorama = ">=0.4.6" -filelock = ">=3.12" +filelock = ">=3.12.2" packaging = ">=23.1" -platformdirs = ">=3.5.1" +platformdirs = ">=3.5.3" pluggy = ">=1" -pyproject-api = ">=1.5.1" +pyproject-api = ">=1.5.2" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.23" +virtualenv = ">=20.23.1" [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "devpi-process (>=0.3)", "diff-cover (>=7.5)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17)", "psutil (>=5.9.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.9)", "wheel (>=0.40)"] +docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.23.2,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.6)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17.1)", "psutil (>=5.9.5)", "pytest (>=7.3.2)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.10)", "wheel (>=0.40)"] [[package]] name = "typing-extensions" @@ -1472,23 +1472,23 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.23.0" +version = "20.23.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.23.0-py3-none-any.whl", hash = "sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e"}, - {file = "virtualenv-20.23.0.tar.gz", hash = "sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924"}, + {file = "virtualenv-20.23.1-py3-none-any.whl", hash = "sha256:34da10f14fea9be20e0fd7f04aba9732f84e593dac291b757ce42e3368a39419"}, + {file = "virtualenv-20.23.1.tar.gz", hash = "sha256:8ff19a38c1021c742148edc4f81cb43d7f8c6816d2ede2ab72af5b84c749ade1"}, ] [package.dependencies] distlib = ">=0.3.6,<1" -filelock = ">=3.11,<4" -platformdirs = ">=3.2,<4" +filelock = ">=3.12,<4" +platformdirs = ">=3.5.1,<4" [package.extras] -docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.7.1)", "time-machine (>=2.9)"] +docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezer (>=0.4.6)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.8)", "time-machine (>=2.9)"] [[package]] name = "zipp" From a75c97837b496619662375f768e2b0c9ac1f6c1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Jun 2023 16:54:37 +0000 Subject: [PATCH 195/371] Bump deptry from 0.11.0 to 0.12.0 Bumps [deptry](https://github.com/fpgmaas/deptry) from 0.11.0 to 0.12.0. - [Release notes](https://github.com/fpgmaas/deptry/releases) - [Changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md) - [Commits](https://github.com/fpgmaas/deptry/compare/0.11.0...0.12.0) --- updated-dependencies: - dependency-name: deptry dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index e81d88d..114f169 100644 --- a/poetry.lock +++ b/poetry.lock @@ -344,13 +344,13 @@ toml = ["tomli"] [[package]] name = "deptry" -version = "0.11.0" +version = "0.12.0" description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." optional = false python-versions = ">=3.8,<4.0" files = [ - {file = "deptry-0.11.0-py3-none-any.whl", hash = "sha256:e6d713806c0aff3ed3ac4f425b5b05b4473759a25a5ecfe5f93ddf224bfef57e"}, - {file = "deptry-0.11.0.tar.gz", hash = "sha256:fcd778cd5539458dbc665489404932135651dc1a2c9c7bc45b92455e57268802"}, + {file = "deptry-0.12.0-py3-none-any.whl", hash = "sha256:69c801a6ae1b39c7b8e0daf40dbe8b75f1f161277d206dd8f921f32cd22dad91"}, + {file = "deptry-0.12.0.tar.gz", hash = "sha256:ac3cd32d149c92a9af12f63cd9486ddd1760f0277ed0cf306c6ef0388f57ff0a"}, ] [package.dependencies] @@ -1511,4 +1511,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "942a2240c2bd5f5eb58782afc60299a379d3b2fa968439a0ab9c459b8ade5f4a" +content-hash = "04fd441a864644c6d66d631c01b5b1a46c5ae4afd0f146aca47ae5ba839c42f9" diff --git a/pyproject.toml b/pyproject.toml index db35fcc..6ca5c8b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,7 +71,7 @@ mypy = "^1.3" isort = "^5.11.5" black = "^23.3.0" flynt = "^0.78" -deptry = "^0.11.0" +deptry = "^0.12.0" [tool.poetry.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" From 30ca2310842a3b1320d367a8731cf44795b4700d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Jun 2023 17:14:20 +0000 Subject: [PATCH 196/371] Bump pytest-flake8 from 1.1.0 to 1.1.1 Bumps [pytest-flake8](https://github.com/tholo/pytest-flake8) from 1.1.0 to 1.1.1. - [Release notes](https://github.com/tholo/pytest-flake8/releases) - [Changelog](https://github.com/tholo/pytest-flake8/blob/master/CHANGELOG) - [Commits](https://github.com/tholo/pytest-flake8/compare/1.1.0...1.1.1) --- updated-dependencies: - dependency-name: pytest-flake8 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 12 ++++++------ pyproject.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index 838e3d1..33b5f95 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1061,18 +1061,18 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale [[package]] name = "pytest-flake8" -version = "1.1.0" +version = "1.1.1" description = "pytest plugin to check FLAKE8 requirements" optional = false python-versions = "*" files = [ - {file = "pytest-flake8-1.1.0.tar.gz", hash = "sha256:358d449ca06b80dbadcb43506cd3e38685d273b4968ac825da871bd4cc436202"}, - {file = "pytest_flake8-1.1.0-py2.py3-none-any.whl", hash = "sha256:f1b19dad0b9f0aa651d391c9527ebc20ac1a0f847aa78581094c747462bfa182"}, + {file = "pytest-flake8-1.1.1.tar.gz", hash = "sha256:ba4f243de3cb4c2486ed9e70752c80dd4b636f7ccb27d4eba763c35ed0cd316e"}, + {file = "pytest_flake8-1.1.1-py2.py3-none-any.whl", hash = "sha256:e0661a786f8cbf976c185f706fdaf5d6df0b1667c3bcff8e823ba263618627e7"}, ] [package.dependencies] -flake8 = ">=3.5" -pytest = ">=3.5" +flake8 = ">=4.0" +pytest = ">=7.0" [[package]] name = "pytz" @@ -1511,4 +1511,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "04fd441a864644c6d66d631c01b5b1a46c5ae4afd0f146aca47ae5ba839c42f9" +content-hash = "32fd5e7413a24c97d055e25f0969b5482a143074281d5a095374d239ba093dee" diff --git a/pyproject.toml b/pyproject.toml index 6ca5c8b..a304441 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" pytest = "^7.3.2" -pytest-flake8 = "=1.1.0" +pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" mypy = "^1.3" From 7868023774556ca37258716463fa6ac46e5a97f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 13:05:04 +0000 Subject: [PATCH 197/371] Bump tox from 4.6.2 to 4.6.3 Bumps [tox](https://github.com/tox-dev/tox) from 4.6.2 to 4.6.3. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.6.2...4.6.3) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 33b5f95..ddb225c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1417,13 +1417,13 @@ files = [ [[package]] name = "tox" -version = "4.6.2" +version = "4.6.3" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.7" files = [ - {file = "tox-4.6.2-py3-none-any.whl", hash = "sha256:52241851a7b0cd7de07d6ef067a13b092d2a4f82fe9048efb2444aed1708d713"}, - {file = "tox-4.6.2.tar.gz", hash = "sha256:58c7c2acce2f3d44cd1b359349557162336288ecf19ef53ccda89c9cee0ad9c4"}, + {file = "tox-4.6.3-py3-none-any.whl", hash = "sha256:2946a0bb38924c3a9f9575c7fb4ca1f4c11a7c69c61592f176778892155cb50c"}, + {file = "tox-4.6.3.tar.gz", hash = "sha256:9e2c5091a117d03b583c57c4c40aecd068099c17d40520e7b165e85c19334534"}, ] [package.dependencies] From 2fe40c54cf861d347dc9e8fde30f4dba44681b22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 13:05:44 +0000 Subject: [PATCH 198/371] Bump pytest from 7.3.2 to 7.4.0 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.3.2 to 7.4.0. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.3.2...7.4.0) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 33b5f95..5b95a17 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1021,13 +1021,13 @@ testing = ["covdefaults (>=2.3)", "importlib-metadata (>=6.6)", "pytest (>=7.3.1 [[package]] name = "pytest" -version = "7.3.2" +version = "7.4.0" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.3.2-py3-none-any.whl", hash = "sha256:cdcbd012c9312258922f8cd3f1b62a6580fdced17db6014896053d47cddf9295"}, - {file = "pytest-7.3.2.tar.gz", hash = "sha256:ee990a3cc55ba808b80795a79944756f315c67c12b56abd3ac993a7b8c17030b"}, + {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, + {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, ] [package.dependencies] @@ -1511,4 +1511,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "32fd5e7413a24c97d055e25f0969b5482a143074281d5a095374d239ba093dee" +content-hash = "f6099a05f53d9668ed345ab3774781bab8b344c30c5248fac44593fc558f683a" diff --git a/pyproject.toml b/pyproject.toml index a304441..ecfb24d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,7 +63,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^7.3.2" +pytest = "^7.4.0" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From 29ab2c4cdaf59be6af576b388d0892ff733b75c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 12:49:24 +0000 Subject: [PATCH 199/371] Bump sphinx-immaterial from 0.11.4 to 0.11.5 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.4 to 0.11.5. - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.4...v0.11.5) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 185 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 140 insertions(+), 45 deletions(-) diff --git a/poetry.lock b/poetry.lock index 33b5f95..07a3e85 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,6 +11,20 @@ files = [ {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, ] +[[package]] +name = "annotated-types" +version = "0.5.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.7" +files = [ + {file = "annotated_types-0.5.0-py3-none-any.whl", hash = "sha256:58da39888f92c276ad970249761ebea80ba544b77acddaa1a4d6cf78287d45fd"}, + {file = "annotated_types-0.5.0.tar.gz", hash = "sha256:47cdc3490d9ac1506ce92c7aaa76c579dc3509ff11e098fc867e5130ab7be802"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} + [[package]] name = "appdirs" version = "1.4.4" @@ -925,55 +939,135 @@ files = [ [[package]] name = "pydantic" -version = "1.10.9" -description = "Data validation and settings management using python type hints" +version = "2.0" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-2.0-py3-none-any.whl", hash = "sha256:8bf7355be5e1207c756dfbc8046236dadd4ce04101fb482e6c8834a06d9aa04f"}, + {file = "pydantic-2.0.tar.gz", hash = "sha256:6e313661b310eb5b2c45168ce05d8dd79f57563adaf3906162a917585576b846"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +pydantic-core = "2.0.1" +typing-extensions = ">=4.6.1" + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.0.1" +description = "" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic_core-2.0.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:92b01e166a3b69e8054308709acabec1bae65dae83ba6329f4fcc8448e170a06"}, + {file = "pydantic_core-2.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ae53240f9f92f634b73a3e5ee87b9ec8ac38d5bee96ea65034af58f48d489a65"}, + {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0dd6bb98271519a309e96e927b52f8ca1323a99762bec87cda8fdaaa221e5cd"}, + {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c656b8d4603af6744ed2f2c0be499790f0913a2186ef7214c88d47d42051ae4b"}, + {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_24_armv7l.whl", hash = "sha256:ddbad540cba15b5262bd800bb6f0746a4ac719de0fe0a2acab8e0d50eb54ba9a"}, + {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:e2e9025e132761e7ea8dab448923ccd8839c60199e863a6348d7e8b1a674edd1"}, + {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_24_s390x.whl", hash = "sha256:ac6a57d01c0b67563dd273f2b71e9aab643573b569a202bfff7dad502b0b8ee0"}, + {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:44c8cec1d74d74c29da59c86e8cd472851c85b44d75128096ef3751c5c87c204"}, + {file = "pydantic_core-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76d5d18ef9065ecbf62d6ec82c45ddbb47174a7400eb780040a7ebdad1c0ead8"}, + {file = "pydantic_core-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:722aa193ba1f587226991a789a3f098235b5f04e85cf815af9e8ad823a5a85e1"}, + {file = "pydantic_core-2.0.1-cp310-none-win32.whl", hash = "sha256:16977790d69bac6034baa2349326db2ff465ad346c53b8d54c3674e05b070af2"}, + {file = "pydantic_core-2.0.1-cp310-none-win_amd64.whl", hash = "sha256:0fcdb43190588f6219709b43ffa679e562c0d4a44a50aafb6cc88978da4a84b7"}, + {file = "pydantic_core-2.0.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:73c464afa0a959472045f242ef7cdaf6a38b76a6d7dfa1ef270de0967c04408d"}, + {file = "pydantic_core-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ab7eafb33fdc7aa8667634be58a3d1c8ed3fa8923c6bc5014657bf95b51b4a46"}, + {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cf3e484bc8e8c8a568d572a6619696d7e2e2aef214b0be503f0814f8bafca9f"}, + {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc99af5be239961d718bbf8e4d6bd1caa6de556e44ed08eb5135cfbefc958728"}, + {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_24_armv7l.whl", hash = "sha256:e55fc76ce657208c0d7e21e2e96925993dd4063d5c5ee9227dcdf4e550c02a29"}, + {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_24_ppc64le.whl", hash = "sha256:ccb06e1667a9784a96e0fc2500b989b8afbe9ac68a39a3c806c056ee228eff3c"}, + {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_24_s390x.whl", hash = "sha256:b23ae8b27b6eff72909a9a88123ac28b746d95f25927ce67d3b0f3dabe099a0a"}, + {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6387c2956baf16891e7bc20d864a769c0f9f61799d4895c8f493e2de8f7b88aa"}, + {file = "pydantic_core-2.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1c855ef11370eacff25556658fb7fa243e8c0bd4235fa20a0f473bded2ede252"}, + {file = "pydantic_core-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f9452d470012ee86a00a36f7673843038fd1a88661a28c72e65e7f3f084da8d8"}, + {file = "pydantic_core-2.0.1-cp311-none-win32.whl", hash = "sha256:0872a1c52da4cfc494e23c83532c7fc1313de311a14334b7a58216a8dea828e0"}, + {file = "pydantic_core-2.0.1-cp311-none-win_amd64.whl", hash = "sha256:7a4fc3e8c788798739f4aa6772d994e4453a17dadb1b8eea4582a31cdfe683d2"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:ddb23eaf427dbbde41b543d98a0c4a7aeb73bf649e3faa75b94a2fd882a669ba"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:4eda2b350b02293c7060f2371ad3ce7b00342bd61c8654d2ba374bd10c6b6b66"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7727a4fcb93572d4e521b028f1c64f1eda2da49d506b1a6208576faa9e0acd64"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:007cdcee7e1a40951768d0d250e566b603e25d0fa8b8302901e38560bc9badf9"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_24_armv7l.whl", hash = "sha256:89123ab11a23fa9c332655933350dc231945ca6b1148c1e1960aad0a5a6de1c0"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:03d12c44decb122d5feede5408cc6c67e506b64016ce4b59c825d1a8c90f288a"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_24_s390x.whl", hash = "sha256:ff015389ae4ca6869a2fdd16c21ee1ce7c134503f2148efd46db643ce27ca520"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8daded5c64811da4bdc7d6792afa10328bff5c3514536f69457596d4a2646b49"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a1dd1b182fde9f95f1cc28964612fb1b180fdd3ca2cac881c108db29906b2e01"}, + {file = "pydantic_core-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c8e53bae6e58a8ff8e93f9a77440cfe8fc017bb9a8430dc03beb6bdd648572d2"}, + {file = "pydantic_core-2.0.1-cp37-none-win32.whl", hash = "sha256:a7d0de538719feda5cabf19c63cc17345df6a0ab579b95518925d2b25276daaf"}, + {file = "pydantic_core-2.0.1-cp37-none-win_amd64.whl", hash = "sha256:1bb6d1057c054056614aefeced05299d3590acf76768538b34ebec9cbbf26953"}, + {file = "pydantic_core-2.0.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:9ee1c2d0cf5c92faf722ff366814859c764c82b30af7f91b9b1950e15efecb9e"}, + {file = "pydantic_core-2.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:adc2efaf0c45135214dff4d18d4aaf2b692249cb369f921fe0fde3a13cf7ddad"}, + {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8927c166f20e3933cc9a9a68701acc8de22ee54b70d8c4044ad461b043b3cf9b"}, + {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adbfc6c7ddd1cca6efe62a0292cae7cf2d05c9ebb139d0da10b0d44346e253c7"}, + {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_24_armv7l.whl", hash = "sha256:659f22427d653769d1b4c672fd2daf53e639a5a93b0dd6fc0b37ef822a6e77d7"}, + {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:71cf43912edeae476f47d16520e48bddbf9af0ebdd98961c38ca8944f4f22b9d"}, + {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_24_s390x.whl", hash = "sha256:10736490eacc426d681ae6f00f1d8ce01fc77c45086a597e829c3eed127179b1"}, + {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5f3158cb4cda580f3b063b03257c7f5c2d9e66f9c2a93466c76056f7c4d5a3b7"}, + {file = "pydantic_core-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8ca5a743af642700fc69dc64e0b964dd7499dcabb399e5cc2223fbc9cb33965d"}, + {file = "pydantic_core-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fa5a3d49ddbeaa80bb2a8927b90e9cdd43373616ba0b7b7a74a3ae33b5c9640c"}, + {file = "pydantic_core-2.0.1-cp38-none-win32.whl", hash = "sha256:d6e21da7f7e3935b24bfd17d7c3eefe4c1edca380edaec854a8593796d8d96f1"}, + {file = "pydantic_core-2.0.1-cp38-none-win_amd64.whl", hash = "sha256:0b154abef540a76bb2b7a641b3ae1e05e5c4b08eb9ad6c27a217b3c64ffcda0b"}, + {file = "pydantic_core-2.0.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:aad8b177370002f73f08eafefa3d969d9c4498da6d67d8a43ffdeb4b4e560e1c"}, + {file = "pydantic_core-2.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9cf1ba93657cad863d23ecb09227665c0abe26c131acd24abb5edc6249a36a70"}, + {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79225132aa1fe97a5e947da820b323d63372fb3475d94ff81ca6f91669717a01"}, + {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bd78c4f04794a8e527d32c8ec1a26682b35b5c9347bb6e3cc853ba1a43c72a5"}, + {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_24_armv7l.whl", hash = "sha256:bb2daa4e3d4efbf2e2dedc1a7cea3e48ff12d0c95ab2011e7f731bdc97d16ed0"}, + {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:958964a0ad0cea700b25037b21f5a2da38d19bddaa2f15ce36f51c048a9efe92"}, + {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_24_s390x.whl", hash = "sha256:e0edd3c6762b3ff3fdbd90517a09808e5d67cce86d7c43ec6f5ca3f65bfe7fd9"}, + {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e76a9b0c2b2fb29a80764e106b1ea35c1b96a4e62e7ce7dde44f5df153fd5b66"}, + {file = "pydantic_core-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:88fc72e60d818924cb3d32948b682bcea0dadd0fd2efae9a4d0b7a55e310908a"}, + {file = "pydantic_core-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c04aa22ded4baf29c3c1ec3b76d5264dd91794b974a737251fdd0827abcc2c78"}, + {file = "pydantic_core-2.0.1-cp39-none-win32.whl", hash = "sha256:4372e8fcb458aad1e155c04e663ff1840f36b859fb1422578372712a78866051"}, + {file = "pydantic_core-2.0.1-cp39-none-win_amd64.whl", hash = "sha256:c5fef2dc7ed589ea83ac5ce526fcb8e8eb0ab79bfa67f958dafbda0a05ab3018"}, + {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e4785a8c5440e410394f88e30c3db862ed05841595311ddc969b3fde377f95ea"}, + {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e90b99b6aa9fd6eee6d6f86921d38252c6e55c319dc6c5e411922d0dc173825"}, + {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:182a0e5ce9382a0a77aab8407ead303b6e310c673a46b18937fa1a90c22ccbc4"}, + {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b83e11a68936f80ee92ef1001bf6b9fedf0602396acc417b16a9c136a9b3b7bd"}, + {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5e4a918eeae2c566fdcad9ee89d8708a59dc5ec3d5083b61a886b19f82f69f5c"}, + {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:88b56a4e7480f4f22fa2faefdb0a887d70420d9cd8cb160677e8abe46769e7b0"}, + {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3a85fde791e6567f879b50b59f1740afc55333060d93548d6bbb46bf1b6a1b49"}, + {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef349e4ac794559c1538787a0fbce378a1beb991ef4f7707a6cde3156294259d"}, + {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0f90928ed48b91d93add357fb1e81cef729bffaff3ab88882b76549434b4574"}, + {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3f8fea22690c6c33c4d36d2236732da29da560f815cd9aba1d3b5ab59dcb214"}, + {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbbefd38ef80b37d056592c366a164a37b4e87b12f0aba23c35087d890fb31ba"}, + {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:8945ba48644b45d4e66cc3e56b896e97fb1d7f166dd0ee1eb137bbfdf1285483"}, + {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:1c318bd2bdaa88ec078dc7932e108a9c43caeabc84d2cf545081fb6a99ed1b90"}, + {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:7176ffa02c45d557cceb75f1290a2ddf53da680c6878aae54e69aafb21c52efd"}, + {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:176eb3ec03da4c36da7708d2398139e13d1130b3b3d1af4334a959f46278baa9"}, + {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46bb28295082a22f3c7f5fa5546d669aed7eb43151ec0032e8c352c59f5e36af"}, + {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e4b4c836100e5f07189b0aea8b4afae326f169bfdef91e86fd90a0d3c27f0c75"}, + {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:b56f3758b82f26414a4dccd76f05c768df7bd2735e0ac43f3dfff2f5603d32a9"}, + {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0c8877d9e0bd128f103a1b0f02899aa7d4be1104eef5dc35e2b633042b64a2d1"}, + {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1672c8c36414c56adf704753b2d7e22e7528d7bd21cd357f24edeff76d4fd4ca"}, + {file = "pydantic_core-2.0.1.tar.gz", hash = "sha256:f9fffcb5507bff84a1312d1616406cad157806f105d78bd184d1e6b3b00e6417"}, +] + +[package.dependencies] +typing-extensions = [ + {version = ">=4.6.0", markers = "platform_python_implementation != \"PyPy\""}, + {version = ">=4.6.0,<4.7.0", markers = "platform_python_implementation == \"PyPy\""}, +] + +[[package]] +name = "pydantic-extra-types" +version = "2.0.0" +description = "Extra Pydantic types." optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-1.10.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e692dec4a40bfb40ca530e07805b1208c1de071a18d26af4a2a0d79015b352ca"}, - {file = "pydantic-1.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c52eb595db83e189419bf337b59154bdcca642ee4b2a09e5d7797e41ace783f"}, - {file = "pydantic-1.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:939328fd539b8d0edf244327398a667b6b140afd3bf7e347cf9813c736211896"}, - {file = "pydantic-1.10.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b48d3d634bca23b172f47f2335c617d3fcb4b3ba18481c96b7943a4c634f5c8d"}, - {file = "pydantic-1.10.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f0b7628fb8efe60fe66fd4adadd7ad2304014770cdc1f4934db41fe46cc8825f"}, - {file = "pydantic-1.10.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e1aa5c2410769ca28aa9a7841b80d9d9a1c5f223928ca8bec7e7c9a34d26b1d4"}, - {file = "pydantic-1.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:eec39224b2b2e861259d6f3c8b6290d4e0fbdce147adb797484a42278a1a486f"}, - {file = "pydantic-1.10.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d111a21bbbfd85c17248130deac02bbd9b5e20b303338e0dbe0faa78330e37e0"}, - {file = "pydantic-1.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e9aec8627a1a6823fc62fb96480abe3eb10168fd0d859ee3d3b395105ae19a7"}, - {file = "pydantic-1.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07293ab08e7b4d3c9d7de4949a0ea571f11e4557d19ea24dd3ae0c524c0c334d"}, - {file = "pydantic-1.10.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ee829b86ce984261d99ff2fd6e88f2230068d96c2a582f29583ed602ef3fc2c"}, - {file = "pydantic-1.10.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4b466a23009ff5cdd7076eb56aca537c745ca491293cc38e72bf1e0e00de5b91"}, - {file = "pydantic-1.10.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7847ca62e581e6088d9000f3c497267868ca2fa89432714e21a4fb33a04d52e8"}, - {file = "pydantic-1.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:7845b31959468bc5b78d7b95ec52fe5be32b55d0d09983a877cca6aedc51068f"}, - {file = "pydantic-1.10.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:517a681919bf880ce1dac7e5bc0c3af1e58ba118fd774da2ffcd93c5f96eaece"}, - {file = "pydantic-1.10.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67195274fd27780f15c4c372f4ba9a5c02dad6d50647b917b6a92bf00b3d301a"}, - {file = "pydantic-1.10.9-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2196c06484da2b3fded1ab6dbe182bdabeb09f6318b7fdc412609ee2b564c49a"}, - {file = "pydantic-1.10.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6257bb45ad78abacda13f15bde5886efd6bf549dd71085e64b8dcf9919c38b60"}, - {file = "pydantic-1.10.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3283b574b01e8dbc982080d8287c968489d25329a463b29a90d4157de4f2baaf"}, - {file = "pydantic-1.10.9-cp37-cp37m-win_amd64.whl", hash = "sha256:5f8bbaf4013b9a50e8100333cc4e3fa2f81214033e05ac5aa44fa24a98670a29"}, - {file = "pydantic-1.10.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9cd67fb763248cbe38f0593cd8611bfe4b8ad82acb3bdf2b0898c23415a1f82"}, - {file = "pydantic-1.10.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f50e1764ce9353be67267e7fd0da08349397c7db17a562ad036aa7c8f4adfdb6"}, - {file = "pydantic-1.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73ef93e5e1d3c8e83f1ff2e7fdd026d9e063c7e089394869a6e2985696693766"}, - {file = "pydantic-1.10.9-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:128d9453d92e6e81e881dd7e2484e08d8b164da5507f62d06ceecf84bf2e21d3"}, - {file = "pydantic-1.10.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ad428e92ab68798d9326bb3e5515bc927444a3d71a93b4a2ca02a8a5d795c572"}, - {file = "pydantic-1.10.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fab81a92f42d6d525dd47ced310b0c3e10c416bbfae5d59523e63ea22f82b31e"}, - {file = "pydantic-1.10.9-cp38-cp38-win_amd64.whl", hash = "sha256:963671eda0b6ba6926d8fc759e3e10335e1dc1b71ff2a43ed2efd6996634dafb"}, - {file = "pydantic-1.10.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:970b1bdc6243ef663ba5c7e36ac9ab1f2bfecb8ad297c9824b542d41a750b298"}, - {file = "pydantic-1.10.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7e1d5290044f620f80cf1c969c542a5468f3656de47b41aa78100c5baa2b8276"}, - {file = "pydantic-1.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83fcff3c7df7adff880622a98022626f4f6dbce6639a88a15a3ce0f96466cb60"}, - {file = "pydantic-1.10.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0da48717dc9495d3a8f215e0d012599db6b8092db02acac5e0d58a65248ec5bc"}, - {file = "pydantic-1.10.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0a2aabdc73c2a5960e87c3ffebca6ccde88665616d1fd6d3db3178ef427b267a"}, - {file = "pydantic-1.10.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9863b9420d99dfa9c064042304868e8ba08e89081428a1c471858aa2af6f57c4"}, - {file = "pydantic-1.10.9-cp39-cp39-win_amd64.whl", hash = "sha256:e7c9900b43ac14110efa977be3da28931ffc74c27e96ee89fbcaaf0b0fe338e1"}, - {file = "pydantic-1.10.9-py3-none-any.whl", hash = "sha256:6cafde02f6699ce4ff643417d1a9223716ec25e228ddc3b436fe7e2d25a1f305"}, - {file = "pydantic-1.10.9.tar.gz", hash = "sha256:95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be"}, + {file = "pydantic_extra_types-2.0.0-py3-none-any.whl", hash = "sha256:63e5109f00815e71fff2b82090ff0523baef6b8a51889356fd984ef50c184e64"}, + {file = "pydantic_extra_types-2.0.0.tar.gz", hash = "sha256:137ddacb168d95ea77591dbb3739ec4da5eeac0fc4df7f797371d9904451a178"}, ] [package.dependencies] -typing-extensions = ">=4.2.0" +pydantic = ">=2.0b3" [package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] +all = ["phonenumbers (>=8,<9)", "pycountry (>=22,<23)"] [[package]] name = "pyflakes" @@ -1291,19 +1385,20 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.4" +version = "0.11.5" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.4-py3-none-any.whl", hash = "sha256:98f9d7f93eeddcb8c9d959c144e616e84eea99860dee2ffb8b5fe5aa4b85ea63"}, - {file = "sphinx_immaterial-0.11.4.tar.gz", hash = "sha256:8d902654ffeda1ca2ecd7f8ef4f67feb8b9abf9b5f23d68518170ffe433772d7"}, + {file = "sphinx_immaterial-0.11.5-py3-none-any.whl", hash = "sha256:f9fe0a3afca7edd530656afa08303bfb7338d03164da173a0e1bc68d0d1adad6"}, + {file = "sphinx_immaterial-0.11.5.tar.gz", hash = "sha256:fbd697cba07212a359e42bc24e6effcbbfe97e17411d4e874768028bc7bcd407"}, ] [package.dependencies] appdirs = "*" markupsafe = "*" -pydantic = "*" +pydantic = ">=2.0" +pydantic-extra-types = "*" requests = "*" sphinx = ">=4.5" typing-extensions = "*" From ed775170527ea9867426ca750838c7428aee99c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jul 2023 10:10:34 +0000 Subject: [PATCH 200/371] Bump mypy from 1.3.0 to 1.4.1 Bumps [mypy](https://github.com/python/mypy) from 1.3.0 to 1.4.1. - [Commits](https://github.com/python/mypy/compare/v1.3.0...v1.4.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 58 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index afb51ef..4bc6c02 100644 --- a/poetry.lock +++ b/poetry.lock @@ -749,43 +749,43 @@ files = [ [[package]] name = "mypy" -version = "1.3.0" +version = "1.4.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.7" files = [ - {file = "mypy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c1eb485cea53f4f5284e5baf92902cd0088b24984f4209e25981cc359d64448d"}, - {file = "mypy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c99c3ecf223cf2952638da9cd82793d8f3c0c5fa8b6ae2b2d9ed1e1ff51ba85"}, - {file = "mypy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:550a8b3a19bb6589679a7c3c31f64312e7ff482a816c96e0cecec9ad3a7564dd"}, - {file = "mypy-1.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cbc07246253b9e3d7d74c9ff948cd0fd7a71afcc2b77c7f0a59c26e9395cb152"}, - {file = "mypy-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:a22435632710a4fcf8acf86cbd0d69f68ac389a3892cb23fbad176d1cddaf228"}, - {file = "mypy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6e33bb8b2613614a33dff70565f4c803f889ebd2f859466e42b46e1df76018dd"}, - {file = "mypy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7d23370d2a6b7a71dc65d1266f9a34e4cde9e8e21511322415db4b26f46f6b8c"}, - {file = "mypy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:658fe7b674769a0770d4b26cb4d6f005e88a442fe82446f020be8e5f5efb2fae"}, - {file = "mypy-1.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6e42d29e324cdda61daaec2336c42512e59c7c375340bd202efa1fe0f7b8f8ca"}, - {file = "mypy-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:d0b6c62206e04061e27009481cb0ec966f7d6172b5b936f3ead3d74f29fe3dcf"}, - {file = "mypy-1.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:76ec771e2342f1b558c36d49900dfe81d140361dd0d2df6cd71b3db1be155409"}, - {file = "mypy-1.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebc95f8386314272bbc817026f8ce8f4f0d2ef7ae44f947c4664efac9adec929"}, - {file = "mypy-1.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:faff86aa10c1aa4a10e1a301de160f3d8fc8703b88c7e98de46b531ff1276a9a"}, - {file = "mypy-1.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8c5979d0deb27e0f4479bee18ea0f83732a893e81b78e62e2dda3e7e518c92ee"}, - {file = "mypy-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c5d2cc54175bab47011b09688b418db71403aefad07cbcd62d44010543fc143f"}, - {file = "mypy-1.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:87df44954c31d86df96c8bd6e80dfcd773473e877ac6176a8e29898bfb3501cb"}, - {file = "mypy-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:473117e310febe632ddf10e745a355714e771ffe534f06db40702775056614c4"}, - {file = "mypy-1.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:74bc9b6e0e79808bf8678d7678b2ae3736ea72d56eede3820bd3849823e7f305"}, - {file = "mypy-1.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:44797d031a41516fcf5cbfa652265bb994e53e51994c1bd649ffcd0c3a7eccbf"}, - {file = "mypy-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ddae0f39ca146972ff6bb4399f3b2943884a774b8771ea0a8f50e971f5ea5ba8"}, - {file = "mypy-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c4c42c60a8103ead4c1c060ac3cdd3ff01e18fddce6f1016e08939647a0e703"}, - {file = "mypy-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e86c2c6852f62f8f2b24cb7a613ebe8e0c7dc1402c61d36a609174f63e0ff017"}, - {file = "mypy-1.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f9dca1e257d4cc129517779226753dbefb4f2266c4eaad610fc15c6a7e14283e"}, - {file = "mypy-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:95d8d31a7713510685b05fbb18d6ac287a56c8f6554d88c19e73f724a445448a"}, - {file = "mypy-1.3.0-py3-none-any.whl", hash = "sha256:a8763e72d5d9574d45ce5881962bc8e9046bf7b375b0abf031f3e6811732a897"}, - {file = "mypy-1.3.0.tar.gz", hash = "sha256:e1f4d16e296f5135624b34e8fb741eb0eadedca90862405b1f1fde2040b9bd11"}, + {file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"}, + {file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"}, + {file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"}, + {file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"}, + {file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"}, + {file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"}, + {file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"}, + {file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"}, + {file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"}, + {file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"}, + {file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"}, + {file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"}, + {file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"}, + {file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"}, + {file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"}, + {file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"}, + {file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"}, + {file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"}, + {file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"}, + {file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"}, + {file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"}, + {file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"}, + {file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"}, + {file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"}, + {file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"}, + {file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"}, ] [package.dependencies] mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=3.10" +typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] @@ -1606,4 +1606,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "f6099a05f53d9668ed345ab3774781bab8b344c30c5248fac44593fc558f683a" +content-hash = "99daf714a6112b4d577e14721611eadd6f9347c02ee57730e535a89eabb53831" diff --git a/pyproject.toml b/pyproject.toml index ecfb24d..90fe9c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,7 @@ pytest = "^7.4.0" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" -mypy = "^1.3" +mypy = "^1.4" isort = "^5.11.5" black = "^23.3.0" flynt = "^0.78" From 0007779e7a181c6b03a3f3ed730aeeadd218a9aa Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 9 Jul 2023 12:18:31 +0100 Subject: [PATCH 201/371] Update dependencies --- poetry.lock | 603 ++++++++++++++++++++++++++++--------------------- pyproject.toml | 6 +- 2 files changed, 350 insertions(+), 259 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4bc6c02..3724352 100644 --- a/poetry.lock +++ b/poetry.lock @@ -174,97 +174,97 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.1.0" +version = "3.2.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, - {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, + {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, + {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, ] [[package]] name = "click" -version = "8.1.3" +version = "8.1.4" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.4-py3-none-any.whl", hash = "sha256:2739815aaa5d2c986a88f1e9230c55e17f0caad3d958a5e13ad0797c166db9e3"}, + {file = "click-8.1.4.tar.gz", hash = "sha256:b97d0c74955da062a7d4ef92fadb583806a585b2ea81958a81bd72726cbb8e37"}, ] [package.dependencies] @@ -387,24 +387,24 @@ files = [ [[package]] name = "docutils" -version = "0.19" +version = "0.20.1" description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=3.7" files = [ - {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, - {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, ] [[package]] name = "exceptiongroup" -version = "1.1.1" +version = "1.1.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, - {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, + {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"}, + {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"}, ] [package.extras] @@ -497,13 +497,13 @@ files = [ [[package]] name = "importlib-metadata" -version = "6.6.0" +version = "6.8.0" description = "Read metadata from Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"}, - {file = "importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"}, + {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, + {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, ] [package.dependencies] @@ -512,25 +512,25 @@ zipp = ">=0.5" [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] [[package]] name = "importlib-resources" -version = "5.12.0" +version = "5.13.0" description = "Read resources from Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, - {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, + {file = "importlib_resources-5.13.0-py3-none-any.whl", hash = "sha256:9f7bd0c97b79972a6cce36a366356d16d5e13b09679c11a58f1014bfdf8e64b2"}, + {file = "importlib_resources-5.13.0.tar.gz", hash = "sha256:82d5c6cca930697dbbd86c93333bb2c2e72861d4789a11c2662b933e5ad2b528"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [[package]] name = "iniconfig" @@ -579,13 +579,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.18.0a10" +version = "4.18.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.18.0a10-py3-none-any.whl", hash = "sha256:1b0ae112eb7a9681cc0a2a83eabf564b62417128d9c2dbd940eb410d20a8bbb9"}, - {file = "jsonschema-4.18.0a10.tar.gz", hash = "sha256:7641e516a53ac67221a8045eccf11ba30312f9c28e173c911b84561f6f17fccb"}, + {file = "jsonschema-4.18.0-py3-none-any.whl", hash = "sha256:b508dd6142bd03f4c3670534c80af68cd7bbff9ea830b9cf2625d4a3c49ddf60"}, + {file = "jsonschema-4.18.0.tar.gz", hash = "sha256:8caf5b57a990a98e9b39832ef3cb35c176fe331414252b6e1b26fd5866f891a4"}, ] [package.dependencies] @@ -602,13 +602,13 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-spec" -version = "0.2.2" +version = "0.2.3" description = "JSONSchema Spec with object-oriented paths" optional = false python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "jsonschema_spec-0.2.2-py3-none-any.whl", hash = "sha256:8a4be06134787e4d747dfb68851b9f9bceafcaa90647a852e8e8993af11705e2"}, - {file = "jsonschema_spec-0.2.2.tar.gz", hash = "sha256:a5c98c2b0be73a1b3cf8464b8a300210d1006eb086ffb9fb0e58b19052ec86ec"}, + {file = "jsonschema_spec-0.2.3-py3-none-any.whl", hash = "sha256:ee005ddeca73229560ac2b8f1849590929c4b2cd17a932b229b03566e517f2a6"}, + {file = "jsonschema_spec-0.2.3.tar.gz", hash = "sha256:e01b8b100f0676177b0b39027a5cab7e7a16ce4316a3d0d15e576293d954fafc"}, ] [package.dependencies] @@ -619,13 +619,13 @@ requests = ">=2.31.0,<3.0.0" [[package]] name = "jsonschema-specifications" -version = "2023.5.2" +version = "2023.6.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema_specifications-2023.5.2-py3-none-any.whl", hash = "sha256:51d2972bf690cfe21970f722f878580d863f7c127d200fce671c5dae10b88f5f"}, - {file = "jsonschema_specifications-2023.5.2.tar.gz", hash = "sha256:1aefc07b022e3b8ce8bec135c78b74ae1ffd260822c67011427192b3a7525e09"}, + {file = "jsonschema_specifications-2023.6.1-py3-none-any.whl", hash = "sha256:3d2b82663aff01815f744bb5c7887e2121a63399b49b104a3c96145474d091d7"}, + {file = "jsonschema_specifications-2023.6.1.tar.gz", hash = "sha256:ca1c4dd059a9e7b34101cf5b3ab7ff1d18b139f35950d598d629837ef66e8f28"}, ] [package.dependencies] @@ -820,17 +820,17 @@ setuptools = "*" [[package]] name = "openapi-schema-validator" -version = "0.6.0a1" +version = "0.6.0" description = "OpenAPI schema validation for Python" optional = false python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "openapi_schema_validator-0.6.0a1-py3-none-any.whl", hash = "sha256:ba58308d97f7382c84d9462788530fb45b928f8c5afbf0d66f7e9a38ae19505c"}, - {file = "openapi_schema_validator-0.6.0a1.tar.gz", hash = "sha256:e6edc71d4d7d7c57649a32613657033243d7ff326b787a00aa69151b4ee10d35"}, + {file = "openapi_schema_validator-0.6.0-py3-none-any.whl", hash = "sha256:9e95b95b621efec5936245025df0d6a7ffacd1551e91d09196b3053040c931d7"}, + {file = "openapi_schema_validator-0.6.0.tar.gz", hash = "sha256:921b7c1144b856ca3813e41ecff98a4050f7611824dfc5c6ead7072636af0520"}, ] [package.dependencies] -jsonschema = ">=4.18.0a1,<5.0.0" +jsonschema = ">=4.18.0,<5.0.0" jsonschema-specifications = ">=2023.5.2,<2024.0.0" rfc3339-validator = "*" @@ -880,13 +880,13 @@ files = [ [[package]] name = "platformdirs" -version = "3.5.3" +version = "3.8.1" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.5.3-py3-none-any.whl", hash = "sha256:0ade98a4895e87dc51d47151f7d2ec290365a585151d97b4d8d6312ed6132fed"}, - {file = "platformdirs-3.5.3.tar.gz", hash = "sha256:e48fabd87db8f3a7df7150a4a5ea22c546ee8bc39bc2473244730d4b56d2cc4e"}, + {file = "platformdirs-3.8.1-py3-none-any.whl", hash = "sha256:cec7b889196b9144d088e4c57d9ceef7374f6c39694ad1577a0aab50d27ea28c"}, + {file = "platformdirs-3.8.1.tar.gz", hash = "sha256:f87ca4fcff7d2b0f81c6a748a77973d7af0f4d526f98f308477c3c436c74d528"}, ] [package.extras] @@ -895,13 +895,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest- [[package]] name = "pluggy" -version = "1.0.0" +version = "1.2.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, + {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, + {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, ] [package.extras] @@ -939,18 +939,18 @@ files = [ [[package]] name = "pydantic" -version = "2.0" +version = "2.0.2" description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-2.0-py3-none-any.whl", hash = "sha256:8bf7355be5e1207c756dfbc8046236dadd4ce04101fb482e6c8834a06d9aa04f"}, - {file = "pydantic-2.0.tar.gz", hash = "sha256:6e313661b310eb5b2c45168ce05d8dd79f57563adaf3906162a917585576b846"}, + {file = "pydantic-2.0.2-py3-none-any.whl", hash = "sha256:f5581e0c79b2ec2fa25a9d30d766629811cdda022107fa73d022ab5578873ae3"}, + {file = "pydantic-2.0.2.tar.gz", hash = "sha256:b802f5245b8576315fe619e5989fd083448fa1258638ef9dac301ca60878396d"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.0.1" +pydantic-core = "2.1.2" typing-extensions = ">=4.6.1" [package.extras] @@ -958,99 +958,116 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.0.1" +version = "2.1.2" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic_core-2.0.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:92b01e166a3b69e8054308709acabec1bae65dae83ba6329f4fcc8448e170a06"}, - {file = "pydantic_core-2.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ae53240f9f92f634b73a3e5ee87b9ec8ac38d5bee96ea65034af58f48d489a65"}, - {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0dd6bb98271519a309e96e927b52f8ca1323a99762bec87cda8fdaaa221e5cd"}, - {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c656b8d4603af6744ed2f2c0be499790f0913a2186ef7214c88d47d42051ae4b"}, - {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_24_armv7l.whl", hash = "sha256:ddbad540cba15b5262bd800bb6f0746a4ac719de0fe0a2acab8e0d50eb54ba9a"}, - {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:e2e9025e132761e7ea8dab448923ccd8839c60199e863a6348d7e8b1a674edd1"}, - {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_24_s390x.whl", hash = "sha256:ac6a57d01c0b67563dd273f2b71e9aab643573b569a202bfff7dad502b0b8ee0"}, - {file = "pydantic_core-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:44c8cec1d74d74c29da59c86e8cd472851c85b44d75128096ef3751c5c87c204"}, - {file = "pydantic_core-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76d5d18ef9065ecbf62d6ec82c45ddbb47174a7400eb780040a7ebdad1c0ead8"}, - {file = "pydantic_core-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:722aa193ba1f587226991a789a3f098235b5f04e85cf815af9e8ad823a5a85e1"}, - {file = "pydantic_core-2.0.1-cp310-none-win32.whl", hash = "sha256:16977790d69bac6034baa2349326db2ff465ad346c53b8d54c3674e05b070af2"}, - {file = "pydantic_core-2.0.1-cp310-none-win_amd64.whl", hash = "sha256:0fcdb43190588f6219709b43ffa679e562c0d4a44a50aafb6cc88978da4a84b7"}, - {file = "pydantic_core-2.0.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:73c464afa0a959472045f242ef7cdaf6a38b76a6d7dfa1ef270de0967c04408d"}, - {file = "pydantic_core-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ab7eafb33fdc7aa8667634be58a3d1c8ed3fa8923c6bc5014657bf95b51b4a46"}, - {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cf3e484bc8e8c8a568d572a6619696d7e2e2aef214b0be503f0814f8bafca9f"}, - {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc99af5be239961d718bbf8e4d6bd1caa6de556e44ed08eb5135cfbefc958728"}, - {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_24_armv7l.whl", hash = "sha256:e55fc76ce657208c0d7e21e2e96925993dd4063d5c5ee9227dcdf4e550c02a29"}, - {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_24_ppc64le.whl", hash = "sha256:ccb06e1667a9784a96e0fc2500b989b8afbe9ac68a39a3c806c056ee228eff3c"}, - {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_24_s390x.whl", hash = "sha256:b23ae8b27b6eff72909a9a88123ac28b746d95f25927ce67d3b0f3dabe099a0a"}, - {file = "pydantic_core-2.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6387c2956baf16891e7bc20d864a769c0f9f61799d4895c8f493e2de8f7b88aa"}, - {file = "pydantic_core-2.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1c855ef11370eacff25556658fb7fa243e8c0bd4235fa20a0f473bded2ede252"}, - {file = "pydantic_core-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f9452d470012ee86a00a36f7673843038fd1a88661a28c72e65e7f3f084da8d8"}, - {file = "pydantic_core-2.0.1-cp311-none-win32.whl", hash = "sha256:0872a1c52da4cfc494e23c83532c7fc1313de311a14334b7a58216a8dea828e0"}, - {file = "pydantic_core-2.0.1-cp311-none-win_amd64.whl", hash = "sha256:7a4fc3e8c788798739f4aa6772d994e4453a17dadb1b8eea4582a31cdfe683d2"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:ddb23eaf427dbbde41b543d98a0c4a7aeb73bf649e3faa75b94a2fd882a669ba"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:4eda2b350b02293c7060f2371ad3ce7b00342bd61c8654d2ba374bd10c6b6b66"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7727a4fcb93572d4e521b028f1c64f1eda2da49d506b1a6208576faa9e0acd64"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:007cdcee7e1a40951768d0d250e566b603e25d0fa8b8302901e38560bc9badf9"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_24_armv7l.whl", hash = "sha256:89123ab11a23fa9c332655933350dc231945ca6b1148c1e1960aad0a5a6de1c0"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:03d12c44decb122d5feede5408cc6c67e506b64016ce4b59c825d1a8c90f288a"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_24_s390x.whl", hash = "sha256:ff015389ae4ca6869a2fdd16c21ee1ce7c134503f2148efd46db643ce27ca520"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8daded5c64811da4bdc7d6792afa10328bff5c3514536f69457596d4a2646b49"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a1dd1b182fde9f95f1cc28964612fb1b180fdd3ca2cac881c108db29906b2e01"}, - {file = "pydantic_core-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c8e53bae6e58a8ff8e93f9a77440cfe8fc017bb9a8430dc03beb6bdd648572d2"}, - {file = "pydantic_core-2.0.1-cp37-none-win32.whl", hash = "sha256:a7d0de538719feda5cabf19c63cc17345df6a0ab579b95518925d2b25276daaf"}, - {file = "pydantic_core-2.0.1-cp37-none-win_amd64.whl", hash = "sha256:1bb6d1057c054056614aefeced05299d3590acf76768538b34ebec9cbbf26953"}, - {file = "pydantic_core-2.0.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:9ee1c2d0cf5c92faf722ff366814859c764c82b30af7f91b9b1950e15efecb9e"}, - {file = "pydantic_core-2.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:adc2efaf0c45135214dff4d18d4aaf2b692249cb369f921fe0fde3a13cf7ddad"}, - {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8927c166f20e3933cc9a9a68701acc8de22ee54b70d8c4044ad461b043b3cf9b"}, - {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adbfc6c7ddd1cca6efe62a0292cae7cf2d05c9ebb139d0da10b0d44346e253c7"}, - {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_24_armv7l.whl", hash = "sha256:659f22427d653769d1b4c672fd2daf53e639a5a93b0dd6fc0b37ef822a6e77d7"}, - {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:71cf43912edeae476f47d16520e48bddbf9af0ebdd98961c38ca8944f4f22b9d"}, - {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_24_s390x.whl", hash = "sha256:10736490eacc426d681ae6f00f1d8ce01fc77c45086a597e829c3eed127179b1"}, - {file = "pydantic_core-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5f3158cb4cda580f3b063b03257c7f5c2d9e66f9c2a93466c76056f7c4d5a3b7"}, - {file = "pydantic_core-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8ca5a743af642700fc69dc64e0b964dd7499dcabb399e5cc2223fbc9cb33965d"}, - {file = "pydantic_core-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fa5a3d49ddbeaa80bb2a8927b90e9cdd43373616ba0b7b7a74a3ae33b5c9640c"}, - {file = "pydantic_core-2.0.1-cp38-none-win32.whl", hash = "sha256:d6e21da7f7e3935b24bfd17d7c3eefe4c1edca380edaec854a8593796d8d96f1"}, - {file = "pydantic_core-2.0.1-cp38-none-win_amd64.whl", hash = "sha256:0b154abef540a76bb2b7a641b3ae1e05e5c4b08eb9ad6c27a217b3c64ffcda0b"}, - {file = "pydantic_core-2.0.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:aad8b177370002f73f08eafefa3d969d9c4498da6d67d8a43ffdeb4b4e560e1c"}, - {file = "pydantic_core-2.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9cf1ba93657cad863d23ecb09227665c0abe26c131acd24abb5edc6249a36a70"}, - {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79225132aa1fe97a5e947da820b323d63372fb3475d94ff81ca6f91669717a01"}, - {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bd78c4f04794a8e527d32c8ec1a26682b35b5c9347bb6e3cc853ba1a43c72a5"}, - {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_24_armv7l.whl", hash = "sha256:bb2daa4e3d4efbf2e2dedc1a7cea3e48ff12d0c95ab2011e7f731bdc97d16ed0"}, - {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:958964a0ad0cea700b25037b21f5a2da38d19bddaa2f15ce36f51c048a9efe92"}, - {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_24_s390x.whl", hash = "sha256:e0edd3c6762b3ff3fdbd90517a09808e5d67cce86d7c43ec6f5ca3f65bfe7fd9"}, - {file = "pydantic_core-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e76a9b0c2b2fb29a80764e106b1ea35c1b96a4e62e7ce7dde44f5df153fd5b66"}, - {file = "pydantic_core-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:88fc72e60d818924cb3d32948b682bcea0dadd0fd2efae9a4d0b7a55e310908a"}, - {file = "pydantic_core-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c04aa22ded4baf29c3c1ec3b76d5264dd91794b974a737251fdd0827abcc2c78"}, - {file = "pydantic_core-2.0.1-cp39-none-win32.whl", hash = "sha256:4372e8fcb458aad1e155c04e663ff1840f36b859fb1422578372712a78866051"}, - {file = "pydantic_core-2.0.1-cp39-none-win_amd64.whl", hash = "sha256:c5fef2dc7ed589ea83ac5ce526fcb8e8eb0ab79bfa67f958dafbda0a05ab3018"}, - {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e4785a8c5440e410394f88e30c3db862ed05841595311ddc969b3fde377f95ea"}, - {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e90b99b6aa9fd6eee6d6f86921d38252c6e55c319dc6c5e411922d0dc173825"}, - {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:182a0e5ce9382a0a77aab8407ead303b6e310c673a46b18937fa1a90c22ccbc4"}, - {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b83e11a68936f80ee92ef1001bf6b9fedf0602396acc417b16a9c136a9b3b7bd"}, - {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5e4a918eeae2c566fdcad9ee89d8708a59dc5ec3d5083b61a886b19f82f69f5c"}, - {file = "pydantic_core-2.0.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:88b56a4e7480f4f22fa2faefdb0a887d70420d9cd8cb160677e8abe46769e7b0"}, - {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3a85fde791e6567f879b50b59f1740afc55333060d93548d6bbb46bf1b6a1b49"}, - {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef349e4ac794559c1538787a0fbce378a1beb991ef4f7707a6cde3156294259d"}, - {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0f90928ed48b91d93add357fb1e81cef729bffaff3ab88882b76549434b4574"}, - {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3f8fea22690c6c33c4d36d2236732da29da560f815cd9aba1d3b5ab59dcb214"}, - {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbbefd38ef80b37d056592c366a164a37b4e87b12f0aba23c35087d890fb31ba"}, - {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:8945ba48644b45d4e66cc3e56b896e97fb1d7f166dd0ee1eb137bbfdf1285483"}, - {file = "pydantic_core-2.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:1c318bd2bdaa88ec078dc7932e108a9c43caeabc84d2cf545081fb6a99ed1b90"}, - {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:7176ffa02c45d557cceb75f1290a2ddf53da680c6878aae54e69aafb21c52efd"}, - {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:176eb3ec03da4c36da7708d2398139e13d1130b3b3d1af4334a959f46278baa9"}, - {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46bb28295082a22f3c7f5fa5546d669aed7eb43151ec0032e8c352c59f5e36af"}, - {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e4b4c836100e5f07189b0aea8b4afae326f169bfdef91e86fd90a0d3c27f0c75"}, - {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:b56f3758b82f26414a4dccd76f05c768df7bd2735e0ac43f3dfff2f5603d32a9"}, - {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0c8877d9e0bd128f103a1b0f02899aa7d4be1104eef5dc35e2b633042b64a2d1"}, - {file = "pydantic_core-2.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1672c8c36414c56adf704753b2d7e22e7528d7bd21cd357f24edeff76d4fd4ca"}, - {file = "pydantic_core-2.0.1.tar.gz", hash = "sha256:f9fffcb5507bff84a1312d1616406cad157806f105d78bd184d1e6b3b00e6417"}, + {file = "pydantic_core-2.1.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:b4815720c266e832b20e27a7a5f3772bb09fdedb31a9a34bab7b49d98967ef5a"}, + {file = "pydantic_core-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8884a1dbfc5cb8c54b48446ca916d4577c1f4d901126091e4ab25d00194e065f"}, + {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74a33aa69d476773230396396afb8e11908f8dafdcfd422e746770599a3f889d"}, + {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af832edd384755826e494ffdcf1fdda86e4babc42a0b18d342943fb18181040e"}, + {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_24_armv7l.whl", hash = "sha256:017700236ea2e7afbef5d3803559c80bd8720306778ebd49268de7ce9972e83e"}, + {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:c2d00a96fdf26295c6f25eaf9e4a233f353146a73713cd97a5f5dc6090c3aef2"}, + {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_24_s390x.whl", hash = "sha256:2575664f0a559a7b951a518f6f34c23cab7190f34f8220b8c8218c4f403147ee"}, + {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24c3c9180a2d19d640bacc2d00f497a9a1f2abadb2a9ee201b56bb03bc5343bd"}, + {file = "pydantic_core-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:88a56f0f6d020b4d17641f4b4d1f9540a536d4146768d059c430e97bdb485fc1"}, + {file = "pydantic_core-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fa38a76e832743866aed6b715869757074b06357d1a260163ec26d84974245fe"}, + {file = "pydantic_core-2.1.2-cp310-none-win32.whl", hash = "sha256:a772c652603855d7180015849d483a1f539351a263bb9b81bfe85193a33ce124"}, + {file = "pydantic_core-2.1.2-cp310-none-win_amd64.whl", hash = "sha256:b4673d1f29487608d613ebcc5caa99ba15eb58450a7449fb6d800f29d90bebc1"}, + {file = "pydantic_core-2.1.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:76c9c55462740d728b344e3a087775846516c3fee31ec56e2075faa7cfcafcbf"}, + {file = "pydantic_core-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cb854ec52e6e2e05b83d647695f4d913452fdd45a3dfa8233d7dab5967b3908f"}, + {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ac140d54da366672f6b91f9a1e8e2d4e7e72720143353501ae886d3fca03272"}, + {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:818f5cb1b209ab1295087c45717178f4bbbd2bd7eda421f7a119e7b9b736a3cb"}, + {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_24_armv7l.whl", hash = "sha256:db4564aea8b3cb6cf1e5f3fd80f1ced73a255d492396d1bd8abd688795b34d63"}, + {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_24_ppc64le.whl", hash = "sha256:2ca2d2d5ab65fb40dd05259965006edcc62a9d9b30102737c0a6f45bcbd254e8"}, + {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_24_s390x.whl", hash = "sha256:7c7ad8958aadfbcd664078002246796ecd5566b64b22f6af4fd1bbcec6bf8f60"}, + {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:080a7af828388284a68ad7d3d3eac3bcfff6a580292849aff087e7d556ec42d4"}, + {file = "pydantic_core-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bad7029fb2251c1ac7d3acdd607e540d40d137a7d43a5e5acdcfdbd38db3fc0a"}, + {file = "pydantic_core-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1635a37137fafbc6ee0a8c879857e05b30b1aabaa927e653872b71f1501b1502"}, + {file = "pydantic_core-2.1.2-cp311-none-win32.whl", hash = "sha256:eb4301f009a44bb5db5edfe4e51a8175a4112b566baec07f4af8b1f8cb4649a2"}, + {file = "pydantic_core-2.1.2-cp311-none-win_amd64.whl", hash = "sha256:ebf583f4d9b52abd15cc59e5f6eeca7e3e9741c6ea62d8711c00ac3acb067875"}, + {file = "pydantic_core-2.1.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:90b06bb47e60173d24c7cb79670aa8dd6081797290353b9d3c66d3a23e88eb34"}, + {file = "pydantic_core-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e5761ce986ec709897b1b965fad9743f301500434bea3cbab2b6e662571580f"}, + {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b9f8bf1d7008a58fbb6eb334dc6e2f2905400cced8dadb46c4ca28f005a8562"}, + {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a014ee88980013d192a718cbb88e8cea20acd3afad69bc6d15672d05a49cdb6"}, + {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_24_armv7l.whl", hash = "sha256:8125152b03dd91deca5afe5b933a1994b39405adf6be2fe8dce3632319283f85"}, + {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_24_ppc64le.whl", hash = "sha256:dc737506b4a0ba2922a2626fc6d620ce50a46aebd0fe2fbcad1b93bbdd8c7e78"}, + {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_24_s390x.whl", hash = "sha256:bb471ea8650796060afc99909d9b75da583d317e52f660faf64c45f70b3bf1e2"}, + {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1fad38db1744d27061df516e59c5025b09b0a50a337c04e6eebdbddc18951bc"}, + {file = "pydantic_core-2.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:94d368af9e6563de6e7170a74710a2cbace7a1e9c8e507d9e3ac34c7065d7ae3"}, + {file = "pydantic_core-2.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bd95d223de5162811a7b36c73d48eac4fee03b075132f3a1b73c132ce157a60c"}, + {file = "pydantic_core-2.1.2-cp312-none-win32.whl", hash = "sha256:cd62f73830d4715bc643ae39de0bd4fb9c81d6d743530074da91e77a2cccfe67"}, + {file = "pydantic_core-2.1.2-cp312-none-win_amd64.whl", hash = "sha256:51968887d6bd1eaa7fc7759701ea8ccb470c04654beaa8ede6835b0533f206a9"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:7ff6bfe63f447a509ed4d368a7f4ba6a7abc03bc4744fc3fb30f2ffab73f3821"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:4e67f9b9dfda2e42b39459cbf99d319ccb90da151e35cead3521975b2afbf673"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b815a769b019dd96be6571096f246b74f63330547e9b30244c51b4a2eb0277fc"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4aff436c23c68449601b3fba7075b4f37ef8fbb893c8c1ed3ef898f090332b1e"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_24_armv7l.whl", hash = "sha256:2ee3ae58f271851362f6c9b33e4c9f9e866557ec7d8c03dc091e9b5aa5566cec"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:cf92dccca8f66e987f6c4378700447f82b79e86407912ab1ee06b16b82f05120"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_24_s390x.whl", hash = "sha256:4663293a36a851a860b1299c50837914269fca127434911297dd39fea9667a01"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1c917f7a41d9d09b8b024a5d65cf37e5588ccdb6e610d2df565fb7186b1f3b1c"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:06ae67547251135a1b3f8dd465797b13146295a3866bc12ddd73f7512787bb7c"}, + {file = "pydantic_core-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4938b32c09dbcecbeb652327cb4a449b1ef1a1bf6c8fc2c8241aa6b8f6d63b54"}, + {file = "pydantic_core-2.1.2-cp37-none-win32.whl", hash = "sha256:682ff9228c838018c47dfa89b3d84cca45f88cacde28807ab8296ec221862af4"}, + {file = "pydantic_core-2.1.2-cp37-none-win_amd64.whl", hash = "sha256:6e3bcb4a9bc209a61ea2aceb7433ce2ece32c7e670b0c06848bf870c9b3e7d87"}, + {file = "pydantic_core-2.1.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:2278ca0b0dfbcfb1e12fa58570916dc260dc72bee5e6e342debf5329d8204688"}, + {file = "pydantic_core-2.1.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:87cff210af3258ca0c829e3ebc849d7981bfde23a99d6cb7a3c17a163b3dbad2"}, + {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7684b5fb906b37e940c5df3f57118f32e033af5e4770e5ae2ae56fbd2fe1a30a"}, + {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3747a4178139ebf3f19541285b2eb7c886890ca4eb7eec851578c02a13cc1385"}, + {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_24_armv7l.whl", hash = "sha256:e17056390068afd4583d88dcf4d4495764e4e2c7d756464468e0d21abcb8931e"}, + {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:c720e55cef609d50418bdfdfb5c44a76efc020ae7455505788d0113c54c7df55"}, + {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_24_s390x.whl", hash = "sha256:b59a64c367f350873c40a126ffe9184d903d2126c701380b4b55753484df5948"}, + {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68a2a767953c707d9575dcf14d8edee7930527ee0141a8bb612c22d1f1059f9a"}, + {file = "pydantic_core-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4ae46769d9a7138d58cd190441cac14ce954010a0081f28462ed916c8e55a4f"}, + {file = "pydantic_core-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc909f62325a631e1401dd07dfc386986dbcac15f98c9ff2145d930678a9d25a"}, + {file = "pydantic_core-2.1.2-cp38-none-win32.whl", hash = "sha256:b4038869ba1d8fa33863b4b1286ab07e6075a641ae269b865f94d7e10b3e800e"}, + {file = "pydantic_core-2.1.2-cp38-none-win_amd64.whl", hash = "sha256:5948af62f323252d56acaec8ebfca5f15933f6b72f8dbe3bf21ee97b2d10e3f0"}, + {file = "pydantic_core-2.1.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:8e6ce261ccb9a986953c4dce070327e4954f9dd4cd214746dfc70efbc713b6a1"}, + {file = "pydantic_core-2.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d35d634d9d1ed280c87bc2a7a6217b8787eedc86f368fc2fa1c0c8c78f7d3c93"}, + {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be2e2812a43205728a06c9d0fd090432cd76a9bb5bff2bfcfdf8b0e27d51851"}, + {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0eb54b11cd4fe0c6404611eef77086ade03eb1457e92910bbb4f3479efa3f79"}, + {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_24_armv7l.whl", hash = "sha256:087ddbb754575618a8832ee4ab52fe7eb332f502e2a56088b53dbeb5c4efdf9f"}, + {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:b74906e01c7fc938ac889588ef438de812989817095c3c4904721f647d64a4d1"}, + {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_24_s390x.whl", hash = "sha256:60b7239206a2f61ad89c7518adfacb3ccd6662eaa07c5e437317aea2615a1f18"}, + {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:be3419204952bbe9b72b90008977379c52f99ae1c6e640488de4be783c345d71"}, + {file = "pydantic_core-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:804cf8f6a859620f8eb754c02f7770f61c3e9c519f8338c331d555b3d6976e3c"}, + {file = "pydantic_core-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cbba32fb14e199d0493c6b9c44870dab0a9c37af9f0f729068459d1849279ffd"}, + {file = "pydantic_core-2.1.2-cp39-none-win32.whl", hash = "sha256:6bf00f56a4468f5b03dadb672a5f1d24aea303d4ccffe8a0f548c9e36017edd3"}, + {file = "pydantic_core-2.1.2-cp39-none-win_amd64.whl", hash = "sha256:ac462a28218ea7d592c7ad51b517558f4ac6565a4e53db7a4811eeaf9c9660b0"}, + {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:047e782b9918f35ef534ced36f1fd2064f5581229b7a15e4d3177387a6b53134"}, + {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c0213891898fa5b404cf3edf4797e3ac7819a0708ea5473fc6432a2aa27c189"}, + {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0f481aaf0119f77b200e5a5e2799b3e14c015a317eaa948f42263908735cc9f"}, + {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15eb4cb543ed36f6a4f16e3bee7aa7ed1c3757be95a3f3bbb2b82b9887131e0f"}, + {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:ef71e73a81a4cd7e87c93e8ff0170140fd93ba33b0f61e83da3f55f6e0a84fb4"}, + {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:840238c845b0f80777151fef0003088ab91c6f7b3467edaff4932b425c4e3c3f"}, + {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7648e48ba263ca0a8a2dc55a60a219c9133fb101ba52c89a14a29fb3d4322ca3"}, + {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:8eb4e2b71562375609c66a79f89acd4fe95c5cba23473d04952c8b14b6f908f5"}, + {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056afea59651c4e47ec6dadbb77ccae4742c059a3d12bc1c0e393d189d2970d"}, + {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46cd323371aa7e4053010ccdb94063a4273aa9e5dbe97f8a1147faa769de8d8d"}, + {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa39499625239da4ec960cf4fc66b023929b24cc77fb8520289cfdb3c1986428"}, + {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f5de2d4167fd4bc5ad205fb7297e25867b8e335ca08d64ed7a561d2955a2c32d"}, + {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:9a5fba9168fc27805553760fa8198db46eef83bf52b4e87ebbe1333b823d0e70"}, + {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e68a404fad8493989d6f07b7b9e066f1d2524d7cb64db2d4e9a84c920032c67f"}, + {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:1a5c4475510d1a9cc1458a26cfc21442223e52ce9adb640775c38739315d03c7"}, + {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0681472245ef182554208a25d16884c84f1c5a69f14e6169b88932e5da739a1c"}, + {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7fd334b40c5e13a97becfcaba314de0dcc6f7fe21ec8f992139bcc64700e9dc"}, + {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7345b1741bf66a9d8ed0ec291c3eabd534444e139e1ea6db5742ac9fd3be2530"}, + {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0855cf8b760fb40f97f0226cb527c8a94a2ab9d8179628beae20d6939aaeacb0"}, + {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:d281a10837d98db997c0247f45d138522c91ce30cf3ae7a6afdb5e709707d360"}, + {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:82e09f27edab289187dd924d4d93f2a35f21aa969699b2504aa643da7fbfeff9"}, + {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:aa54902fa51f7d921ba80923cf1c7ff3dce796a7903300bd8824deb90e357744"}, + {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b9a5fc4058d64c9c826684dcdb43891c1b474a4a88dcf8dfc3e1fb5889496f8"}, + {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:817681d111cb65f07d46496eafec815f48e1aff37713b73135a0a9eb4d3610ab"}, + {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b5d37aedea5963f2097bddbcdb255483191646a52d40d8bb66d61c190fcac91"}, + {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f2de65752fff248319bcd3b29da24e205fa505607539fcd4acc4037355175b63"}, + {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:a8b9c2cc4c5f8169b943d24be4bd1548fe81c016d704126e3a3124a2fc164885"}, + {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f7bcdf70c8b6e70be11c78d3c00b80a24cccfb408128f23e91ec3019bed1ecc1"}, + {file = "pydantic_core-2.1.2.tar.gz", hash = "sha256:d2c790f0d928b672484eac4f5696dd0b78f3d6d148a641ea196eb49c0875e30a"}, ] [package.dependencies] -typing-extensions = [ - {version = ">=4.6.0", markers = "platform_python_implementation != \"PyPy\""}, - {version = ">=4.6.0,<4.7.0", markers = "platform_python_implementation == \"PyPy\""}, -] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydantic-extra-types" @@ -1096,13 +1113,13 @@ plugins = ["importlib-metadata"] [[package]] name = "pyproject-api" -version = "1.5.2" +version = "1.5.3" description = "API to interact with the python pyproject.toml based projects" optional = false python-versions = ">=3.7" files = [ - {file = "pyproject_api-1.5.2-py3-none-any.whl", hash = "sha256:9cffcbfb64190f207444d7579d315f3278f2c04ba46d685fad93197b5326d348"}, - {file = "pyproject_api-1.5.2.tar.gz", hash = "sha256:999f58fa3c92b23ebd31a6bad5d1f87d456744d75e05391be7f5c729015d3d91"}, + {file = "pyproject_api-1.5.3-py3-none-any.whl", hash = "sha256:14cf09828670c7b08842249c1f28c8ee6581b872e893f81b62d5465bec41502f"}, + {file = "pyproject_api-1.5.3.tar.gz", hash = "sha256:ffb5b2d7cad43f5b2688ab490de7c4d3f6f15e0b819cb588c4b771567c9729eb"}, ] [package.dependencies] @@ -1230,13 +1247,13 @@ files = [ [[package]] name = "referencing" -version = "0.29.0" +version = "0.29.1" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.29.0-py3-none-any.whl", hash = "sha256:bddd26f8fbb64d153334cca7bc20305c72295e287d84bbf5756afa50efdeb6ae"}, - {file = "referencing-0.29.0.tar.gz", hash = "sha256:54b64ae36b91827f9f50d05a5af27570a5ca9ba6a1be49809215419d5ab32253"}, + {file = "referencing-0.29.1-py3-none-any.whl", hash = "sha256:d3c8f323ee1480095da44d55917cfb8278d73d6b4d5f677e3e40eb21314ac67f"}, + {file = "referencing-0.29.1.tar.gz", hash = "sha256:90cb53782d550ba28d2166ef3f55731f38397def8832baac5d45235f1995e35e"}, ] [package.dependencies] @@ -1280,45 +1297,119 @@ six = "*" [[package]] name = "rpds-py" -version = "0.7.1" +version = "0.8.10" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.7.1-cp38-abi3-macosx_10_7_x86_64.whl", hash = "sha256:858604fe5d7eb50e91b1096bcbcb421f2cb3101454244afda92b4d768d0cb4ce"}, - {file = "rpds_py-0.7.1-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:e16c02923726307d960e908b61d4d833939f322877d2957c001fca23b644914e"}, - {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:311a57cc972481bd220af28cf4309141c680a356b2359f163daac030d0c2318d"}, - {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b6db70c2ab847229fa9cff3a5eb641c33ab3f981ee8b99d326a7deb8989e4ce"}, - {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34007442d36980c4aab3f4044c1fd05a736c8ae09d47b8a42112deab5d6b5a10"}, - {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d1d4078d60ca47f0eb6bdddbf79f00a72d41ee3148aba1dcf9b980f73a8d26e"}, - {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:025b8101dbf39d77cf41ac3c737e4c713e0b2728a516443b382e66b9d492ff98"}, - {file = "rpds_py-0.7.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cc6ff891c3814d8cd92549cb385353a922518d433aaf1d2d0d99e98e59915370"}, - {file = "rpds_py-0.7.1-cp38-abi3-win32.whl", hash = "sha256:cbdc8ab6108b8bb260ee68fb2de83fb1c481d3a77355156049a8a49ea47eacf6"}, - {file = "rpds_py-0.7.1-cp38-abi3-win_amd64.whl", hash = "sha256:5eda3aba0cd291de9d4bb138db45814bac24bc4c07e0f38b0544374b6104c488"}, - {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:038249d2bbaf91aa65c4108a40ee076f657654261b1a246ab99726710bfb77de"}, - {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2a5c672b1cd382973bf414518ddc9d743d06bcee751fa65256d84ba412192b0b"}, - {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:453e62d679d8de32c5e00ba27f8c8c45a456e5d6db6fa6f67fdd3e12f1658833"}, - {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0bcb162f5549408125ec986bfed1a66f2036ac2910d3fb0a6afda0f97bc6ea15"}, - {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b54a47e670093b8bf7d1a0222d0af26dac19314a0e79ac478e447357396a2d"}, - {file = "rpds_py-0.7.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f53f65cf56bb60355681431d04bc04dbe709452dd85eebf537035dc145bd36c9"}, - {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e8f2cedc65198248a14d716125016fd0816f63f216a82c2209a0686d5447cf"}, - {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8391420714e84ae9f4c6d4e4d52eb4209ca8d66abfbe4b2ba4892221be1c6f5"}, - {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c7bd3a381c4a5fe7e0fc4dff554bd1ce2b0be12ba0193c176c291b7dc1e8bea0"}, - {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c38d17af73aa03686d701686628e37c114a459650233c0d5f0492dad3a76e3e0"}, - {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:014828cd68b4cdee84ab66adaf5bfe1f137656a7a588c31fdca04ba0768ef62d"}, - {file = "rpds_py-0.7.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33a2a15b641bc17bc6574f9600976374a085ff81ac8dddd4bde6c451e9e9e58d"}, - {file = "rpds_py-0.7.1.tar.gz", hash = "sha256:d940b5644f14e49b1c6e7902b9ec8a0c7584109fbf380fa18115831a641927c8"}, + {file = "rpds_py-0.8.10-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:93d06cccae15b3836247319eee7b6f1fdcd6c10dabb4e6d350d27bd0bdca2711"}, + {file = "rpds_py-0.8.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3816a890a6a9e9f1de250afa12ca71c9a7a62f2b715a29af6aaee3aea112c181"}, + {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7c6304b894546b5a6bdc0fe15761fa53fe87d28527a7142dae8de3c663853e1"}, + {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad3bfb44c8840fb4be719dc58e229f435e227fbfbe133dc33f34981ff622a8f8"}, + {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14f1c356712f66653b777ecd8819804781b23dbbac4eade4366b94944c9e78ad"}, + {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:82bb361cae4d0a627006dadd69dc2f36b7ad5dc1367af9d02e296ec565248b5b"}, + {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2e3c4f2a8e3da47f850d7ea0d7d56720f0f091d66add889056098c4b2fd576c"}, + {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15a90d0ac11b4499171067ae40a220d1ca3cb685ec0acc356d8f3800e07e4cb8"}, + {file = "rpds_py-0.8.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:70bb9c8004b97b4ef7ae56a2aa56dfaa74734a0987c78e7e85f00004ab9bf2d0"}, + {file = "rpds_py-0.8.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d64f9f88d5203274a002b54442cafc9c7a1abff2a238f3e767b70aadf919b451"}, + {file = "rpds_py-0.8.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ccbbd276642788c4376fbe8d4e6c50f0fb4972ce09ecb051509062915891cbf0"}, + {file = "rpds_py-0.8.10-cp310-none-win32.whl", hash = "sha256:fafc0049add8043ad07ab5382ee80d80ed7e3699847f26c9a5cf4d3714d96a84"}, + {file = "rpds_py-0.8.10-cp310-none-win_amd64.whl", hash = "sha256:915031002c86a5add7c6fd4beb601b2415e8a1c956590a5f91d825858e92fe6e"}, + {file = "rpds_py-0.8.10-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:84eb541a44f7a18f07a6bfc48b95240739e93defe1fdfb4f2a295f37837945d7"}, + {file = "rpds_py-0.8.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f59996d0550894affaad8743e97b9b9c98f638b221fac12909210ec3d9294786"}, + {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9adb5664b78fcfcd830000416c8cc69853ef43cb084d645b3f1f0296edd9bae"}, + {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f96f3f98fbff7af29e9edf9a6584f3c1382e7788783d07ba3721790625caa43e"}, + {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:376b8de737401050bd12810003d207e824380be58810c031f10ec563ff6aef3d"}, + {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d1c2bc319428d50b3e0fa6b673ab8cc7fa2755a92898db3a594cbc4eeb6d1f7"}, + {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73a1e48430f418f0ac3dfd87860e4cc0d33ad6c0f589099a298cb53724db1169"}, + {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134ec8f14ca7dbc6d9ae34dac632cdd60939fe3734b5d287a69683c037c51acb"}, + {file = "rpds_py-0.8.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4b519bac7c09444dd85280fd60f28c6dde4389c88dddf4279ba9b630aca3bbbe"}, + {file = "rpds_py-0.8.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9cd57981d9fab04fc74438d82460f057a2419974d69a96b06a440822d693b3c0"}, + {file = "rpds_py-0.8.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:69d089c026f6a8b9d64a06ff67dc3be196707b699d7f6ca930c25f00cf5e30d8"}, + {file = "rpds_py-0.8.10-cp311-none-win32.whl", hash = "sha256:220bdcad2d2936f674650d304e20ac480a3ce88a40fe56cd084b5780f1d104d9"}, + {file = "rpds_py-0.8.10-cp311-none-win_amd64.whl", hash = "sha256:6c6a0225b8501d881b32ebf3f5807a08ad3685b5eb5f0a6bfffd3a6e039b2055"}, + {file = "rpds_py-0.8.10-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:e3d0cd3dff0e7638a7b5390f3a53057c4e347f4ef122ee84ed93fc2fb7ea4aa2"}, + {file = "rpds_py-0.8.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d77dff3a5aa5eedcc3da0ebd10ff8e4969bc9541aa3333a8d41715b429e99f47"}, + {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41c89a366eae49ad9e65ed443a8f94aee762931a1e3723749d72aeac80f5ef2f"}, + {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3793c21494bad1373da517001d0849eea322e9a049a0e4789e50d8d1329df8e7"}, + {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:805a5f3f05d186c5d50de2e26f765ba7896d0cc1ac5b14ffc36fae36df5d2f10"}, + {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b01b39ad5411563031ea3977bbbc7324d82b088e802339e6296f082f78f6115c"}, + {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3f1e860be21f3e83011116a65e7310486300e08d9a3028e73e8d13bb6c77292"}, + {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a13c8e56c46474cd5958d525ce6a9996727a83d9335684e41f5192c83deb6c58"}, + {file = "rpds_py-0.8.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:93d99f957a300d7a4ced41615c45aeb0343bb8f067c42b770b505de67a132346"}, + {file = "rpds_py-0.8.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:148b0b38d719c0760e31ce9285a9872972bdd7774969a4154f40c980e5beaca7"}, + {file = "rpds_py-0.8.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3cc5e5b5514796f45f03a568981971b12a3570f3de2e76114f7dc18d4b60a3c4"}, + {file = "rpds_py-0.8.10-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e8e24b210a4deb5a7744971f8f77393005bae7f873568e37dfd9effe808be7f7"}, + {file = "rpds_py-0.8.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b41941583adce4242af003d2a8337b066ba6148ca435f295f31ac6d9e4ea2722"}, + {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c490204e16bca4f835dba8467869fe7295cdeaa096e4c5a7af97f3454a97991"}, + {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee45cd1d84beed6cbebc839fd85c2e70a3a1325c8cfd16b62c96e2ffb565eca"}, + {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a8ca409f1252e1220bf09c57290b76cae2f14723746215a1e0506472ebd7bdf"}, + {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96b293c0498c70162effb13100624c5863797d99df75f2f647438bd10cbf73e4"}, + {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4627520a02fccbd324b33c7a83e5d7906ec746e1083a9ac93c41ac7d15548c7"}, + {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e39d7ab0c18ac99955b36cd19f43926450baba21e3250f053e0704d6ffd76873"}, + {file = "rpds_py-0.8.10-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ba9f1d1ebe4b63801977cec7401f2d41e888128ae40b5441270d43140efcad52"}, + {file = "rpds_py-0.8.10-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:802f42200d8caf7f25bbb2a6464cbd83e69d600151b7e3b49f49a47fa56b0a38"}, + {file = "rpds_py-0.8.10-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d19db6ba816e7f59fc806c690918da80a7d186f00247048cd833acdab9b4847b"}, + {file = "rpds_py-0.8.10-cp38-none-win32.whl", hash = "sha256:7947e6e2c2ad68b1c12ee797d15e5f8d0db36331200b0346871492784083b0c6"}, + {file = "rpds_py-0.8.10-cp38-none-win_amd64.whl", hash = "sha256:fa326b3505d5784436d9433b7980171ab2375535d93dd63fbcd20af2b5ca1bb6"}, + {file = "rpds_py-0.8.10-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:7b38a9ac96eeb6613e7f312cd0014de64c3f07000e8bf0004ad6ec153bac46f8"}, + {file = "rpds_py-0.8.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c4d42e83ddbf3445e6514f0aff96dca511421ed0392d9977d3990d9f1ba6753c"}, + {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b21575031478609db6dbd1f0465e739fe0e7f424a8e7e87610a6c7f68b4eb16"}, + {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:574868858a7ff6011192c023a5289158ed20e3f3b94b54f97210a773f2f22921"}, + {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae40f4a70a1f40939d66ecbaf8e7edc144fded190c4a45898a8cfe19d8fc85ea"}, + {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37f7ee4dc86db7af3bac6d2a2cedbecb8e57ce4ed081f6464510e537589f8b1e"}, + {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:695f642a3a5dbd4ad2ffbbacf784716ecd87f1b7a460843b9ddf965ccaeafff4"}, + {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f43ab4cb04bde6109eb2555528a64dfd8a265cc6a9920a67dcbde13ef53a46c8"}, + {file = "rpds_py-0.8.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a11ab0d97be374efd04f640c04fe5c2d3dabc6dfb998954ea946ee3aec97056d"}, + {file = "rpds_py-0.8.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:92cf5b3ee60eef41f41e1a2cabca466846fb22f37fc580ffbcb934d1bcab225a"}, + {file = "rpds_py-0.8.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ceaac0c603bf5ac2f505a78b2dcab78d3e6b706be6596c8364b64cc613d208d2"}, + {file = "rpds_py-0.8.10-cp39-none-win32.whl", hash = "sha256:dd4f16e57c12c0ae17606c53d1b57d8d1c8792efe3f065a37cb3341340599d49"}, + {file = "rpds_py-0.8.10-cp39-none-win_amd64.whl", hash = "sha256:c03a435d26c3999c2a8642cecad5d1c4d10c961817536af52035f6f4ee2f5dd0"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0da53292edafecba5e1d8c1218f99babf2ed0bf1c791d83c0ab5c29b57223068"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d20a8ed227683401cc508e7be58cba90cc97f784ea8b039c8cd01111e6043e0"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97cab733d303252f7c2f7052bf021a3469d764fc2b65e6dbef5af3cbf89d4892"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c398fda6df361a30935ab4c4bccb7f7a3daef2964ca237f607c90e9f3fdf66f"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2eb4b08c45f8f8d8254cdbfacd3fc5d6b415d64487fb30d7380b0d0569837bf1"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7dfb1cbb895810fa2b892b68153c17716c6abaa22c7dc2b2f6dcf3364932a1c"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89c92b74e8bf6f53a6f4995fd52f4bd510c12f103ee62c99e22bc9e05d45583c"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e9c0683cb35a9b5881b41bc01d5568ffc667910d9dbc632a1fba4e7d59e98773"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0eeb2731708207d0fe2619afe6c4dc8cb9798f7de052da891de5f19c0006c315"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:7495010b658ec5b52835f21d8c8b1a7e52e194c50f095d4223c0b96c3da704b1"}, + {file = "rpds_py-0.8.10-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c72ebc22e70e04126158c46ba56b85372bc4d54d00d296be060b0db1671638a4"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:2cd3045e7f6375dda64ed7db1c5136826facb0159ea982f77d9cf6125025bd34"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:2418cf17d653d24ffb8b75e81f9f60b7ba1b009a23298a433a4720b2a0a17017"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a2edf8173ac0c7a19da21bc68818be1321998528b5e3f748d6ee90c0ba2a1fd"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f29b8c55fd3a2bc48e485e37c4e2df3317f43b5cc6c4b6631c33726f52ffbb3"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a7d20c1cf8d7b3960c5072c265ec47b3f72a0c608a9a6ee0103189b4f28d531"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:521fc8861a86ae54359edf53a15a05fabc10593cea7b3357574132f8427a5e5a"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5c191713e98e7c28800233f039a32a42c1a4f9a001a8a0f2448b07391881036"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:083df0fafe199371206111583c686c985dddaf95ab3ee8e7b24f1fda54515d09"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:ed41f3f49507936a6fe7003985ea2574daccfef999775525d79eb67344e23767"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:2614c2732bf45de5c7f9e9e54e18bc78693fa2f635ae58d2895b7965e470378c"}, + {file = "rpds_py-0.8.10-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c60528671d9d467009a6ec284582179f6b88651e83367d0ab54cb739021cd7de"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:ee744fca8d1ea822480a2a4e7c5f2e1950745477143668f0b523769426060f29"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a38b9f526d0d6cbdaa37808c400e3d9f9473ac4ff64d33d9163fd05d243dbd9b"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60e0e86e870350e03b3e25f9b1dd2c6cc72d2b5f24e070249418320a6f9097b7"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f53f55a8852f0e49b0fc76f2412045d6ad9d5772251dea8f55ea45021616e7d5"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c493365d3fad241d52f096e4995475a60a80f4eba4d3ff89b713bc65c2ca9615"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:300eb606e6b94a7a26f11c8cc8ee59e295c6649bd927f91e1dbd37a4c89430b6"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a665f6f1a87614d1c3039baf44109094926dedf785e346d8b0a728e9cabd27a"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:927d784648211447201d4c6f1babddb7971abad922b32257ab74de2f2750fad0"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:c200b30dd573afa83847bed7e3041aa36a8145221bf0cfdfaa62d974d720805c"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:08166467258fd0240a1256fce272f689f2360227ee41c72aeea103e9e4f63d2b"}, + {file = "rpds_py-0.8.10-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:996cc95830de9bc22b183661d95559ec6b3cd900ad7bc9154c4cbf5be0c9b734"}, + {file = "rpds_py-0.8.10.tar.gz", hash = "sha256:13e643ce8ad502a0263397362fb887594b49cf84bf518d6038c16f235f2bcea4"}, ] [[package]] name = "setuptools" -version = "67.8.0" +version = "68.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, - {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, + {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, + {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, ] [package.extras] @@ -1512,13 +1603,13 @@ files = [ [[package]] name = "tox" -version = "4.6.3" +version = "4.6.4" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.7" files = [ - {file = "tox-4.6.3-py3-none-any.whl", hash = "sha256:2946a0bb38924c3a9f9575c7fb4ca1f4c11a7c69c61592f176778892155cb50c"}, - {file = "tox-4.6.3.tar.gz", hash = "sha256:9e2c5091a117d03b583c57c4c40aecd068099c17d40520e7b165e85c19334534"}, + {file = "tox-4.6.4-py3-none-any.whl", hash = "sha256:1b8f8ae08d6a5475cad9d508236c51ea060620126fd7c3c513d0f5c7f29cc776"}, + {file = "tox-4.6.4.tar.gz", hash = "sha256:5e2ad8845764706170d3dcaac171704513cc8a725655219acb62fe4380bdadda"}, ] [package.dependencies] @@ -1527,25 +1618,25 @@ chardet = ">=5.1" colorama = ">=0.4.6" filelock = ">=3.12.2" packaging = ">=23.1" -platformdirs = ">=3.5.3" -pluggy = ">=1" +platformdirs = ">=3.8" +pluggy = ">=1.2" pyproject-api = ">=1.5.2" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} virtualenv = ">=20.23.1" [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.23.2,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.6)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17.1)", "psutil (>=5.9.5)", "pytest (>=7.3.2)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.10)", "wheel (>=0.40)"] +docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.23.3,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.6)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17.1)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.10)", "wheel (>=0.40)"] [[package]] name = "typing-extensions" -version = "4.6.3" +version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, - {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, ] [[package]] @@ -1587,18 +1678,18 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "zipp" -version = "3.15.0" +version = "3.16.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, - {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, + {file = "zipp-3.16.0-py3-none-any.whl", hash = "sha256:5dadc3ad0a1f825fe42ce1bce0f2fc5a13af2e6b2d386af5b0ff295bc0a287d3"}, + {file = "zipp-3.16.0.tar.gz", hash = "sha256:1876cb065531855bbe83b6c489dcf69ecc28f1068d8e95959fe8bbc77774c941"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [extras] docs = [] @@ -1606,4 +1697,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "99daf714a6112b4d577e14721611eadd6f9347c02ee57730e535a89eabb53831" +content-hash = "1a29579ab852a0ad16ef1527add339b24736e3a56e24337f769eb0f6483290d4" diff --git a/pyproject.toml b/pyproject.toml index 90fe9c4..eedba1a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,11 +51,11 @@ include = [ ] [tool.poetry.dependencies] -jsonschema = {version = "^4.18.0a1", allow-prereleases = true} -openapi-schema-validator = {version = "^0.6.0a1", allow-prereleases = true} +jsonschema = "^4.18.0" +openapi-schema-validator = "^0.6.0" python = "^3.8.0" importlib-resources = {version = "^5.8.0", python = "<3.9" } -jsonschema-spec = "^0.2.2" +jsonschema-spec = "^0.2.3" lazy-object-proxy = "^1.7.1" [tool.poetry.extras] From 99e98876dc22c19f4929510c4470a9de05dba26f Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 9 Jul 2023 20:45:54 +0100 Subject: [PATCH 202/371] Update docs with base_uri examples --- README.rst | 2 +- docs/index.rst | 2 +- docs/python.rst | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index adce3a4..10f6eb5 100644 --- a/README.rst +++ b/README.rst @@ -88,7 +88,7 @@ Python package from openapi_spec_validator import validate_spec from openapi_spec_validator.readers import read_from_filename - spec_dict, spec_url = read_from_filename('openapi.yaml') + spec_dict, base_uri = read_from_filename('openapi.yaml') # If no exception is raised by validate_spec(), the spec is valid. validate_spec(spec_dict) diff --git a/docs/index.rst b/docs/index.rst index ca43e04..83ea8f7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -78,7 +78,7 @@ Usage from openapi_spec_validator import validate_spec from openapi_spec_validator.readers import read_from_filename - spec_dict, spec_url = read_from_filename('openapi.yaml') + spec_dict, base_uri = read_from_filename('openapi.yaml') # If no exception is raised by validate_spec(), the spec is valid. validate_spec(spec_dict) diff --git a/docs/python.rst b/docs/python.rst index aa22442..bb13a26 100644 --- a/docs/python.rst +++ b/docs/python.rst @@ -8,7 +8,7 @@ By default, OpenAPI spec version is detected. To validate spec: from openapi_spec_validator import validate_spec from openapi_spec_validator.readers import read_from_filename - spec_dict, spec_url = read_from_filename('openapi.yaml') + spec_dict, base_uri = read_from_filename('openapi.yaml') # If no exception is raised by validate_spec(), the spec is valid. validate_spec(spec_dict) @@ -19,11 +19,11 @@ By default, OpenAPI spec version is detected. To validate spec: ... OpenAPIValidationError: 'info' is a required property -Add ``spec_url`` to validate spec with relative files: +Add ``base_uri`` to validate spec with relative files: .. code:: python - validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml') + validate_spec(spec_dict, base_uri='file:///path/to/spec/openapi.yaml') You can also validate spec from url: From dfe7203f1f1aee4b3cef92995a17dd899d531604 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 10 Jul 2023 08:56:46 +0100 Subject: [PATCH 203/371] Version 0.6.0 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 859c620..899cbf6 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.6.0a2 +current_version = 0.6.0 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index ad0eb9c..1a02571 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0a2 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0 FROM python:3.11.4-alpine as builder diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 730b380..105a2b1 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -8,7 +8,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.6.0a2" +__version__ = "0.6.0" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index eedba1a..b7ed8b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.6.0a2" +version = "0.6.0" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 74787ea52f5812dd5e72f10cad7338343a604db5 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 10 Jul 2023 09:18:01 +0100 Subject: [PATCH 204/371] Update github actions --- .github/workflows/build-docs.yml | 8 ++++---- .github/workflows/docker-publish.yml | 27 ++++++++++++++++----------- .github/workflows/python-publish.yml | 4 ++-- .github/workflows/python-test.yml | 8 ++++---- 4 files changed, 26 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index e397d54..1ef14a1 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -9,10 +9,10 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python 3.9 - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: 3.9 @@ -27,7 +27,7 @@ jobs: run: poetry config virtualenvs.in-project true - name: Set up cache - uses: actions/cache@v2 + uses: actions/cache@v3 id: cache with: path: .venv @@ -44,7 +44,7 @@ jobs: run: | poetry run python -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs docs/_build/html -n -W - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 name: Upload docs as artifact with: name: docs-html diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index f827f76..9e2428d 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -13,29 +13,34 @@ jobs: docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - name: Docker meta - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 + id: meta + uses: uses: docker/metadata-action@v4 with: images: | p1c2u/openapi-spec-validator - tag-semver: | - {{version}} + tags: | + type=semver,pattern={{version}} + - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v4 with: context: . push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index afb77e7..f60fc56 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -13,10 +13,10 @@ jobs: publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: '3.x' diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 76eca5f..5c5c603 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -18,10 +18,10 @@ jobs: os: [windows-latest, ubuntu-latest] fail-fast: false steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} @@ -36,7 +36,7 @@ jobs: run: poetry config virtualenvs.in-project true - name: Set up cache - uses: actions/cache@v2 + uses: actions/cache@v3 id: cache with: path: .venv @@ -62,4 +62,4 @@ jobs: run: poetry run deptry . - name: Upload coverage - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v3 From 0dcfaf26f9959d998468f1a3a7b74284ce61e8f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 12:41:38 +0000 Subject: [PATCH 205/371] Bump flynt from 0.78 to 1.0.0 Bumps [flynt](https://github.com/ikamensh/flynt) from 0.78 to 1.0.0. - [Changelog](https://github.com/ikamensh/flynt/blob/master/CHANGELOG.md) - [Commits](https://github.com/ikamensh/flynt/compare/0.78...1.0.0) --- updated-dependencies: - dependency-name: flynt dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3724352..be7b4fb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -443,13 +443,13 @@ pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "flynt" -version = "0.78" +version = "1.0.0" description = "CLI tool to convert a python project's %-formatted strings to f-strings." optional = false python-versions = ">=3.7" files = [ - {file = "flynt-0.78-py3-none-any.whl", hash = "sha256:3a4cf278518f7dec3af52c94b5e7c395f623186503a684b2ba28705522871e74"}, - {file = "flynt-0.78.tar.gz", hash = "sha256:15082167a538ea56b6ce4ca6874c22c739710759832dda78d8f43b6079b7e646"}, + {file = "flynt-1.0.0-py3-none-any.whl", hash = "sha256:8975913426a096750fb427701ed59f2f381fac7aa0afc9b6eff433a651d1f5d6"}, + {file = "flynt-1.0.0.tar.gz", hash = "sha256:38fd2ff64acf67c58a09ec17c4ffdf673075fad5f3249e7f7221cb3ddf42cc34"}, ] [package.dependencies] @@ -1697,4 +1697,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "1a29579ab852a0ad16ef1527add339b24736e3a56e24337f769eb0f6483290d4" +content-hash = "5289eb583fbed8c18c949df966b448a659960da95681da13f6830a4bb7376cc2" diff --git a/pyproject.toml b/pyproject.toml index b7ed8b3..d7cdbb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ tox = "*" mypy = "^1.4" isort = "^5.11.5" black = "^23.3.0" -flynt = "^0.78" +flynt = "^1.0" deptry = "^0.12.0" [tool.poetry.scripts] From 57a968ac306bcd03abedaba7f55413fca6ca1db5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:01:31 +0000 Subject: [PATCH 206/371] Bump importlib-resources from 5.13.0 to 6.0.0 Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.13.0 to 6.0.0. - [Release notes](https://github.com/python/importlib_resources/releases) - [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst) - [Commits](https://github.com/python/importlib_resources/compare/v5.13.0...v6.0.0) --- updated-dependencies: - dependency-name: importlib-resources dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index be7b4fb..454f361 100644 --- a/poetry.lock +++ b/poetry.lock @@ -516,13 +516,13 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "5.13.0" +version = "6.0.0" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-5.13.0-py3-none-any.whl", hash = "sha256:9f7bd0c97b79972a6cce36a366356d16d5e13b09679c11a58f1014bfdf8e64b2"}, - {file = "importlib_resources-5.13.0.tar.gz", hash = "sha256:82d5c6cca930697dbbd86c93333bb2c2e72861d4789a11c2662b933e5ad2b528"}, + {file = "importlib_resources-6.0.0-py3-none-any.whl", hash = "sha256:d952faee11004c045f785bb5636e8f885bed30dc3c940d5d42798a2a4541c185"}, + {file = "importlib_resources-6.0.0.tar.gz", hash = "sha256:4cf94875a8368bd89531a756df9a9ebe1f150e0f885030b461237bc7f2d905f2"}, ] [package.dependencies] @@ -1697,4 +1697,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "5289eb583fbed8c18c949df966b448a659960da95681da13f6830a4bb7376cc2" +content-hash = "019e5f3dabd3bf4943ce30e04e9a008c018e838e91cef515b6ca50b7474bc141" diff --git a/pyproject.toml b/pyproject.toml index d7cdbb9..9829ba0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,7 +54,7 @@ include = [ jsonschema = "^4.18.0" openapi-schema-validator = "^0.6.0" python = "^3.8.0" -importlib-resources = {version = "^5.8.0", python = "<3.9" } +importlib-resources = {version = ">=5.8,<7.0", python = "<3.9" } jsonschema-spec = "^0.2.3" lazy-object-proxy = "^1.7.1" From 718581c259f89b52483cbcf6a9107e25d9fe9751 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 15 Jul 2023 09:32:42 +0100 Subject: [PATCH 207/371] pre-commit hook doc update --- README.rst | 15 ++++++++++++++- docs/index.rst | 14 +++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 10f6eb5..981e367 100644 --- a/README.rst +++ b/README.rst @@ -20,7 +20,7 @@ OpenAPI Spec validator About ##### -OpenAPI Spec Validator is a Python library that validates OpenAPI Specs +OpenAPI Spec Validator is a CLI, pre-commit hook and python package that validates OpenAPI Specs against the `OpenAPI 2.0 (aka Swagger) `__, `OpenAPI 3.0 `__ @@ -80,6 +80,19 @@ or more pythonic way: For more details, read about `CLI (Command Line Interface) `__. +pre-commit hook +*************** + +.. code-block:: yaml + + repos: + - repo: https://github.com/python-openapi/openapi-spec-validator + rev: 0.5.5 # The version to use or 'master' for latest + hooks: + - id: openapi-spec-validator + +For more details, read about `pre-commit hook `__. + Python package ************** diff --git a/docs/index.rst b/docs/index.rst index 83ea8f7..9e24a7a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,7 +10,7 @@ openapi-spec-validator hook contributing -OpenAPI Spec Validator is a Python library that validates OpenAPI Specs +OpenAPI Spec Validator is a CLI, pre-commit hook and python package that validates OpenAPI Specs against the `OpenAPI 2.0 (aka Swagger) `__, `OpenAPI 3.0 `__ @@ -71,6 +71,18 @@ Usage Read more about the :doc:`cli`. + .. md-tab-item:: pre-commit hook + + .. code-block:: yaml + + repos: + - repo: https://github.com/python-openapi/openapi-spec-validator + rev: 0.5.5 # The version to use or 'master' for latest + hooks: + - id: openapi-spec-validator + + Read more about the :doc:`hook`. + .. md-tab-item:: Python package .. code-block:: python From bdec6abac206ec4e95dcc02599eda53092a68ca6 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 15 Jul 2023 12:18:50 +0100 Subject: [PATCH 208/371] move docker org --- .github/workflows/docker-publish.yml | 4 ++-- Makefile | 2 +- README.rst | 6 +++--- docs/cli.rst | 2 +- docs/index.rst | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 9e2428d..cbf1025 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -17,10 +17,10 @@ jobs: - name: Docker meta id: meta - uses: uses: docker/metadata-action@v4 + uses: docker/metadata-action@v4 with: images: | - p1c2u/openapi-spec-validator + pythonopenapi/openapi-spec-validator tags: | type=semver,pattern={{version}} diff --git a/Makefile b/Makefile index 71d8348..5ecaa79 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ PROJECT_NAME=openapi-spec-validator PACKAGE_NAME=$(subst -,_,${PROJECT_NAME}) VERSION=`git describe --abbrev=0` -DOCKER_REGISTRY=p1c2u +DOCKER_REGISTRY=pythonopenapi PYTHONDONTWRITEBYTECODE=1 diff --git a/README.rst b/README.rst index 981e367..78592fd 100644 --- a/README.rst +++ b/README.rst @@ -2,8 +2,8 @@ OpenAPI Spec validator ********************** -.. image:: https://img.shields.io/docker/v/p1c2u/openapi-spec-validator.svg?color=%23086DD7&label=docker%20hub&sort=semver - :target: https://hub.docker.com/r/p1c2u/openapi-spec-validator +.. image:: https://img.shields.io/docker/v/pythonopenapi/openapi-spec-validator.svg?color=%23086DD7&label=docker%20hub&sort=semver + :target: https://hub.docker.com/r/pythonopenapi/openapi-spec-validator .. image:: https://img.shields.io/pypi/v/openapi-spec-validator.svg :target: https://pypi.python.org/pypi/openapi-spec-validator .. image:: https://travis-ci.org/python-openapi/openapi-spec-validator.svg?branch=master @@ -70,7 +70,7 @@ docker way: .. code-block:: bash - docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml + docker run -v path/to/openapi.yaml:/openapi.yaml --rm pythonopenapi/openapi-spec-validator /openapi.yaml or more pythonic way: diff --git a/docs/cli.rst b/docs/cli.rst index 4be0077..b058a1a 100644 --- a/docs/cli.rst +++ b/docs/cli.rst @@ -21,7 +21,7 @@ CLI (Command Line Interface) .. code-block:: bash - docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml + docker run -v path/to/openapi.yaml:/openapi.yaml --rm pythonopenapi/openapi-spec-validator /openapi.yaml .. md-tab-item:: Python interpreter diff --git a/docs/index.rst b/docs/index.rst index 9e24a7a..0ff4fef 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -61,7 +61,7 @@ Usage .. code-block:: bash - docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml + docker run -v path/to/openapi.yaml:/openapi.yaml --rm pythonopenapi/openapi-spec-validator /openapi.yaml .. md-tab-item:: Python interpreter From 6c7642ff7ff3bc7d975b93aeaf2956c65cc9ff5d Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 15 Jul 2023 12:50:21 +0100 Subject: [PATCH 209/371] Add arm64 docker image platform --- .github/workflows/docker-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index cbf1025..1e8bf8d 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -41,6 +41,7 @@ jobs: uses: docker/build-push-action@v4 with: context: . + platforms: linux/amd64,linux/arm64 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 6c9f515a665c57c9ee056c402af6381f461e34e9 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 15 Jul 2023 14:09:26 +0100 Subject: [PATCH 210/371] Publish docker image manual --- .github/workflows/docker-publish-manual.yml | 54 +++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/docker-publish-manual.yml diff --git a/.github/workflows/docker-publish-manual.yml b/.github/workflows/docker-publish-manual.yml new file mode 100644 index 0000000..cc42a83 --- /dev/null +++ b/.github/workflows/docker-publish-manual.yml @@ -0,0 +1,54 @@ +# This workflow will upload Docker image when a release is created +# For more information see: https://github.com/marketplace/actions/docker-build-push-action + +name: Publish docker image (manual) + +on: + workflow_dispatch: + inputs: + version: + required: true + description: Version to build + tags: + required: true + description: Tags to publish + push: + type: boolean + description: Push to docker hub + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Docker meta + id: docker_meta + uses: crazy-max/ghaction-docker-meta@v1 + with: + images: | + pythonopenapi/openapi-spec-validator + tags: | + type=semver,pattern=${{ github.event.inputs.version }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + if: github.event.inputs.push + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: ${{ github.event.inputs.push }} + tags: ${{ github.event.inputs.tags }} + labels: ${{ github.event.inputs.version }} From 8d0273967439e764cee9cbf7e5123960e6f3fad7 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 15 Jul 2023 14:33:23 +0100 Subject: [PATCH 211/371] Publish docker image manual 2 --- .github/workflows/docker-publish-manual.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docker-publish-manual.yml b/.github/workflows/docker-publish-manual.yml index cc42a83..572c19c 100644 --- a/.github/workflows/docker-publish-manual.yml +++ b/.github/workflows/docker-publish-manual.yml @@ -9,9 +9,6 @@ on: version: required: true description: Version to build - tags: - required: true - description: Tags to publish push: type: boolean description: Push to docker hub @@ -29,7 +26,7 @@ jobs: images: | pythonopenapi/openapi-spec-validator tags: | - type=semver,pattern=${{ github.event.inputs.version }} + type=semver,pattern={{version}},value=${{ github.event.inputs.version }} - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -50,5 +47,5 @@ jobs: context: . platforms: linux/amd64,linux/arm64 push: ${{ github.event.inputs.push }} - tags: ${{ github.event.inputs.tags }} - labels: ${{ github.event.inputs.version }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From ed0c35e3f1dcee02de32ae7c1e10070dcfac87ba Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 15 Jul 2023 14:37:03 +0100 Subject: [PATCH 212/371] Update publish docker image manual github action --- .github/workflows/docker-publish-manual.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docker-publish-manual.yml b/.github/workflows/docker-publish-manual.yml index 572c19c..55b2d5c 100644 --- a/.github/workflows/docker-publish-manual.yml +++ b/.github/workflows/docker-publish-manual.yml @@ -20,8 +20,8 @@ jobs: - uses: actions/checkout@v2 - name: Docker meta - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 + id: meta + uses: docker/metadata-action@v4 with: images: | pythonopenapi/openapi-spec-validator @@ -29,20 +29,20 @@ jobs: type=semver,pattern={{version}},value=${{ github.event.inputs.version }} - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub if: github.event.inputs.push - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v4 with: context: . platforms: linux/amd64,linux/arm64 From 57a658d4c326e92109f68fa783270190f40fa895 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 12:52:16 +0000 Subject: [PATCH 213/371] Bump jsonschema from 4.18.0 to 4.18.3 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.18.0 to 4.18.3. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.18.0...v4.18.3) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 454f361..40916aa 100644 --- a/poetry.lock +++ b/poetry.lock @@ -579,13 +579,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.18.0" +version = "4.18.3" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.18.0-py3-none-any.whl", hash = "sha256:b508dd6142bd03f4c3670534c80af68cd7bbff9ea830b9cf2625d4a3c49ddf60"}, - {file = "jsonschema-4.18.0.tar.gz", hash = "sha256:8caf5b57a990a98e9b39832ef3cb35c176fe331414252b6e1b26fd5866f891a4"}, + {file = "jsonschema-4.18.3-py3-none-any.whl", hash = "sha256:aab78b34c2de001c6b692232f08c21a97b436fe18e0b817bf0511046924fceef"}, + {file = "jsonschema-4.18.3.tar.gz", hash = "sha256:64b7104d72efe856bea49ca4af37a14a9eba31b40bb7238179f3803130fd34d9"}, ] [package.dependencies] From 6b552e9cd8e68147874cfd64889b256e26b8ffd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 12:52:47 +0000 Subject: [PATCH 214/371] Bump black from 23.3.0 to 23.7.0 Bumps [black](https://github.com/psf/black) from 23.3.0 to 23.7.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.3.0...23.7.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 53 ++++++++++++++++++++++++-------------------------- pyproject.toml | 2 +- 2 files changed, 26 insertions(+), 29 deletions(-) diff --git a/poetry.lock b/poetry.lock index 454f361..22629d1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -81,36 +81,33 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "23.3.0" +version = "23.7.0" description = "The uncompromising code formatter." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "black-23.3.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:0945e13506be58bf7db93ee5853243eb368ace1c08a24c65ce108986eac65915"}, - {file = "black-23.3.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:67de8d0c209eb5b330cce2469503de11bca4085880d62f1628bd9972cc3366b9"}, - {file = "black-23.3.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:7c3eb7cea23904399866c55826b31c1f55bbcd3890ce22ff70466b907b6775c2"}, - {file = "black-23.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32daa9783106c28815d05b724238e30718f34155653d4d6e125dc7daec8e260c"}, - {file = "black-23.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:35d1381d7a22cc5b2be2f72c7dfdae4072a3336060635718cc7e1ede24221d6c"}, - {file = "black-23.3.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:a8a968125d0a6a404842fa1bf0b349a568634f856aa08ffaff40ae0dfa52e7c6"}, - {file = "black-23.3.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c7ab5790333c448903c4b721b59c0d80b11fe5e9803d8703e84dcb8da56fec1b"}, - {file = "black-23.3.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d"}, - {file = "black-23.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70"}, - {file = "black-23.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326"}, - {file = "black-23.3.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:1d06691f1eb8de91cd1b322f21e3bfc9efe0c7ca1f0e1eb1db44ea367dff656b"}, - {file = "black-23.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50cb33cac881766a5cd9913e10ff75b1e8eb71babf4c7104f2e9c52da1fb7de2"}, - {file = "black-23.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e114420bf26b90d4b9daa597351337762b63039752bdf72bf361364c1aa05925"}, - {file = "black-23.3.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:48f9d345675bb7fbc3dd85821b12487e1b9a75242028adad0333ce36ed2a6d27"}, - {file = "black-23.3.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:714290490c18fb0126baa0fca0a54ee795f7502b44177e1ce7624ba1c00f2331"}, - {file = "black-23.3.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:064101748afa12ad2291c2b91c960be28b817c0c7eaa35bec09cc63aa56493c5"}, - {file = "black-23.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:562bd3a70495facf56814293149e51aa1be9931567474993c7942ff7d3533961"}, - {file = "black-23.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:e198cf27888ad6f4ff331ca1c48ffc038848ea9f031a3b40ba36aced7e22f2c8"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266"}, - {file = "black-23.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab"}, - {file = "black-23.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb"}, - {file = "black-23.3.0-py3-none-any.whl", hash = "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4"}, - {file = "black-23.3.0.tar.gz", hash = "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940"}, + {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, + {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, + {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, + {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, + {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, + {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, + {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, + {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, + {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, + {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, + {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, + {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, + {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, + {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, + {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, + {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, + {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, + {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, + {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, + {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, + {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, + {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, ] [package.dependencies] @@ -1697,4 +1694,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "019e5f3dabd3bf4943ce30e04e9a008c018e838e91cef515b6ca50b7474bc141" +content-hash = "4dbeb78777a849a7474a8daea56de74bd90204b48c794c3204507917d31441fd" diff --git a/pyproject.toml b/pyproject.toml index 9829ba0..76dfde5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.4" isort = "^5.11.5" -black = "^23.3.0" +black = "^23.7.0" flynt = "^1.0" deptry = "^0.12.0" From 2b51d725e619b9e0508c4f45c17a554c41f87254 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 12:26:03 +0000 Subject: [PATCH 215/371] Bump jsonschema from 4.18.3 to 4.18.4 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.18.3 to 4.18.4. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.18.3...v4.18.4) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index b64e616..aa010ea 100644 --- a/poetry.lock +++ b/poetry.lock @@ -576,13 +576,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.18.3" +version = "4.18.4" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.18.3-py3-none-any.whl", hash = "sha256:aab78b34c2de001c6b692232f08c21a97b436fe18e0b817bf0511046924fceef"}, - {file = "jsonschema-4.18.3.tar.gz", hash = "sha256:64b7104d72efe856bea49ca4af37a14a9eba31b40bb7238179f3803130fd34d9"}, + {file = "jsonschema-4.18.4-py3-none-any.whl", hash = "sha256:971be834317c22daaa9132340a51c01b50910724082c2c1a2ac87eeec153a3fe"}, + {file = "jsonschema-4.18.4.tar.gz", hash = "sha256:fb3642735399fa958c0d2aad7057901554596c63349f4f6b283c493cf692a25d"}, ] [package.dependencies] From d230b673783fafae2ebbcbf658f753f53599a54e Mon Sep 17 00:00:00 2001 From: p1c2u Date: Tue, 25 Jul 2023 20:22:47 +0100 Subject: [PATCH 216/371] Allow to validate multiple files --- openapi_spec_validator/__main__.py | 85 +++++++++++++++++------------- 1 file changed, 49 insertions(+), 36 deletions(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 25aecf6..54aae77 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -21,11 +21,18 @@ ) +def print_ok(filename: str) -> None: + print(f"{filename}: OK") + + +def print_error(filename: str, exc: Exception) -> None: + print(f"{filename}: Error: {exc}") + + def print_validationerror( - exc: ValidationError, errors: str = "best-match" + filename: str, exc: ValidationError, errors: str = "best-match" ) -> None: - print("# Validation Error\n") - print(exc) + print(f"{filename}: Validation Error: {exc}") if exc.cause: print("\n# Cause\n") print(exc.cause) @@ -46,7 +53,11 @@ def print_validationerror( def main(args: Optional[Sequence[str]] = None) -> None: parser = ArgumentParser() - parser.add_argument("filename", help="Absolute or relative path to file") + parser.add_argument( + "file", + nargs="+", + help="Validate specified file(s).", + ) parser.add_argument( "--errors", choices=("best-match", "all"), @@ -63,38 +74,40 @@ def main(args: Optional[Sequence[str]] = None) -> None: ) args_parsed = parser.parse_args(args) - # choose source - reader = read_from_filename - if args_parsed.filename in ["-", "/-"]: - reader = read_from_stdin - - # read source - try: - spec, spec_url = reader(args_parsed.filename) - except Exception as exc: - print(exc) - sys.exit(1) - - # choose the validator - validators = { - "2.0": openapi_v2_spec_validator, - "3.0.0": openapi_v30_spec_validator, - "3.1.0": openapi_v31_spec_validator, - "detect": openapi_spec_validator_proxy, - } - validator = validators[args_parsed.schema] - - # validate - try: - validator.validate(spec, spec_url=spec_url) - except ValidationError as exc: - print_validationerror(exc, args_parsed.errors) - sys.exit(1) - except Exception as exc: - print(exc) - sys.exit(2) - else: - print("OK") + for filename in args_parsed.file: + # choose source + reader = read_from_filename + if filename in ["-", "/-"]: + filename = "stdin" + reader = read_from_stdin + + # read source + try: + spec, spec_url = reader(filename) + except Exception as exc: + print(exc) + sys.exit(1) + + # choose the validator + validators = { + "2.0": openapi_v2_spec_validator, + "3.0.0": openapi_v30_spec_validator, + "3.1.0": openapi_v31_spec_validator, + "detect": openapi_spec_validator_proxy, + } + validator = validators[args_parsed.schema] + + # validate + try: + validator.validate(spec, spec_url=spec_url) + except ValidationError as exc: + print_validationerror(filename, exc, args_parsed.errors) + sys.exit(1) + except Exception as exc: + print_error(filename, exc) + sys.exit(2) + else: + print_ok(filename) if __name__ == "__main__": From d0489ecc0384c58fa3781ccabd8d8ab35eb32cb4 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Tue, 25 Jul 2023 20:24:15 +0100 Subject: [PATCH 217/371] Deprecate minor schema versions as arguments --- openapi_spec_validator/__main__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 54aae77..cbba8ad 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -67,10 +67,11 @@ def main(args: Optional[Sequence[str]] = None) -> None: ) parser.add_argument( "--schema", - help="OpenAPI schema (default: detect)", type=str, - choices=["2.0", "3.0.0", "3.1.0", "detect"], + choices=["detect", "2.0", "3.0", "3.1", "3.0.0", "3.1.0"], default="detect", + metavar="{detect,2.0,3.0,3.1}", + help="OpenAPI schema version (default: detect).", ) args_parsed = parser.parse_args(args) @@ -90,10 +91,13 @@ def main(args: Optional[Sequence[str]] = None) -> None: # choose the validator validators = { + "detect": openapi_spec_validator_proxy, "2.0": openapi_v2_spec_validator, + "3.0": openapi_v30_spec_validator, + "3.1": openapi_v31_spec_validator, + # backward compatibility "3.0.0": openapi_v30_spec_validator, "3.1.0": openapi_v31_spec_validator, - "detect": openapi_spec_validator_proxy, } validator = validators[args_parsed.schema] From 98f11b59ffe5d892b7914220a16a815ebb4e0eaa Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 28 Jul 2023 11:26:10 +0100 Subject: [PATCH 218/371] Use base_uri for validate in cli; add tests --- openapi_spec_validator/__main__.py | 4 +- tests/integration/test_main.py | 77 ++++++++++++++++++++++++++---- 2 files changed, 69 insertions(+), 12 deletions(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index cbba8ad..c058b76 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -84,7 +84,7 @@ def main(args: Optional[Sequence[str]] = None) -> None: # read source try: - spec, spec_url = reader(filename) + spec, base_uri = reader(filename) except Exception as exc: print(exc) sys.exit(1) @@ -103,7 +103,7 @@ def main(args: Optional[Sequence[str]] = None) -> None: # validate try: - validator.validate(spec, spec_url=spec_url) + validator.validate(spec, base_uri=base_uri) except ValidationError as exc: print_validationerror(filename, exc, args_parsed.errors) sys.exit(1) diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index f85a09d..73a8d55 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -6,19 +6,25 @@ from openapi_spec_validator.__main__ import main -def test_schema_v2_detect(): +def test_schema_v2_detect(capsys): """Test schema v2 is detected""" testargs = ["./tests/integration/data/v2.0/petstore.yaml"] main(testargs) + out, err = capsys.readouterr() + assert not err + assert "./tests/integration/data/v2.0/petstore.yaml: OK\n" in out -def test_schema_v31_detect(): +def test_schema_v31_detect(capsys): """Test schema v3.1 is detected""" testargs = ["./tests/integration/data/v3.1/petstore.yaml"] main(testargs) + out, err = capsys.readouterr() + assert not err + assert "./tests/integration/data/v3.1/petstore.yaml: OK\n" in out -def test_schema_v31(): +def test_schema_v31(capsys): """No errors when calling proper v3.1 file.""" testargs = [ "--schema", @@ -26,9 +32,12 @@ def test_schema_v31(): "./tests/integration/data/v3.1/petstore.yaml", ] main(testargs) + out, err = capsys.readouterr() + assert not err + assert "./tests/integration/data/v3.1/petstore.yaml: OK\n" in out -def test_schema_v30(): +def test_schema_v30(capsys): """No errors when calling proper v3.0 file.""" testargs = [ "--schema", @@ -36,9 +45,12 @@ def test_schema_v30(): "./tests/integration/data/v3.0/petstore.yaml", ] main(testargs) + out, err = capsys.readouterr() + assert not err + assert "./tests/integration/data/v3.0/petstore.yaml: OK\n" in out -def test_schema_v2(): +def test_schema_v2(capsys): """No errors when calling with proper v2 file.""" testargs = [ "--schema", @@ -46,6 +58,22 @@ def test_schema_v2(): "./tests/integration/data/v2.0/petstore.yaml", ] main(testargs) + out, err = capsys.readouterr() + assert not err + assert "./tests/integration/data/v2.0/petstore.yaml: OK\n" in out + + +def test_many(capsys): + """No errors when calling with proper v2 and v3 files.""" + testargs = [ + "./tests/integration/data/v2.0/petstore.yaml", + "./tests/integration/data/v3.0/petstore.yaml", + ] + main(testargs) + out, err = capsys.readouterr() + assert not err + assert "./tests/integration/data/v2.0/petstore.yaml: OK\n" in out + assert "./tests/integration/data/v3.0/petstore.yaml: OK\n" in out def test_errors_on_missing_description_best(capsys): @@ -57,6 +85,11 @@ def test_errors_on_missing_description_best(capsys): with pytest.raises(SystemExit): main(testargs) out, err = capsys.readouterr() + assert not err + assert ( + "./tests/integration/data/v3.0/missing-description.yaml: Validation Error:" + in out + ) assert "Failed validating" in out assert "'description' is a required property" in out assert "'$ref' is a required property" not in out @@ -73,13 +106,18 @@ def test_errors_on_missing_description_full(capsys): with pytest.raises(SystemExit): main(testargs) out, err = capsys.readouterr() + assert not err + assert ( + "./tests/integration/data/v3.0/missing-description.yaml: Validation Error:" + in out + ) assert "Failed validating" in out assert "'description' is a required property" in out assert "'$ref' is a required property" in out assert "1 more subschema error" not in out -def test_schema_unknown(): +def test_schema_unknown(capsys): """Errors on running with unknown schema.""" testargs = [ "--schema", @@ -88,9 +126,12 @@ def test_schema_unknown(): ] with pytest.raises(SystemExit): main(testargs) + out, err = capsys.readouterr() + assert "error: argument --schema" in err + assert not out -def test_validation_error(): +def test_validation_error(capsys): """SystemExit on running with ValidationError.""" testargs = [ "--schema", @@ -99,13 +140,20 @@ def test_validation_error(): ] with pytest.raises(SystemExit): main(testargs) + out, err = capsys.readouterr() + assert not err + assert ( + "./tests/integration/data/v2.0/petstore.yaml: Validation Error:" in out + ) + assert "Failed validating" in out + assert "'openapi' is a required property" in out @mock.patch( "openapi_spec_validator.__main__.openapi_v30_spec_validator.validate", side_effect=Exception, ) -def test_unknown_error(m_validate): +def test_unknown_error(m_validate, capsys): """SystemExit on running with unknown error.""" testargs = [ "--schema", @@ -114,16 +162,22 @@ def test_unknown_error(m_validate): ] with pytest.raises(SystemExit): main(testargs) + out, err = capsys.readouterr() + assert not err + assert "./tests/integration/data/v2.0/petstore.yaml: Error:" in out -def test_nonexisting_file(): +def test_nonexisting_file(capsys): """Calling with non-existing file should sys.exit.""" testargs = ["i_dont_exist.yaml"] with pytest.raises(SystemExit): main(testargs) + out, err = capsys.readouterr() + assert not err + assert "No such file: i_dont_exist.yaml\n" in out -def test_schema_stdin(): +def test_schema_stdin(capsys): """Test schema from STDIN""" spes_path = "./tests/integration/data/v3.0/petstore.yaml" with open(spes_path) as spec_file: @@ -133,3 +187,6 @@ def test_schema_stdin(): testargs = ["--schema", "3.0.0", "-"] with mock.patch("openapi_spec_validator.__main__.sys.stdin", spec_io): main(testargs) + out, err = capsys.readouterr() + assert not err + assert "stdin: OK\n" in out From 33d1fbdf0a4bf2b4b0c51530927d7b961766a372 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 12:27:32 +0000 Subject: [PATCH 219/371] Bump sphinx from 7.0.1 to 7.1.1 Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 7.0.1 to 7.1.1. - [Release notes](https://github.com/sphinx-doc/sphinx/releases) - [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES) - [Commits](https://github.com/sphinx-doc/sphinx/compare/v7.0.1...v7.1.1) --- updated-dependencies: - dependency-name: sphinx dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index aa010ea..3bcf7f3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1438,13 +1438,13 @@ files = [ [[package]] name = "sphinx" -version = "7.0.1" +version = "7.1.1" description = "Python documentation generator" optional = false python-versions = ">=3.8" files = [ - {file = "Sphinx-7.0.1.tar.gz", hash = "sha256:61e025f788c5977d9412587e733733a289e2b9fdc2fef8868ddfbfc4ccfe881d"}, - {file = "sphinx-7.0.1-py3-none-any.whl", hash = "sha256:60c5e04756c1709a98845ed27a2eed7a556af3993afb66e77fec48189f742616"}, + {file = "sphinx-7.1.1-py3-none-any.whl", hash = "sha256:4e6c5ea477afa0fb90815210fd1312012e1d7542589ab251ac9b53b7c0751bce"}, + {file = "sphinx-7.1.1.tar.gz", hash = "sha256:59b8e391f0768a96cd233e8300fe7f0a8dc2f64f83dc2a54336a9a84f428ff4e"}, ] [package.dependencies] From d427dce34aad81300343fe97a80517f2fb248b4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 12:28:34 +0000 Subject: [PATCH 220/371] Bump sphinx-immaterial from 0.11.5 to 0.11.6 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.5 to 0.11.6. - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.5...v0.11.6) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index aa010ea..b1d1a57 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1473,13 +1473,13 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.5" +version = "0.11.6" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.5-py3-none-any.whl", hash = "sha256:f9fe0a3afca7edd530656afa08303bfb7338d03164da173a0e1bc68d0d1adad6"}, - {file = "sphinx_immaterial-0.11.5.tar.gz", hash = "sha256:fbd697cba07212a359e42bc24e6effcbbfe97e17411d4e874768028bc7bcd407"}, + {file = "sphinx_immaterial-0.11.6-py3-none-any.whl", hash = "sha256:93ca4ec055a17f0801be905f083203d434797dab88c283196e949b4e3a081955"}, + {file = "sphinx_immaterial-0.11.6.tar.gz", hash = "sha256:d488f5627b8e203264fc1bebb744f516c099303e9a2ee4c6f6f9acc35b7c0e02"}, ] [package.dependencies] From af74824ab6232618d0fa8ac361cfd874f6b4b692 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 12:28:39 +0000 Subject: [PATCH 221/371] Bump flynt from 1.0.0 to 1.0.1 Bumps [flynt](https://github.com/ikamensh/flynt) from 1.0.0 to 1.0.1. - [Changelog](https://github.com/ikamensh/flynt/blob/master/CHANGELOG.md) - [Commits](https://github.com/ikamensh/flynt/compare/1.0.0...1.0.1) --- updated-dependencies: - dependency-name: flynt dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index aa010ea..8296593 100644 --- a/poetry.lock +++ b/poetry.lock @@ -440,13 +440,13 @@ pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "flynt" -version = "1.0.0" +version = "1.0.1" description = "CLI tool to convert a python project's %-formatted strings to f-strings." optional = false python-versions = ">=3.7" files = [ - {file = "flynt-1.0.0-py3-none-any.whl", hash = "sha256:8975913426a096750fb427701ed59f2f381fac7aa0afc9b6eff433a651d1f5d6"}, - {file = "flynt-1.0.0.tar.gz", hash = "sha256:38fd2ff64acf67c58a09ec17c4ffdf673075fad5f3249e7f7221cb3ddf42cc34"}, + {file = "flynt-1.0.1-py3-none-any.whl", hash = "sha256:65d1c546434827275123222a98408e9561bcd67db832dd58f530ff17b8329ec1"}, + {file = "flynt-1.0.1.tar.gz", hash = "sha256:988aac00672a5469726cc0a17cef7d1178c284a9fe8563458db2475d0aaed965"}, ] [package.dependencies] From 7936a995ac6e70544edc7fe6dab1ca3fdb207f52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:26:52 +0000 Subject: [PATCH 222/371] Bump sphinx from 7.1.1 to 7.1.2 Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 7.1.1 to 7.1.2. - [Release notes](https://github.com/sphinx-doc/sphinx/releases) - [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES) - [Commits](https://github.com/sphinx-doc/sphinx/compare/v7.1.1...v7.1.2) --- updated-dependencies: - dependency-name: sphinx dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 28edbf2..39fc28e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1438,13 +1438,13 @@ files = [ [[package]] name = "sphinx" -version = "7.1.1" +version = "7.1.2" description = "Python documentation generator" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx-7.1.1-py3-none-any.whl", hash = "sha256:4e6c5ea477afa0fb90815210fd1312012e1d7542589ab251ac9b53b7c0751bce"}, - {file = "sphinx-7.1.1.tar.gz", hash = "sha256:59b8e391f0768a96cd233e8300fe7f0a8dc2f64f83dc2a54336a9a84f428ff4e"}, + {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, + {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, ] [package.dependencies] From b55ae0cac18be59efb7ee3b8fa83e95ffc86da32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:27:26 +0000 Subject: [PATCH 223/371] Bump importlib-resources from 6.0.0 to 6.0.1 Bumps [importlib-resources](https://github.com/python/importlib_resources) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/python/importlib_resources/releases) - [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst) - [Commits](https://github.com/python/importlib_resources/compare/v6.0.0...v6.0.1) --- updated-dependencies: - dependency-name: importlib-resources dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 28edbf2..5caf9a4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -513,13 +513,13 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "6.0.0" +version = "6.0.1" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.0.0-py3-none-any.whl", hash = "sha256:d952faee11004c045f785bb5636e8f885bed30dc3c940d5d42798a2a4541c185"}, - {file = "importlib_resources-6.0.0.tar.gz", hash = "sha256:4cf94875a8368bd89531a756df9a9ebe1f150e0f885030b461237bc7f2d905f2"}, + {file = "importlib_resources-6.0.1-py3-none-any.whl", hash = "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf"}, + {file = "importlib_resources-6.0.1.tar.gz", hash = "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"}, ] [package.dependencies] From 87c2e28be080a51bc7a85955ec390826baed2750 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:27:59 +0000 Subject: [PATCH 224/371] Bump jsonschema from 4.18.4 to 4.19.0 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.18.4 to 4.19.0. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.18.4...v4.19.0) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 28edbf2..c89c007 100644 --- a/poetry.lock +++ b/poetry.lock @@ -576,13 +576,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.18.4" +version = "4.19.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.18.4-py3-none-any.whl", hash = "sha256:971be834317c22daaa9132340a51c01b50910724082c2c1a2ac87eeec153a3fe"}, - {file = "jsonschema-4.18.4.tar.gz", hash = "sha256:fb3642735399fa958c0d2aad7057901554596c63349f4f6b283c493cf692a25d"}, + {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"}, + {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"}, ] [package.dependencies] From c1224d131f7ca2530ff4ea54cef03c27f35d9019 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 12:27:42 +0000 Subject: [PATCH 225/371] Bump tox from 4.6.4 to 4.8.0 Bumps [tox](https://github.com/tox-dev/tox) from 4.6.4 to 4.8.0. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.6.4...4.8.0) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/poetry.lock b/poetry.lock index 79a57c9..f3baa02 100644 --- a/poetry.lock +++ b/poetry.lock @@ -373,13 +373,13 @@ tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} [[package]] name = "distlib" -version = "0.3.6" +version = "0.3.7" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, - {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, + {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, + {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, ] [[package]] @@ -877,18 +877,18 @@ files = [ [[package]] name = "platformdirs" -version = "3.8.1" +version = "3.10.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.8.1-py3-none-any.whl", hash = "sha256:cec7b889196b9144d088e4c57d9ceef7374f6c39694ad1577a0aab50d27ea28c"}, - {file = "platformdirs-3.8.1.tar.gz", hash = "sha256:f87ca4fcff7d2b0f81c6a748a77973d7af0f4d526f98f308477c3c436c74d528"}, + {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, + {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, ] [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] [[package]] name = "pluggy" @@ -1600,13 +1600,13 @@ files = [ [[package]] name = "tox" -version = "4.6.4" +version = "4.8.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.7" files = [ - {file = "tox-4.6.4-py3-none-any.whl", hash = "sha256:1b8f8ae08d6a5475cad9d508236c51ea060620126fd7c3c513d0f5c7f29cc776"}, - {file = "tox-4.6.4.tar.gz", hash = "sha256:5e2ad8845764706170d3dcaac171704513cc8a725655219acb62fe4380bdadda"}, + {file = "tox-4.8.0-py3-none-any.whl", hash = "sha256:4991305a56983d750a0d848a34242be290452aa88d248f1bf976e4036ee8b213"}, + {file = "tox-4.8.0.tar.gz", hash = "sha256:2adacf435b12ccf10b9dfa9975d8ec0afd7cbae44d300463140d2117b968037b"}, ] [package.dependencies] @@ -1615,15 +1615,15 @@ chardet = ">=5.1" colorama = ">=0.4.6" filelock = ">=3.12.2" packaging = ">=23.1" -platformdirs = ">=3.8" +platformdirs = ">=3.9.1" pluggy = ">=1.2" -pyproject-api = ">=1.5.2" +pyproject-api = ">=1.5.3" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.23.1" +virtualenv = ">=20.24.1" [package.extras] docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.23.3,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.6)", "distlib (>=0.3.6)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17.1)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.10)", "wheel (>=0.40)"] +testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17.1)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.10)", "wheel (>=0.40)"] [[package]] name = "typing-extensions" @@ -1655,23 +1655,23 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.23.1" +version = "20.24.3" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.23.1-py3-none-any.whl", hash = "sha256:34da10f14fea9be20e0fd7f04aba9732f84e593dac291b757ce42e3368a39419"}, - {file = "virtualenv-20.23.1.tar.gz", hash = "sha256:8ff19a38c1021c742148edc4f81cb43d7f8c6816d2ede2ab72af5b84c749ade1"}, + {file = "virtualenv-20.24.3-py3-none-any.whl", hash = "sha256:95a6e9398b4967fbcb5fef2acec5efaf9aa4972049d9ae41f95e0972a683fd02"}, + {file = "virtualenv-20.24.3.tar.gz", hash = "sha256:e5c3b4ce817b0b328af041506a2a299418c98747c4b1e68cb7527e74ced23efc"}, ] [package.dependencies] -distlib = ">=0.3.6,<1" -filelock = ">=3.12,<4" -platformdirs = ">=3.5.1,<4" +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<4" [package.extras] docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezer (>=0.4.6)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.8)", "time-machine (>=2.9)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "zipp" From 23269c7343f541724a8b9549fa7ebc78d71587c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 12:28:00 +0000 Subject: [PATCH 226/371] Bump mypy from 1.4.1 to 1.5.0 Bumps [mypy](https://github.com/python/mypy) from 1.4.1 to 1.5.0. - [Commits](https://github.com/python/mypy/compare/v1.4.1...v1.5.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 55 +++++++++++++++++++++++--------------------------- pyproject.toml | 2 +- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/poetry.lock b/poetry.lock index 79a57c9..853370c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -746,37 +746,33 @@ files = [ [[package]] name = "mypy" -version = "1.4.1" +version = "1.5.0" description = "Optional static typing for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"}, - {file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"}, - {file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"}, - {file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"}, - {file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"}, - {file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"}, - {file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"}, - {file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"}, - {file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"}, - {file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"}, - {file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"}, - {file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"}, - {file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"}, - {file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"}, - {file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"}, - {file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"}, - {file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"}, - {file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"}, - {file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"}, - {file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"}, - {file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"}, - {file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"}, - {file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"}, - {file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"}, - {file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"}, - {file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"}, + {file = "mypy-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ad3109bec37cc33654de8db30fe8ff3a1bb57ea65144167d68185e6dced9868d"}, + {file = "mypy-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b4ea3a0241cb005b0ccdbd318fb99619b21ae51bcf1660b95fc22e0e7d3ba4a1"}, + {file = "mypy-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fe816e26e676c1311b9e04fd576543b873576d39439f7c24c8e5c7728391ecf"}, + {file = "mypy-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:42170e68adb1603ccdc55a30068f72bcfcde2ce650188e4c1b2a93018b826735"}, + {file = "mypy-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d145b81a8214687cfc1f85c03663a5bbe736777410e5580e54d526e7e904f564"}, + {file = "mypy-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c36011320e452eb30bec38b9fd3ba20569dc9545d7d4540d967f3ea1fab9c374"}, + {file = "mypy-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f3940cf5845b2512b3ab95463198b0cdf87975dfd17fdcc6ce9709a9abe09e69"}, + {file = "mypy-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9166186c498170e1ff478a7f540846b2169243feb95bc228d39a67a1a450cdc6"}, + {file = "mypy-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:725b57a19b7408ef66a0fd9db59b5d3e528922250fb56e50bded27fea9ff28f0"}, + {file = "mypy-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:eec5c927aa4b3e8b4781840f1550079969926d0a22ce38075f6cfcf4b13e3eb4"}, + {file = "mypy-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79c520aa24f21852206b5ff2cf746dc13020113aa73fa55af504635a96e62718"}, + {file = "mypy-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:769ddb6bfe55c2bd9c7d6d7020885a5ea14289619db7ee650e06b1ef0852c6f4"}, + {file = "mypy-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbf18f8db7e5f060d61c91e334d3b96d6bb624ddc9ee8a1cde407b737acbca2c"}, + {file = "mypy-1.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a2500ad063413bc873ae102cf655bf49889e0763b260a3a7cf544a0cbbf7e70a"}, + {file = "mypy-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:84cf9f7d8a8a22bb6a36444480f4cbf089c917a4179fbf7eea003ea931944a7f"}, + {file = "mypy-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a551ed0fc02455fe2c1fb0145160df8336b90ab80224739627b15ebe2b45e9dc"}, + {file = "mypy-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:372fd97293ed0076d52695849f59acbbb8461c4ab447858cdaeaf734a396d823"}, + {file = "mypy-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8a7444d6fcac7e2585b10abb91ad900a576da7af8f5cffffbff6065d9115813"}, + {file = "mypy-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:35b13335c6c46a386577a51f3d38b2b5d14aa619e9633bb756bd77205e4bd09f"}, + {file = "mypy-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:2c9d570f53908cbea326ad8f96028a673b814d9dca7515bf71d95fa662c3eb6f"}, + {file = "mypy-1.5.0-py3-none-any.whl", hash = "sha256:69b32d0dedd211b80f1b7435644e1ef83033a2af2ac65adcdc87c38db68a86be"}, + {file = "mypy-1.5.0.tar.gz", hash = "sha256:f3460f34b3839b9bc84ee3ed65076eb827cd99ed13ed08d723f9083cada4a212"}, ] [package.dependencies] @@ -787,7 +783,6 @@ typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] -python2 = ["typed-ast (>=1.4.0,<2)"] reports = ["lxml"] [[package]] @@ -1694,4 +1689,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "4dbeb78777a849a7474a8daea56de74bd90204b48c794c3204507917d31441fd" +content-hash = "3abc426fb3b333bed3e308bd3755b45e112cf56d32882aa8ac2ba2ab68337aaa" diff --git a/pyproject.toml b/pyproject.toml index 76dfde5..8c16c34 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,7 @@ pytest = "^7.4.0" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" -mypy = "^1.4" +mypy = "^1.5" isort = "^5.11.5" black = "^23.7.0" flynt = "^1.0" From b13284b7f22b8ebd6dded69bde769313c629e08b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 12:26:26 +0000 Subject: [PATCH 227/371] Bump mypy from 1.5.0 to 1.5.1 Bumps [mypy](https://github.com/python/mypy) from 1.5.0 to 1.5.1. - [Commits](https://github.com/python/mypy/compare/v1.5.0...v1.5.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/poetry.lock b/poetry.lock index eaa034f..e82806f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -746,33 +746,38 @@ files = [ [[package]] name = "mypy" -version = "1.5.0" +version = "1.5.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ad3109bec37cc33654de8db30fe8ff3a1bb57ea65144167d68185e6dced9868d"}, - {file = "mypy-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b4ea3a0241cb005b0ccdbd318fb99619b21ae51bcf1660b95fc22e0e7d3ba4a1"}, - {file = "mypy-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fe816e26e676c1311b9e04fd576543b873576d39439f7c24c8e5c7728391ecf"}, - {file = "mypy-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:42170e68adb1603ccdc55a30068f72bcfcde2ce650188e4c1b2a93018b826735"}, - {file = "mypy-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d145b81a8214687cfc1f85c03663a5bbe736777410e5580e54d526e7e904f564"}, - {file = "mypy-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c36011320e452eb30bec38b9fd3ba20569dc9545d7d4540d967f3ea1fab9c374"}, - {file = "mypy-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f3940cf5845b2512b3ab95463198b0cdf87975dfd17fdcc6ce9709a9abe09e69"}, - {file = "mypy-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9166186c498170e1ff478a7f540846b2169243feb95bc228d39a67a1a450cdc6"}, - {file = "mypy-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:725b57a19b7408ef66a0fd9db59b5d3e528922250fb56e50bded27fea9ff28f0"}, - {file = "mypy-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:eec5c927aa4b3e8b4781840f1550079969926d0a22ce38075f6cfcf4b13e3eb4"}, - {file = "mypy-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79c520aa24f21852206b5ff2cf746dc13020113aa73fa55af504635a96e62718"}, - {file = "mypy-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:769ddb6bfe55c2bd9c7d6d7020885a5ea14289619db7ee650e06b1ef0852c6f4"}, - {file = "mypy-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbf18f8db7e5f060d61c91e334d3b96d6bb624ddc9ee8a1cde407b737acbca2c"}, - {file = "mypy-1.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a2500ad063413bc873ae102cf655bf49889e0763b260a3a7cf544a0cbbf7e70a"}, - {file = "mypy-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:84cf9f7d8a8a22bb6a36444480f4cbf089c917a4179fbf7eea003ea931944a7f"}, - {file = "mypy-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a551ed0fc02455fe2c1fb0145160df8336b90ab80224739627b15ebe2b45e9dc"}, - {file = "mypy-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:372fd97293ed0076d52695849f59acbbb8461c4ab447858cdaeaf734a396d823"}, - {file = "mypy-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8a7444d6fcac7e2585b10abb91ad900a576da7af8f5cffffbff6065d9115813"}, - {file = "mypy-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:35b13335c6c46a386577a51f3d38b2b5d14aa619e9633bb756bd77205e4bd09f"}, - {file = "mypy-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:2c9d570f53908cbea326ad8f96028a673b814d9dca7515bf71d95fa662c3eb6f"}, - {file = "mypy-1.5.0-py3-none-any.whl", hash = "sha256:69b32d0dedd211b80f1b7435644e1ef83033a2af2ac65adcdc87c38db68a86be"}, - {file = "mypy-1.5.0.tar.gz", hash = "sha256:f3460f34b3839b9bc84ee3ed65076eb827cd99ed13ed08d723f9083cada4a212"}, + {file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"}, + {file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"}, + {file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"}, + {file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"}, + {file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"}, + {file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"}, + {file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"}, + {file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"}, + {file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"}, + {file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"}, + {file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"}, + {file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"}, + {file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"}, + {file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"}, + {file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"}, + {file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"}, + {file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"}, + {file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"}, + {file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"}, + {file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"}, + {file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"}, + {file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"}, + {file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"}, + {file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"}, + {file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"}, + {file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"}, + {file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"}, ] [package.dependencies] From 1b00f953a83773f2b971ea2c9e4f865ae63bea77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 12:26:43 +0000 Subject: [PATCH 228/371] Bump jsonschema-spec from 0.2.3 to 0.2.4 Bumps [jsonschema-spec](https://github.com/p1c2u/jsonschema-spec) from 0.2.3 to 0.2.4. - [Release notes](https://github.com/p1c2u/jsonschema-spec/releases) - [Commits](https://github.com/p1c2u/jsonschema-spec/compare/0.2.3...0.2.4) --- updated-dependencies: - dependency-name: jsonschema-spec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index eaa034f..a3cea8a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -599,19 +599,19 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-spec" -version = "0.2.3" +version = "0.2.4" description = "JSONSchema Spec with object-oriented paths" optional = false python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "jsonschema_spec-0.2.3-py3-none-any.whl", hash = "sha256:ee005ddeca73229560ac2b8f1849590929c4b2cd17a932b229b03566e517f2a6"}, - {file = "jsonschema_spec-0.2.3.tar.gz", hash = "sha256:e01b8b100f0676177b0b39027a5cab7e7a16ce4316a3d0d15e576293d954fafc"}, + {file = "jsonschema_spec-0.2.4-py3-none-any.whl", hash = "sha256:e6dcf7056734ec6854f7888da6c08ce6c421f28aeeddce96bb90de0fb6d711ef"}, + {file = "jsonschema_spec-0.2.4.tar.gz", hash = "sha256:873e396ad1ba6edf9f52d6174c110d4fafb7b5f5894744246a53fe75e5251ec2"}, ] [package.dependencies] pathable = ">=0.4.1,<0.5.0" PyYAML = ">=5.1" -referencing = ">=0.28.0,<0.30.0" +referencing = ">=0.28.0,<0.31.0" requests = ">=2.31.0,<3.0.0" [[package]] From 794a43e6b395af30dd79056d492224bbe2e637bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 12:27:00 +0000 Subject: [PATCH 229/371] Bump sphinx-immaterial from 0.11.6 to 0.11.7 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.6 to 0.11.7. - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.6...v0.11.7) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index eaa034f..a4fc126 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1468,13 +1468,13 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.6" +version = "0.11.7" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.6-py3-none-any.whl", hash = "sha256:93ca4ec055a17f0801be905f083203d434797dab88c283196e949b4e3a081955"}, - {file = "sphinx_immaterial-0.11.6.tar.gz", hash = "sha256:d488f5627b8e203264fc1bebb744f516c099303e9a2ee4c6f6f9acc35b7c0e02"}, + {file = "sphinx_immaterial-0.11.7-py3-none-any.whl", hash = "sha256:2166b8272e1dbf2c2fd93c801c6db24e1d7168c5c7283159bf0e8ee713166c02"}, + {file = "sphinx_immaterial-0.11.7.tar.gz", hash = "sha256:619075d7d5edd03bc92a1bbf9bab68675cf52cf43965b1d6607222881a15d88c"}, ] [package.dependencies] From aa21c272c7968235d3944c3d50c355cf847f34bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 12:27:22 +0000 Subject: [PATCH 230/371] Bump tox from 4.8.0 to 4.9.0 Bumps [tox](https://github.com/tox-dev/tox) from 4.8.0 to 4.9.0. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.8.0...4.9.0) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/poetry.lock b/poetry.lock index eaa034f..c90bdd3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -160,13 +160,13 @@ files = [ [[package]] name = "chardet" -version = "5.1.0" +version = "5.2.0" description = "Universal encoding detector for Python 3" optional = false python-versions = ">=3.7" files = [ - {file = "chardet-5.1.0-py3-none-any.whl", hash = "sha256:362777fb014af596ad31334fde1e8c327dfdb076e1960d1694662d46a6917ab9"}, - {file = "chardet-5.1.0.tar.gz", hash = "sha256:0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5"}, + {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, + {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, ] [[package]] @@ -1595,30 +1595,30 @@ files = [ [[package]] name = "tox" -version = "4.8.0" +version = "4.9.0" description = "tox is a generic virtualenv management and test command line tool" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tox-4.8.0-py3-none-any.whl", hash = "sha256:4991305a56983d750a0d848a34242be290452aa88d248f1bf976e4036ee8b213"}, - {file = "tox-4.8.0.tar.gz", hash = "sha256:2adacf435b12ccf10b9dfa9975d8ec0afd7cbae44d300463140d2117b968037b"}, + {file = "tox-4.9.0-py3-none-any.whl", hash = "sha256:c80de60fe26f9a009b0a763888bf2099ccfbef50a0279a6b9f6de40eb4eb7457"}, + {file = "tox-4.9.0.tar.gz", hash = "sha256:9b6d38fe422599d084afd89375b4803f4bc1f8f16573c77c8fd8ffcc6938f1ff"}, ] [package.dependencies] cachetools = ">=5.3.1" -chardet = ">=5.1" +chardet = ">=5.2" colorama = ">=0.4.6" filelock = ">=3.12.2" packaging = ">=23.1" -platformdirs = ">=3.9.1" +platformdirs = ">=3.10" pluggy = ">=1.2" pyproject-api = ">=1.5.3" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.24.1" +virtualenv = ">=20.24.3" [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.23.3,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17.1)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.10)", "wheel (>=0.40)"] +docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.24)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.18)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.12)", "wheel (>=0.41.1)"] [[package]] name = "typing-extensions" From e92870809f918246060eba1f1d62f6c94f401b78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 17:58:23 +0000 Subject: [PATCH 231/371] Bump certifi from 2023.5.7 to 2023.7.22 Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22. - [Commits](https://github.com/certifi/python-certifi/compare/2023.05.07...2023.07.22) --- updated-dependencies: - dependency-name: certifi dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index e82806f..c30c894 100644 --- a/poetry.lock +++ b/poetry.lock @@ -138,13 +138,13 @@ files = [ [[package]] name = "certifi" -version = "2023.5.7" +version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, - {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, ] [[package]] From f5e7be894319157bb221324b8d8ea3b24bf23180 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 12:47:45 +0000 Subject: [PATCH 232/371] Bump python from 3.11.4-alpine to 3.11.5-alpine Bumps python from 3.11.4-alpine to 3.11.5-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1a02571..7527749 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0 -FROM python:3.11.4-alpine as builder +FROM python:3.11.5-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.11.4-alpine +FROM python:3.11.5-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 1d4810081038ac4270c5c0e42943f17766d52b84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 12:39:59 +0000 Subject: [PATCH 233/371] Bump pytest from 7.4.0 to 7.4.1 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.0 to 7.4.1. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.4.0...7.4.1) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 10 +++++----- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2e0deba..77336dd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -1129,13 +1129,13 @@ testing = ["covdefaults (>=2.3)", "importlib-metadata (>=6.6)", "pytest (>=7.3.1 [[package]] name = "pytest" -version = "7.4.0" +version = "7.4.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, - {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, + {file = "pytest-7.4.1-py3-none-any.whl", hash = "sha256:460c9a59b14e27c602eb5ece2e47bec99dc5fc5f6513cf924a7d03a578991b1f"}, + {file = "pytest-7.4.1.tar.gz", hash = "sha256:2f2301e797521b23e4d2585a0a3d7b5e50fdddaaf7e7d6773ea26ddb17c213ab"}, ] [package.dependencies] @@ -1694,4 +1694,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "3abc426fb3b333bed3e308bd3755b45e112cf56d32882aa8ac2ba2ab68337aaa" +content-hash = "b145d4cee2508348a2eaeddd3f5d3e947acc530c1ec96cecb88acc0916068b0d" diff --git a/pyproject.toml b/pyproject.toml index 8c16c34..6936616 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,7 +63,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^7.4.0" +pytest = "^7.4.1" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From 7f557d02317720106531aa42c34042131eb37f8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 12:40:39 +0000 Subject: [PATCH 234/371] Bump tox from 4.9.0 to 4.11.1 Bumps [tox](https://github.com/tox-dev/tox) from 4.9.0 to 4.11.1. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.9.0...4.11.1) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2e0deba..f4e05b6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -409,18 +409,21 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.12.2" +version = "3.12.3" description = "A platform independent file lock." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, - {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, + {file = "filelock-3.12.3-py3-none-any.whl", hash = "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"}, + {file = "filelock-3.12.3.tar.gz", hash = "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.11\""} + [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] [[package]] name = "flake8" @@ -892,13 +895,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co [[package]] name = "pluggy" -version = "1.2.0" +version = "1.3.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, - {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, ] [package.extras] @@ -1110,13 +1113,13 @@ plugins = ["importlib-metadata"] [[package]] name = "pyproject-api" -version = "1.5.3" +version = "1.6.1" description = "API to interact with the python pyproject.toml based projects" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pyproject_api-1.5.3-py3-none-any.whl", hash = "sha256:14cf09828670c7b08842249c1f28c8ee6581b872e893f81b62d5465bec41502f"}, - {file = "pyproject_api-1.5.3.tar.gz", hash = "sha256:ffb5b2d7cad43f5b2688ab490de7c4d3f6f15e0b819cb588c4b771567c9729eb"}, + {file = "pyproject_api-1.6.1-py3-none-any.whl", hash = "sha256:4c0116d60476b0786c88692cf4e325a9814965e2469c5998b830bba16b183675"}, + {file = "pyproject_api-1.6.1.tar.gz", hash = "sha256:1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"}, ] [package.dependencies] @@ -1124,8 +1127,8 @@ packaging = ">=23.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "importlib-metadata (>=6.6)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "setuptools (>=67.8)", "wheel (>=0.40)"] +docs = ["furo (>=2023.8.19)", "sphinx (<7.2)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "setuptools (>=68.1.2)", "wheel (>=0.41.2)"] [[package]] name = "pytest" @@ -1600,30 +1603,30 @@ files = [ [[package]] name = "tox" -version = "4.9.0" +version = "4.11.1" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.9.0-py3-none-any.whl", hash = "sha256:c80de60fe26f9a009b0a763888bf2099ccfbef50a0279a6b9f6de40eb4eb7457"}, - {file = "tox-4.9.0.tar.gz", hash = "sha256:9b6d38fe422599d084afd89375b4803f4bc1f8f16573c77c8fd8ffcc6938f1ff"}, + {file = "tox-4.11.1-py3-none-any.whl", hash = "sha256:da761b4a57ee2b92b5ce39f48ff723fc42d185bf2af508effb683214efa662ea"}, + {file = "tox-4.11.1.tar.gz", hash = "sha256:8a8cc94b7269f8e43dfc636eff2da4b33a199a4e575b5b086cc51aae24ac4262"}, ] [package.dependencies] cachetools = ">=5.3.1" chardet = ">=5.2" colorama = ">=0.4.6" -filelock = ">=3.12.2" +filelock = ">=3.12.3" packaging = ">=23.1" platformdirs = ">=3.10" -pluggy = ">=1.2" -pyproject-api = ">=1.5.3" +pluggy = ">=1.3" +pyproject-api = ">=1.6.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} virtualenv = ">=20.24.3" [package.extras] -docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.24)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.18)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.12)", "wheel (>=0.41.1)"] +docs = ["furo (>=2023.8.19)", "sphinx (>=7.2.4)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.24)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.18)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.12)", "wheel (>=0.41.2)"] [[package]] name = "typing-extensions" From 2c8d39b81179709850998b2fcf9fbb81a8103f10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 12:41:33 +0000 Subject: [PATCH 235/371] Bump pre-commit from 3.3.3 to 3.4.0 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.3.3 to 3.4.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v3.3.3...v3.4.0) --- updated-dependencies: - dependency-name: pre-commit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2e0deba..48d822b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -907,13 +907,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.3.3" +version = "3.4.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.8" files = [ - {file = "pre_commit-3.3.3-py2.py3-none-any.whl", hash = "sha256:10badb65d6a38caff29703362271d7dca483d01da88f9d7e05d0b97171c136cb"}, - {file = "pre_commit-3.3.3.tar.gz", hash = "sha256:a2256f489cd913d575c145132ae196fe335da32d91a8294b7afe6622335dd023"}, + {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, + {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, ] [package.dependencies] From 1cd8c0444e4ca848444788c0d2d286d2451569d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 13:04:40 +0000 Subject: [PATCH 236/371] Bump black from 23.7.0 to 23.9.1 Bumps [black](https://github.com/psf/black) from 23.7.0 to 23.9.1. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.7.0...23.9.1) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 60 +++++++++++++++++++++++++++++--------------------- pyproject.toml | 2 +- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/poetry.lock b/poetry.lock index 31f48d2..980427e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -81,33 +81,33 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "23.7.0" +version = "23.9.1" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, - {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, - {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, - {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, - {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, - {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, - {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, - {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, - {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, - {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, - {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, + {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, + {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, + {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, + {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, + {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, + {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, + {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, + {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, + {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, + {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, ] [package.dependencies] @@ -117,7 +117,7 @@ packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] @@ -704,6 +704,16 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -1697,4 +1707,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "b145d4cee2508348a2eaeddd3f5d3e947acc530c1ec96cecb88acc0916068b0d" +content-hash = "e25e37091de4313600f424b66e0e8440a032c2423c5edb4ec9cf48e45059558c" diff --git a/pyproject.toml b/pyproject.toml index 6936616..a5a8f91 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.5" isort = "^5.11.5" -black = "^23.7.0" +black = "^23.9.1" flynt = "^1.0" deptry = "^0.12.0" From e84fa165256e5abb9c4356d823e8d8e596299575 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 13:05:29 +0000 Subject: [PATCH 237/371] Bump tox from 4.11.1 to 4.11.3 Bumps [tox](https://github.com/tox-dev/tox) from 4.11.1 to 4.11.3. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.11.1...4.11.3) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 31f48d2..8bf829a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -704,6 +704,16 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -1603,13 +1613,13 @@ files = [ [[package]] name = "tox" -version = "4.11.1" +version = "4.11.3" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.11.1-py3-none-any.whl", hash = "sha256:da761b4a57ee2b92b5ce39f48ff723fc42d185bf2af508effb683214efa662ea"}, - {file = "tox-4.11.1.tar.gz", hash = "sha256:8a8cc94b7269f8e43dfc636eff2da4b33a199a4e575b5b086cc51aae24ac4262"}, + {file = "tox-4.11.3-py3-none-any.whl", hash = "sha256:599af5e5bb0cad0148ac1558a0b66f8fff219ef88363483b8d92a81e4246f28f"}, + {file = "tox-4.11.3.tar.gz", hash = "sha256:5039f68276461fae6a9452a3b2c7295798f00a0e92edcd9a3b78ba1a73577951"}, ] [package.dependencies] From a761a4abbde9aef28f1dff113a06f6286483a7d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:42:32 +0000 Subject: [PATCH 238/371] Bump pytest from 7.4.1 to 7.4.2 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.1 to 7.4.2. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.4.1...7.4.2) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 574d618..d20331b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1142,13 +1142,13 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes [[package]] name = "pytest" -version = "7.4.1" +version = "7.4.2" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.1-py3-none-any.whl", hash = "sha256:460c9a59b14e27c602eb5ece2e47bec99dc5fc5f6513cf924a7d03a578991b1f"}, - {file = "pytest-7.4.1.tar.gz", hash = "sha256:2f2301e797521b23e4d2585a0a3d7b5e50fdddaaf7e7d6773ea26ddb17c213ab"}, + {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, + {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, ] [package.dependencies] @@ -1707,4 +1707,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "e25e37091de4313600f424b66e0e8440a032c2423c5edb4ec9cf48e45059558c" +content-hash = "e0623333a7a6038f4ee596a1ffafd2b863f3002853ea1325ac5ae0e28d754a65" diff --git a/pyproject.toml b/pyproject.toml index a5a8f91..a4a18dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,7 +63,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^7.4.1" +pytest = "^7.4.2" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From 9fcfc5d574f2343cde6a982e6475a567a385e193 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 12:54:36 +0000 Subject: [PATCH 239/371] Bump importlib-resources from 6.0.1 to 6.1.0 Bumps [importlib-resources](https://github.com/python/importlib_resources) from 6.0.1 to 6.1.0. - [Release notes](https://github.com/python/importlib_resources/releases) - [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst) - [Commits](https://github.com/python/importlib_resources/compare/v6.0.1...v6.1.0) --- updated-dependencies: - dependency-name: importlib-resources dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index d20331b..e826837 100644 --- a/poetry.lock +++ b/poetry.lock @@ -516,21 +516,21 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "6.0.1" +version = "6.1.0" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.0.1-py3-none-any.whl", hash = "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf"}, - {file = "importlib_resources-6.0.1.tar.gz", hash = "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"}, + {file = "importlib_resources-6.1.0-py3-none-any.whl", hash = "sha256:aa50258bbfa56d4e33fbd8aa3ef48ded10d1735f11532b8df95388cc6bdb7e83"}, + {file = "importlib_resources-6.1.0.tar.gz", hash = "sha256:9d48dcccc213325e810fd723e7fbb45ccb39f6cf5c31f00cf2b965f5f10f3cb9"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] [[package]] name = "iniconfig" From 406fde39714e2654944694547604047280bb568c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 23:51:59 +0000 Subject: [PATCH 240/371] Bump urllib3 from 2.0.3 to 2.0.6 Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.3 to 2.0.6. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.3...2.0.6) --- updated-dependencies: - dependency-name: urllib3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index e826837..590b2d2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1651,13 +1651,13 @@ files = [ [[package]] name = "urllib3" -version = "2.0.3" +version = "2.0.6" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, - {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, + {file = "urllib3-2.0.6-py3-none-any.whl", hash = "sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2"}, + {file = "urllib3-2.0.6.tar.gz", hash = "sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"}, ] [package.extras] From 0d70bcb4ebdc6ccac829d8a13fc13c7fcc4aa89a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 5 Oct 2023 15:54:54 +0000 Subject: [PATCH 241/371] Read-only write-only spec test --- poetry.lock | 14 +++---- .../data/v3.0/read-only-write-only.yaml | 42 +++++++++++++++++++ .../integration/validation/test_validators.py | 1 + 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 tests/integration/data/v3.0/read-only-write-only.yaml diff --git a/poetry.lock b/poetry.lock index 590b2d2..06fa17d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -579,13 +579,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.19.0" +version = "4.19.1" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"}, - {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"}, + {file = "jsonschema-4.19.1-py3-none-any.whl", hash = "sha256:cd5f1f9ed9444e554b38ba003af06c0a8c2868131e56bfbef0550fb450c0330e"}, + {file = "jsonschema-4.19.1.tar.gz", hash = "sha256:ec84cc37cfa703ef7cd4928db24f9cb31428a5d0fa77747b8b51a847458e0bbf"}, ] [package.dependencies] @@ -830,17 +830,17 @@ setuptools = "*" [[package]] name = "openapi-schema-validator" -version = "0.6.0" +version = "0.6.2" description = "OpenAPI schema validation for Python" optional = false python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "openapi_schema_validator-0.6.0-py3-none-any.whl", hash = "sha256:9e95b95b621efec5936245025df0d6a7ffacd1551e91d09196b3053040c931d7"}, - {file = "openapi_schema_validator-0.6.0.tar.gz", hash = "sha256:921b7c1144b856ca3813e41ecff98a4050f7611824dfc5c6ead7072636af0520"}, + {file = "openapi_schema_validator-0.6.2-py3-none-any.whl", hash = "sha256:c4887c1347c669eb7cded9090f4438b710845cd0f90d1fb9e1b3303fb37339f8"}, + {file = "openapi_schema_validator-0.6.2.tar.gz", hash = "sha256:11a95c9c9017912964e3e5f2545a5b11c3814880681fcacfb73b1759bb4f2804"}, ] [package.dependencies] -jsonschema = ">=4.18.0,<5.0.0" +jsonschema = ">=4.19.1,<5.0.0" jsonschema-specifications = ">=2023.5.2,<2024.0.0" rfc3339-validator = "*" diff --git a/tests/integration/data/v3.0/read-only-write-only.yaml b/tests/integration/data/v3.0/read-only-write-only.yaml new file mode 100644 index 0000000..9af8465 --- /dev/null +++ b/tests/integration/data/v3.0/read-only-write-only.yaml @@ -0,0 +1,42 @@ +openapi: "3.0.0" +info: + title: Specification Containing readOnly + version: "0.1" +paths: + /users: + post: + operationId: createUser + requestBody: + description: Post data for creating a user + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/User' + responses: + default: + description: Create a user + content: + application/json: + schema: + $ref: '#/components/schemas/User' +components: + schemas: + User: + x-model: User + type: object + required: + - id + - name + properties: + id: + type: integer + format: int32 + readOnly: true + default: 1 + name: + type: string + hidden: + type: boolean + writeOnly: true + default: true \ No newline at end of file diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 5eacfd2..aef830b 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -65,6 +65,7 @@ def local_test_suite_file_path(self, test_file): "petstore-separate/spec/openapi.yaml", "parent-reference/openapi.yaml", "property-recursive.yaml", + "read-only-write-only.yaml", ], ) def test_valid(self, factory, validator_v30, spec_file): From ff0125242588ec057c2c31048ac983ef359946f1 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Thu, 5 Oct 2023 18:02:50 +0000 Subject: [PATCH 242/371] asdf ignored --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index f3d03de..615bc7a 100644 --- a/.gitignore +++ b/.gitignore @@ -97,6 +97,10 @@ ENV/ # mkdocs documentation /site +# asdf versions +.tool-versions +.default-python-packages + # mypy .mypy_cache/ From 5efb067bc38c7ec3b411b3ae79bb3ae569997574 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 6 Oct 2023 16:58:32 +0000 Subject: [PATCH 243/371] Validators refactor --- docs/python.rst | 16 +- openapi_spec_validator/__init__.py | 8 + openapi_spec_validator/__main__.py | 27 +- openapi_spec_validator/exceptions.py | 6 +- openapi_spec_validator/schemas/__init__.py | 10 + openapi_spec_validator/shortcuts.py | 44 +- openapi_spec_validator/validation/__init__.py | 67 ++- openapi_spec_validator/validation/caches.py | 65 +++ .../validation/decorators.py | 57 ++- openapi_spec_validator/validation/finders.py | 23 + openapi_spec_validator/validation/keywords.py | 424 ++++++++++++++++++ openapi_spec_validator/validation/proxies.py | 57 ++- .../validation/registries.py | 22 + openapi_spec_validator/validation/types.py | 5 + .../validation/validators.py | 421 +++++------------ tests/integration/conftest.py | 19 - tests/integration/test_main.py | 2 +- tests/integration/test_shortcuts.py | 29 +- .../integration/validation/test_exceptions.py | 66 ++- .../integration/validation/test_validators.py | 51 ++- 20 files changed, 941 insertions(+), 478 deletions(-) create mode 100644 openapi_spec_validator/validation/caches.py create mode 100644 openapi_spec_validator/validation/finders.py create mode 100644 openapi_spec_validator/validation/keywords.py create mode 100644 openapi_spec_validator/validation/registries.py create mode 100644 openapi_spec_validator/validation/types.py diff --git a/docs/python.rst b/docs/python.rst index bb13a26..f4b0d56 100644 --- a/docs/python.rst +++ b/docs/python.rst @@ -36,22 +36,22 @@ You can also validate spec from url: In order to explicitly validate a: -* Swagger / OpenAPI 2.0 spec, import ``openapi_v2_spec_validator`` -* OpenAPI 3.0 spec, import ``openapi_v30_spec_validator`` -* OpenAPI 3.1 spec, import ``openapi_v31_spec_validator`` +* Swagger / OpenAPI 2.0 spec, import ``OpenAPIV2SpecValidator`` +* OpenAPI 3.0 spec, import ``OpenAPIV30SpecValidator`` +* OpenAPI 3.1 spec, import ``OpenAPIV31SpecValidator`` -and pass the validator to ``validate_spec`` or ``validate_spec_url`` function: +and pass the validator class to ``validate_spec`` or ``validate_spec_url`` function: .. code:: python - validate_spec(spec_dict, validator=openapi_v31_spec_validator) + validate_spec(spec_dict, cls=OpenAPIV31SpecValidator) -You can also explicitly import ``openapi_v3_spec_validator`` which is a shortcut to the latest v3 release. +You can also explicitly import ``OpenAPIV3SpecValidator`` which is a shortcut to the latest v3 release. If you want to iterate through validation errors: .. code:: python - from openapi_spec_validator import openapi_v3_spec_validator + from openapi_spec_validator import OpenAPIV31SpecValidator - errors_iterator = openapi_v3_spec_validator.iter_errors(spec) + errors_iterator = OpenAPIV31SpecValidator(spec).iter_errors() diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 105a2b1..b968e78 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,6 +1,10 @@ """OpenAPI spec validator module.""" from openapi_spec_validator.shortcuts import validate_spec from openapi_spec_validator.shortcuts import validate_spec_url +from openapi_spec_validator.validation import OpenAPIV2SpecValidator +from openapi_spec_validator.validation import OpenAPIV3SpecValidator +from openapi_spec_validator.validation import OpenAPIV30SpecValidator +from openapi_spec_validator.validation import OpenAPIV31SpecValidator from openapi_spec_validator.validation import openapi_v2_spec_validator from openapi_spec_validator.validation import openapi_v3_spec_validator from openapi_spec_validator.validation import openapi_v30_spec_validator @@ -17,6 +21,10 @@ "openapi_v3_spec_validator", "openapi_v30_spec_validator", "openapi_v31_spec_validator", + "OpenAPIV2SpecValidator", + "OpenAPIV3SpecValidator", + "OpenAPIV30SpecValidator", + "OpenAPIV31SpecValidator", "validate_spec", "validate_spec_url", ] diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index c058b76..8a1f26a 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -9,10 +9,10 @@ from openapi_spec_validator.readers import read_from_filename from openapi_spec_validator.readers import read_from_stdin -from openapi_spec_validator.validation import openapi_spec_validator_proxy -from openapi_spec_validator.validation import openapi_v2_spec_validator -from openapi_spec_validator.validation import openapi_v30_spec_validator -from openapi_spec_validator.validation import openapi_v31_spec_validator +from openapi_spec_validator.shortcuts import get_validator_cls +from openapi_spec_validator.validation import OpenAPIV2SpecValidator +from openapi_spec_validator.validation import OpenAPIV30SpecValidator +from openapi_spec_validator.validation import OpenAPIV31SpecValidator logger = logging.getLogger(__name__) logging.basicConfig( @@ -91,19 +91,22 @@ def main(args: Optional[Sequence[str]] = None) -> None: # choose the validator validators = { - "detect": openapi_spec_validator_proxy, - "2.0": openapi_v2_spec_validator, - "3.0": openapi_v30_spec_validator, - "3.1": openapi_v31_spec_validator, + "2.0": OpenAPIV2SpecValidator, + "3.0": OpenAPIV30SpecValidator, + "3.1": OpenAPIV31SpecValidator, # backward compatibility - "3.0.0": openapi_v30_spec_validator, - "3.1.0": openapi_v31_spec_validator, + "3.0.0": OpenAPIV30SpecValidator, + "3.1.0": OpenAPIV31SpecValidator, } - validator = validators[args_parsed.schema] + if args_parsed.schema == "detect": + validator_cls = get_validator_cls(spec) + else: + validator_cls = validators[args_parsed.schema] + validator = validator_cls(spec, base_uri=base_uri) # validate try: - validator.validate(spec, base_uri=base_uri) + validator.validate() except ValidationError as exc: print_validationerror(filename, exc, args_parsed.errors) sys.exit(1) diff --git a/openapi_spec_validator/exceptions.py b/openapi_spec_validator/exceptions.py index 6a62f4e..bcfc17a 100644 --- a/openapi_spec_validator/exceptions.py +++ b/openapi_spec_validator/exceptions.py @@ -1,2 +1,6 @@ -class OpenAPISpecValidatorError(Exception): +class OpenAPIError(Exception): + pass + + +class OpenAPISpecValidatorError(OpenAPIError): pass diff --git a/openapi_spec_validator/schemas/__init__.py b/openapi_spec_validator/schemas/__init__.py index ec1b287..8141788 100644 --- a/openapi_spec_validator/schemas/__init__.py +++ b/openapi_spec_validator/schemas/__init__.py @@ -1,6 +1,8 @@ """OpenAIP spec validator schemas module.""" from functools import partial +from jsonschema.validators import Draft4Validator +from jsonschema.validators import Draft202012Validator from lazy_object_proxy import Proxy from openapi_spec_validator.schemas.utils import get_schema_content @@ -17,3 +19,11 @@ # alias to the latest v3 version schema_v3 = schema_v31 + +get_openapi_v2_schema_validator = partial(Draft4Validator, schema_v2) +get_openapi_v30_schema_validator = partial(Draft4Validator, schema_v30) +get_openapi_v31_schema_validator = partial(Draft202012Validator, schema_v31) + +openapi_v2_schema_validator = Proxy(get_openapi_v2_schema_validator) +openapi_v30_schema_validator = Proxy(get_openapi_v30_schema_validator) +openapi_v31_schema_validator = Proxy(get_openapi_v31_schema_validator) diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 121411f..77ee0d8 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -1,27 +1,55 @@ """OpenAPI spec validator shortcuts module.""" -from typing import Any -from typing import Hashable +import warnings from typing import Mapping from typing import Optional +from typing import Type from jsonschema_spec.handlers import all_urls_handler +from jsonschema_spec.typing import Schema -from openapi_spec_validator.validation import openapi_spec_validator_proxy +from openapi_spec_validator.validation import OpenAPIV2SpecValidator +from openapi_spec_validator.validation import OpenAPIV30SpecValidator +from openapi_spec_validator.validation import OpenAPIV31SpecValidator +from openapi_spec_validator.validation.finders import SpecFinder +from openapi_spec_validator.validation.finders import SpecVersion from openapi_spec_validator.validation.protocols import SupportsValidation +from openapi_spec_validator.validation.types import SpecValidatorType +from openapi_spec_validator.validation.validators import SpecValidator + +SPECS: Mapping[SpecVersion, SpecValidatorType] = { + SpecVersion("swagger", "2.0"): OpenAPIV2SpecValidator, + SpecVersion("openapi", "3.0"): OpenAPIV30SpecValidator, + SpecVersion("openapi", "3.1"): OpenAPIV31SpecValidator, +} + + +def get_validator_cls(spec: Schema) -> SpecValidatorType: + return SpecFinder(SPECS).find(spec) def validate_spec( - spec: Mapping[Hashable, Any], + spec: Schema, base_uri: str = "", - validator: SupportsValidation = openapi_spec_validator_proxy, + validator: Optional[SupportsValidation] = None, + cls: Optional[SpecValidatorType] = None, spec_url: Optional[str] = None, ) -> None: - return validator.validate(spec, base_uri=base_uri, spec_url=spec_url) + if validator is not None: + warnings.warn( + "validator parameter is deprecated. Use cls instead.", + DeprecationWarning, + ) + return validator.validate(spec, base_uri=base_uri, spec_url=spec_url) + if cls is None: + cls = get_validator_cls(spec) + v = cls(spec) + return v.validate() def validate_spec_url( spec_url: str, - validator: SupportsValidation = openapi_spec_validator_proxy, + validator: Optional[SupportsValidation] = None, + cls: Optional[Type[SpecValidator]] = None, ) -> None: spec = all_urls_handler(spec_url) - return validator.validate(spec, base_uri=spec_url) + return validate_spec(spec, base_uri=spec_url, validator=validator, cls=cls) diff --git a/openapi_spec_validator/validation/__init__.py b/openapi_spec_validator/validation/__init__.py index a889b96..3450616 100644 --- a/openapi_spec_validator/validation/__init__.py +++ b/openapi_spec_validator/validation/__init__.py @@ -1,19 +1,12 @@ -from functools import partial - -from jsonschema.validators import Draft4Validator -from jsonschema.validators import Draft202012Validator -from jsonschema_spec.handlers import default_handlers -from lazy_object_proxy import Proxy -from openapi_schema_validator import oas30_format_checker -from openapi_schema_validator import oas31_format_checker -from openapi_schema_validator.validators import OAS30Validator -from openapi_schema_validator.validators import OAS31Validator - -from openapi_spec_validator.schemas import schema_v2 -from openapi_spec_validator.schemas import schema_v30 -from openapi_spec_validator.schemas import schema_v31 from openapi_spec_validator.validation.proxies import DetectValidatorProxy -from openapi_spec_validator.validation.validators import SpecValidator +from openapi_spec_validator.validation.proxies import SpecValidatorProxy +from openapi_spec_validator.validation.validators import OpenAPIV2SpecValidator +from openapi_spec_validator.validation.validators import ( + OpenAPIV30SpecValidator, +) +from openapi_spec_validator.validation.validators import ( + OpenAPIV31SpecValidator, +) __all__ = [ "openapi_v2_spec_validator", @@ -21,46 +14,36 @@ "openapi_v30_spec_validator", "openapi_v31_spec_validator", "openapi_spec_validator_proxy", + "OpenAPIV2SpecValidator", + "OpenAPIV3SpecValidator", + "OpenAPIV30SpecValidator", + "OpenAPIV31SpecValidator", ] # v2.0 spec -get_openapi_v2_schema_validator = partial(Draft4Validator, schema_v2) -openapi_v2_schema_validator = Proxy(get_openapi_v2_schema_validator) -get_openapi_v2_spec_validator = partial( - SpecValidator, - openapi_v2_schema_validator, - OAS30Validator, - oas30_format_checker, - resolver_handlers=default_handlers, +openapi_v2_spec_validator = SpecValidatorProxy( + OpenAPIV2SpecValidator, + deprecated="openapi_v2_spec_validator", + use="OpenAPIV2SpecValidator", ) -openapi_v2_spec_validator = Proxy(get_openapi_v2_spec_validator) # v3.0 spec -get_openapi_v30_schema_validator = partial(Draft4Validator, schema_v30) -openapi_v30_schema_validator = Proxy(get_openapi_v30_schema_validator) -get_openapi_v30_spec_validator = partial( - SpecValidator, - openapi_v30_schema_validator, - OAS30Validator, - oas30_format_checker, - resolver_handlers=default_handlers, +openapi_v30_spec_validator = SpecValidatorProxy( + OpenAPIV30SpecValidator, + deprecated="openapi_v30_spec_validator", + use="OpenAPIV30SpecValidator", ) -openapi_v30_spec_validator = Proxy(get_openapi_v30_spec_validator) # v3.1 spec -get_openapi_v31_schema_validator = partial(Draft202012Validator, schema_v31) -openapi_v31_schema_validator = Proxy(get_openapi_v31_schema_validator) -get_openapi_v31_spec_validator = partial( - SpecValidator, - openapi_v31_schema_validator, - OAS31Validator, - oas31_format_checker, - resolver_handlers=default_handlers, +openapi_v31_spec_validator = SpecValidatorProxy( + OpenAPIV31SpecValidator, + deprecated="openapi_v31_spec_validator", + use="OpenAPIV31SpecValidator", ) -openapi_v31_spec_validator = Proxy(get_openapi_v31_spec_validator) # alias to the latest v3 version openapi_v3_spec_validator = openapi_v31_spec_validator +OpenAPIV3SpecValidator = OpenAPIV31SpecValidator # detect version spec openapi_spec_validator_proxy = DetectValidatorProxy( diff --git a/openapi_spec_validator/validation/caches.py b/openapi_spec_validator/validation/caches.py new file mode 100644 index 0000000..acc6b36 --- /dev/null +++ b/openapi_spec_validator/validation/caches.py @@ -0,0 +1,65 @@ +from typing import Generic +from typing import Iterable +from typing import Iterator +from typing import List +from typing import TypeVar + +T = TypeVar("T") + + +class CachedIterable(Iterable[T], Generic[T]): + """ + A cache-implementing wrapper for an iterator. + Note that this is class is `Iterable[T]` rather than `Iterator[T]`. + It should not be iterated by his own. + """ + + cache: List[T] + iter: Iterator[T] + completed: bool + + def __init__(self, it: Iterator[T]): + self.iter = iter(it) + self.cache = list() + self.completed = False + + def __iter__(self) -> Iterator[T]: + return CachedIterator(self) + + def __next__(self) -> T: + try: + item = next(self.iter) + except StopIteration: + self.completed = True + raise + else: + self.cache.append(item) + return item + + def __del__(self) -> None: + del self.cache + + +class CachedIterator(Iterator[T], Generic[T]): + """ + A cache-using wrapper for an iterator. + This class is only constructed by `CachedIterable` and cannot be used without it. + """ + + parent: CachedIterable[T] + position: int + + def __init__(self, parent: CachedIterable[T]): + self.parent = parent + self.position = 0 + + def __next__(self) -> T: + if self.position < len(self.parent.cache): + item = self.parent.cache[self.position] + elif self.parent.completed: + raise StopIteration + else: + item = next(self.parent) + + self.position += 1 + return item diff --git a/openapi_spec_validator/validation/decorators.py b/openapi_spec_validator/validation/decorators.py index 988b3b8..191c035 100644 --- a/openapi_spec_validator/validation/decorators.py +++ b/openapi_spec_validator/validation/decorators.py @@ -3,27 +3,54 @@ from functools import wraps from typing import Any from typing import Callable +from typing import Iterable from typing import Iterator -from typing import Type +from typing import TypeVar from jsonschema.exceptions import ValidationError +from openapi_spec_validator.validation.caches import CachedIterable +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError + +Args = TypeVar("Args") +T = TypeVar("T") + log = logging.getLogger(__name__) -class ValidationErrorWrapper: - def __init__(self, error_class: Type[ValidationError]): - self.error_class = error_class +def wraps_errors( + func: Callable[..., Any] +) -> Callable[..., Iterator[ValidationError]]: + @wraps(func) + def wrapper(*args: Any, **kwds: Any) -> Iterator[ValidationError]: + errors = func(*args, **kwds) + for err in errors: + if not isinstance(err, OpenAPIValidationError): + # wrap other exceptions with library specific version + yield OpenAPIValidationError.create_from(err) + else: + yield err + + return wrapper + + +def wraps_cached_iter( + func: Callable[[Args], Iterator[T]] +) -> Callable[[Args], CachedIterable[T]]: + @wraps(func) + def wrapper(*args: Any, **kwargs: Any) -> CachedIterable[T]: + result = func(*args, **kwargs) + return CachedIterable(result) + + return wrapper + - def __call__(self, f: Callable[..., Any]) -> Callable[..., Any]: - @wraps(f) - def wrapper(*args: Any, **kwds: Any) -> Iterator[ValidationError]: - errors = f(*args, **kwds) - for err in errors: - if not isinstance(err, self.error_class): - # wrap other exceptions with library specific version - yield self.error_class.create_from(err) - else: - yield err +def unwraps_iter( + func: Callable[[Args], Iterable[T]] +) -> Callable[[Args], Iterator[T]]: + @wraps(func) + def wrapper(*args: Any, **kwargs: Any) -> Iterator[T]: + result = func(*args, **kwargs) + return iter(result) - return wrapper + return wrapper diff --git a/openapi_spec_validator/validation/finders.py b/openapi_spec_validator/validation/finders.py new file mode 100644 index 0000000..74d2573 --- /dev/null +++ b/openapi_spec_validator/validation/finders.py @@ -0,0 +1,23 @@ +from typing import Mapping +from typing import NamedTuple + +from jsonschema_spec.typing import Schema + +from openapi_spec_validator.validation.exceptions import ValidatorDetectError +from openapi_spec_validator.validation.types import SpecValidatorType + + +class SpecVersion(NamedTuple): + name: str + version: str + + +class SpecFinder: + def __init__(self, specs: Mapping[SpecVersion, SpecValidatorType]) -> None: + self.specs = specs + + def find(self, spec: Schema) -> SpecValidatorType: + for v, classes in self.specs.items(): + if v.name in spec and spec[v.name].startswith(v.version): + return classes + raise ValidatorDetectError("Spec schema version not detected") diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py new file mode 100644 index 0000000..125d3ad --- /dev/null +++ b/openapi_spec_validator/validation/keywords.py @@ -0,0 +1,424 @@ +import string +from typing import TYPE_CHECKING +from typing import Any +from typing import Iterator +from typing import List +from typing import Optional +from typing import cast + +from jsonschema._format import FormatChecker +from jsonschema.exceptions import ValidationError +from jsonschema.protocols import Validator +from jsonschema_spec.paths import SchemaPath +from openapi_schema_validator import oas30_format_checker +from openapi_schema_validator import oas31_format_checker +from openapi_schema_validator.validators import OAS30Validator +from openapi_schema_validator.validators import OAS31Validator + +from openapi_spec_validator.validation.exceptions import ( + DuplicateOperationIDError, +) +from openapi_spec_validator.validation.exceptions import ExtraParametersError +from openapi_spec_validator.validation.exceptions import ( + ParameterDuplicateError, +) +from openapi_spec_validator.validation.exceptions import ( + UnresolvableParameterError, +) + +if TYPE_CHECKING: + from openapi_spec_validator.validation.registries import ( + KeywordValidatorRegistry, + ) + + +class KeywordValidator: + def __init__(self, registry: "KeywordValidatorRegistry"): + self.registry = registry + + +class ValueValidator(KeywordValidator): + value_validator_cls: Validator = NotImplemented + value_validator_format_checker: FormatChecker = NotImplemented + + def __call__( + self, schema: SchemaPath, value: Any + ) -> Iterator[ValidationError]: + with schema.resolve() as resolved: + value_validator = self.value_validator_cls( + resolved.contents, + _resolver=resolved.resolver, + format_checker=self.value_validator_format_checker, + ) + yield from value_validator.iter_errors(value) + + +class OpenAPIV30ValueValidator(ValueValidator): + value_validator_cls = OAS30Validator + value_validator_format_checker = oas30_format_checker + + +class OpenAPIV31ValueValidator(ValueValidator): + value_validator_cls = OAS31Validator + value_validator_format_checker = oas31_format_checker + + +class SchemaValidator(KeywordValidator): + def __init__(self, registry: "KeywordValidatorRegistry"): + super().__init__(registry) + + self.schema_ids_registry: Optional[List[int]] = [] + + @property + def default_validator(self) -> ValueValidator: + return cast(ValueValidator, self.registry["default"]) + + def __call__( + self, schema: SchemaPath, require_properties: bool = True + ) -> Iterator[ValidationError]: + if not hasattr(schema.content(), "__getitem__"): + return + + assert self.schema_ids_registry is not None + schema_id = id(schema.content()) + if schema_id in self.schema_ids_registry: + return + self.schema_ids_registry.append(schema_id) + + nested_properties = [] + if "allOf" in schema: + all_of = schema / "allOf" + for inner_schema in all_of: + yield from self( + inner_schema, + require_properties=False, + ) + if "properties" not in inner_schema: + continue + inner_schema_props = inner_schema / "properties" + inner_schema_props_keys = inner_schema_props.keys() + nested_properties += list(inner_schema_props_keys) + + if "anyOf" in schema: + any_of = schema / "anyOf" + for inner_schema in any_of: + yield from self( + inner_schema, + require_properties=False, + ) + + if "oneOf" in schema: + one_of = schema / "oneOf" + for inner_schema in one_of: + yield from self( + inner_schema, + require_properties=False, + ) + + if "not" in schema: + not_schema = schema / "not" + yield from self( + not_schema, + require_properties=False, + ) + + if "items" in schema: + array_schema = schema / "items" + yield from self( + array_schema, + require_properties=False, + ) + + if "properties" in schema: + props = schema / "properties" + for _, prop_schema in props.items(): + yield from self( + prop_schema, + require_properties=False, + ) + + required = schema.getkey("required", []) + properties = schema.get("properties", {}).keys() + if "allOf" in schema: + extra_properties = list( + set(required) - set(properties) - set(nested_properties) + ) + else: + extra_properties = list(set(required) - set(properties)) + + if extra_properties and require_properties: + yield ExtraParametersError( + f"Required list has not defined properties: {extra_properties}" + ) + + if "default" in schema: + default = schema["default"] + nullable = schema.get("nullable", False) + if default is not None or nullable is not True: + yield from self.default_validator(schema, default) + + +class SchemasValidator(KeywordValidator): + @property + def schema_validator(self) -> SchemaValidator: + return cast(SchemaValidator, self.registry["schema"]) + + def __call__(self, schemas: SchemaPath) -> Iterator[ValidationError]: + for _, schema in schemas.items(): + yield from self.schema_validator(schema) + + +class ParameterValidator(KeywordValidator): + @property + def schema_validator(self) -> SchemaValidator: + return cast(SchemaValidator, self.registry["schema"]) + + def __call__(self, parameter: SchemaPath) -> Iterator[ValidationError]: + if "schema" in parameter: + schema = parameter / "schema" + yield from self.schema_validator(schema) + + +class OpenAPIV2ParameterValidator(ParameterValidator): + @property + def default_validator(self) -> ValueValidator: + return cast(ValueValidator, self.registry["default"]) + + def __call__(self, parameter: SchemaPath) -> Iterator[ValidationError]: + yield from super().__call__(parameter) + + if "default" in parameter: + # only possible in swagger 2.0 + default = parameter.getkey("default") + if default is not None: + yield from self.default_validator(parameter, default) + + +class ParametersValidator(KeywordValidator): + @property + def parameter_validator(self) -> ParameterValidator: + return cast(ParameterValidator, self.registry["parameter"]) + + def __call__(self, parameters: SchemaPath) -> Iterator[ValidationError]: + seen = set() + for parameter in parameters: + yield from self.parameter_validator(parameter) + + key = (parameter["name"], parameter["in"]) + if key in seen: + yield ParameterDuplicateError( + f"Duplicate parameter `{parameter['name']}`" + ) + seen.add(key) + + +class MediaTypeValidator(KeywordValidator): + @property + def schema_validator(self) -> SchemaValidator: + return cast(SchemaValidator, self.registry["schema"]) + + def __call__( + self, mimetype: str, media_type: SchemaPath + ) -> Iterator[ValidationError]: + if "schema" in media_type: + schema = media_type / "schema" + yield from self.schema_validator(schema) + + +class ContentValidator(KeywordValidator): + @property + def media_type_validator(self) -> MediaTypeValidator: + return cast(MediaTypeValidator, self.registry["mediaType"]) + + def __call__(self, content: SchemaPath) -> Iterator[ValidationError]: + for mimetype, media_type in content.items(): + yield from self.media_type_validator(mimetype, media_type) + + +class ResponseValidator(KeywordValidator): + def __call__( + self, response_code: str, response: SchemaPath + ) -> Iterator[ValidationError]: + raise NotImplementedError + + +class OpenAPIV2ResponseValidator(ResponseValidator): + @property + def schema_validator(self) -> SchemaValidator: + return cast(SchemaValidator, self.registry["schema"]) + + def __call__( + self, response_code: str, response: SchemaPath + ) -> Iterator[ValidationError]: + # openapi 2 + if "schema" in response: + schema = response / "schema" + yield from self.schema_validator(schema) + + +class OpenAPIV3ResponseValidator(ResponseValidator): + @property + def content_validator(self) -> ContentValidator: + return cast(ContentValidator, self.registry["content"]) + + def __call__( + self, response_code: str, response: SchemaPath + ) -> Iterator[ValidationError]: + # openapi 3 + if "content" in response: + content = response / "content" + yield from self.content_validator(content) + + +class ResponsesValidator(KeywordValidator): + @property + def response_validator(self) -> ResponseValidator: + return cast(ResponseValidator, self.registry["response"]) + + def __call__(self, responses: SchemaPath) -> Iterator[ValidationError]: + for response_code, response in responses.items(): + yield from self.response_validator(response_code, response) + + +class OperationValidator(KeywordValidator): + def __init__(self, registry: "KeywordValidatorRegistry"): + super().__init__(registry) + + self.operation_ids_registry: Optional[List[str]] = [] + + @property + def responses_validator(self) -> ResponsesValidator: + return cast(ResponsesValidator, self.registry["responses"]) + + @property + def parameters_validator(self) -> ParametersValidator: + return cast(ParametersValidator, self.registry["parameters"]) + + def __call__( + self, + url: str, + name: str, + operation: SchemaPath, + path_parameters: Optional[SchemaPath], + ) -> Iterator[ValidationError]: + assert self.operation_ids_registry is not None + + operation_id = operation.getkey("operationId") + if ( + operation_id is not None + and operation_id in self.operation_ids_registry + ): + yield DuplicateOperationIDError( + f"Operation ID '{operation_id}' for '{name}' in '{url}' is not unique" + ) + self.operation_ids_registry.append(operation_id) + + if "responses" in operation: + responses = operation / "responses" + yield from self.responses_validator(responses) + + names = [] + + parameters = None + if "parameters" in operation: + parameters = operation / "parameters" + yield from self.parameters_validator(parameters) + names += list(self._get_path_param_names(parameters)) + + if path_parameters is not None: + names += list(self._get_path_param_names(path_parameters)) + + all_params = list(set(names)) + + for path in self._get_path_params_from_url(url): + if path not in all_params: + yield UnresolvableParameterError( + "Path parameter '{}' for '{}' operation in '{}' " + "was not resolved".format(path, name, url) + ) + return + + def _get_path_param_names(self, params: SchemaPath) -> Iterator[str]: + for param in params: + if param["in"] == "path": + yield param["name"] + + def _get_path_params_from_url(self, url: str) -> Iterator[str]: + formatter = string.Formatter() + path_params = [item[1] for item in formatter.parse(url)] + return filter(None, path_params) + + +class PathValidator(KeywordValidator): + OPERATIONS = [ + "get", + "put", + "post", + "delete", + "options", + "head", + "patch", + "trace", + ] + + @property + def parameters_validator(self) -> ParametersValidator: + return cast(ParametersValidator, self.registry["parameters"]) + + @property + def operation_validator(self) -> OperationValidator: + return cast(OperationValidator, self.registry["operation"]) + + def __call__( + self, url: str, path_item: SchemaPath + ) -> Iterator[ValidationError]: + parameters = None + if "parameters" in path_item: + parameters = path_item / "parameters" + yield from self.parameters_validator(parameters) + + for field_name, operation in path_item.items(): + if field_name not in self.OPERATIONS: + continue + + yield from self.operation_validator( + url, field_name, operation, parameters + ) + + +class PathsValidator(KeywordValidator): + @property + def path_validator(self) -> PathValidator: + return cast(PathValidator, self.registry["path"]) + + def __call__(self, paths: SchemaPath) -> Iterator[ValidationError]: + for url, path_item in paths.items(): + yield from self.path_validator(url, path_item) + + +class ComponentsValidator(KeywordValidator): + @property + def schemas_validator(self) -> SchemasValidator: + return cast(SchemasValidator, self.registry["schemas"]) + + def __call__(self, components: SchemaPath) -> Iterator[ValidationError]: + schemas = components.get("schemas", {}) + yield from self.schemas_validator(schemas) + + +class RootValidator(KeywordValidator): + @property + def paths_validator(self) -> PathsValidator: + return cast(PathsValidator, self.registry["paths"]) + + @property + def components_validator(self) -> ComponentsValidator: + return cast(ComponentsValidator, self.registry["components"]) + + def __call__(self, spec: SchemaPath) -> Iterator[ValidationError]: + if "paths" in spec: + paths = spec / "paths" + yield from self.paths_validator(paths) + if "components" in spec: + components = spec / "components" + yield from self.components_validator(components) diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 372c6bf..1ab7185 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -1,4 +1,5 @@ """OpenAPI spec validator validation proxies module.""" +import warnings from typing import Any from typing import Hashable from typing import Iterator @@ -6,16 +7,62 @@ from typing import Optional from typing import Tuple +from jsonschema.exceptions import ValidationError +from jsonschema_spec.typing import Schema + from openapi_spec_validator.validation.exceptions import OpenAPIValidationError from openapi_spec_validator.validation.exceptions import ValidatorDetectError -from openapi_spec_validator.validation.validators import SpecValidator +from openapi_spec_validator.validation.types import SpecValidatorType + + +class SpecValidatorProxy: + def __init__( + self, + cls: SpecValidatorType, + deprecated: str = "SpecValidator", + use: Optional[str] = None, + ): + self.cls = cls + + self.deprecated = deprecated + self.use = use or self.cls.__name__ + + def validate( + self, + schema: Schema, + base_uri: str = "", + spec_url: Optional[str] = None, + ) -> None: + for err in self.iter_errors( + schema, + base_uri=base_uri, + spec_url=spec_url, + ): + raise err + + def is_valid(self, schema: Schema) -> bool: + error = next(self.iter_errors(schema), None) + return error is None + + def iter_errors( + self, + schema: Schema, + base_uri: str = "", + spec_url: Optional[str] = None, + ) -> Iterator[ValidationError]: + warnings.warn( + f"{self.deprecated} is deprecated. Use {self.use} instead.", + DeprecationWarning, + ) + validator = self.cls(schema, base_uri=base_uri, spec_url=spec_url) + return validator.iter_errors() class DetectValidatorProxy: - def __init__(self, choices: Mapping[Tuple[str, str], SpecValidator]): + def __init__(self, choices: Mapping[Tuple[str, str], SpecValidatorProxy]): self.choices = choices - def detect(self, instance: Mapping[Hashable, Any]) -> SpecValidator: + def detect(self, instance: Mapping[Hashable, Any]) -> SpecValidatorProxy: for (key, value), validator in self.choices.items(): if key in instance and instance[key].startswith(value): return validator @@ -44,6 +91,10 @@ def iter_errors( base_uri: str = "", spec_url: Optional[str] = None, ) -> Iterator[OpenAPIValidationError]: + warnings.warn( + "openapi_spec_validator_proxy is deprecated.", + DeprecationWarning, + ) validator = self.detect(instance) yield from validator.iter_errors( instance, base_uri=base_uri, spec_url=spec_url diff --git a/openapi_spec_validator/validation/registries.py b/openapi_spec_validator/validation/registries.py new file mode 100644 index 0000000..b9ddc5e --- /dev/null +++ b/openapi_spec_validator/validation/registries.py @@ -0,0 +1,22 @@ +from __future__ import annotations + +from typing import DefaultDict +from typing import Mapping +from typing import Type + +from openapi_spec_validator.validation.keywords import KeywordValidator + + +class KeywordValidatorRegistry(DefaultDict[str, KeywordValidator]): + def __init__( + self, keyword_validators: Mapping[str, Type[KeywordValidator]] + ): + super().__init__() + self.keyword_validators = keyword_validators + + def __missing__(self, keyword: str) -> KeywordValidator: + if keyword not in self.keyword_validators: + raise KeyError(keyword) + cls = self.keyword_validators[keyword] + self[keyword] = cls(self) + return self[keyword] diff --git a/openapi_spec_validator/validation/types.py b/openapi_spec_validator/validation/types.py new file mode 100644 index 0000000..90d83ba --- /dev/null +++ b/openapi_spec_validator/validation/types.py @@ -0,0 +1,5 @@ +from typing import Type + +from openapi_spec_validator.validation.validators import SpecValidator + +SpecValidatorType = Type[SpecValidator] diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index e7aa299..a789d16 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -1,352 +1,153 @@ """OpenAPI spec validator validation validators module.""" import logging -import string import warnings -from typing import Any +from functools import lru_cache from typing import Iterator from typing import List +from typing import Mapping from typing import Optional from typing import Type +from typing import cast -from jsonschema._format import FormatChecker from jsonschema.exceptions import ValidationError from jsonschema.protocols import Validator from jsonschema_spec.handlers import default_handlers from jsonschema_spec.paths import SchemaPath -from jsonschema_spec.typing import ResolverHandlers from jsonschema_spec.typing import Schema -from openapi_spec_validator.validation.decorators import ValidationErrorWrapper -from openapi_spec_validator.validation.exceptions import ( - DuplicateOperationIDError, -) -from openapi_spec_validator.validation.exceptions import ExtraParametersError -from openapi_spec_validator.validation.exceptions import OpenAPIValidationError -from openapi_spec_validator.validation.exceptions import ( - ParameterDuplicateError, -) -from openapi_spec_validator.validation.exceptions import ( - UnresolvableParameterError, +from openapi_spec_validator.schemas import openapi_v2_schema_validator +from openapi_spec_validator.schemas import openapi_v30_schema_validator +from openapi_spec_validator.schemas import openapi_v31_schema_validator +from openapi_spec_validator.validation import keywords +from openapi_spec_validator.validation.decorators import unwraps_iter +from openapi_spec_validator.validation.decorators import wraps_cached_iter +from openapi_spec_validator.validation.decorators import wraps_errors +from openapi_spec_validator.validation.registries import ( + KeywordValidatorRegistry, ) log = logging.getLogger(__name__) -wraps_errors = ValidationErrorWrapper(OpenAPIValidationError) - class SpecValidator: - OPERATIONS = [ - "get", - "put", - "post", - "delete", - "options", - "head", - "patch", - "trace", - ] + resolver_handlers = default_handlers + keyword_validators: Mapping[str, Type[keywords.KeywordValidator]] = { + "__root__": keywords.RootValidator, + } + root_keywords: List[str] = [] + schema_validator: Validator = NotImplemented def __init__( - self, - schema_validator: Validator, - value_validator_class: Type[Validator], - value_validator_format_checker: FormatChecker, - resolver_handlers: ResolverHandlers = default_handlers, - ): - self.schema_validator = schema_validator - self.value_validator_class = value_validator_class - self.value_validator_format_checker = value_validator_format_checker - self.resolver_handlers = resolver_handlers - - self.operation_ids_registry: Optional[List[str]] = None - self.schema_ids_registry: Optional[List[int]] = None - - def validate( self, schema: Schema, base_uri: str = "", spec_url: Optional[str] = None, ) -> None: - for err in self.iter_errors( - schema, - base_uri=base_uri, - spec_url=spec_url, - ): - raise err - - def is_valid(self, schema: Schema) -> bool: - error = next(self.iter_errors(schema), None) - return error is None - - @wraps_errors - def iter_errors( - self, - schema: Schema, - base_uri: str = "", - spec_url: Optional[str] = None, - ) -> Iterator[ValidationError]: + self.schema = schema if spec_url is not None: warnings.warn( "spec_url parameter is deprecated. " "Use base_uri instead.", DeprecationWarning, ) base_uri = spec_url + self.base_uri = base_uri - self.operation_ids_registry = [] - self.schema_ids_registry = [] - - yield from self.schema_validator.iter_errors(schema) - - spec = SchemaPath.from_dict( - schema, - base_uri=base_uri, + self.spec = SchemaPath.from_dict( + self.schema, + base_uri=self.base_uri, handlers=self.resolver_handlers, ) - if "paths" in spec: - paths = spec / "paths" - yield from self._iter_paths_errors(paths) - - if "components" in spec: - components = spec / "components" - yield from self._iter_components_errors(components) - - def _iter_paths_errors( - self, paths: SchemaPath - ) -> Iterator[ValidationError]: - for url, path_item in paths.items(): - yield from self._iter_path_errors(url, path_item) - - def _iter_path_errors( - self, url: str, path_item: SchemaPath - ) -> Iterator[ValidationError]: - parameters = None - if "parameters" in path_item: - parameters = path_item / "parameters" - yield from self._iter_parameters_errors(parameters) - - for field_name, operation in path_item.items(): - if field_name not in self.OPERATIONS: - continue - - yield from self._iter_operation_errors( - url, field_name, operation, parameters - ) - - def _iter_operation_errors( - self, - url: str, - name: str, - operation: SchemaPath, - path_parameters: Optional[SchemaPath], - ) -> Iterator[ValidationError]: - assert self.operation_ids_registry is not None - - operation_id = operation.getkey("operationId") - if ( - operation_id is not None - and operation_id in self.operation_ids_registry - ): - yield DuplicateOperationIDError( - f"Operation ID '{operation_id}' for '{name}' in '{url}' is not unique" - ) - self.operation_ids_registry.append(operation_id) - - if "responses" in operation: - responses = operation / "responses" - yield from self._iter_responses_errors(responses) - - names = [] - - parameters = None - if "parameters" in operation: - parameters = operation / "parameters" - yield from self._iter_parameters_errors(parameters) - names += list(self._get_path_param_names(parameters)) - - if path_parameters is not None: - names += list(self._get_path_param_names(path_parameters)) - - all_params = list(set(names)) - for path in self._get_path_params_from_url(url): - if path not in all_params: - yield UnresolvableParameterError( - "Path parameter '{}' for '{}' operation in '{}' " - "was not resolved".format(path, name, url) - ) - return - - def _iter_responses_errors( - self, responses: SchemaPath - ) -> Iterator[ValidationError]: - for response_code, response in responses.items(): - yield from self._iter_response_errors(response_code, response) - - def _iter_response_errors( - self, response_code: str, response: SchemaPath - ) -> Iterator[ValidationError]: - # openapi 2 - if "schema" in response: - schema = response / "schema" - yield from self._iter_schema_errors(schema) - # openapi 3 - if "content" in response: - content = response / "content" - yield from self._iter_content_errors(content) - - def _iter_content_errors( - self, content: SchemaPath - ) -> Iterator[ValidationError]: - for mimetype, media_type in content.items(): - yield from self._iter_media_type_errors(mimetype, media_type) - - def _iter_media_type_errors( - self, mimetype: str, media_type: SchemaPath - ) -> Iterator[ValidationError]: - if "schema" in media_type: - schema = media_type / "schema" - yield from self._iter_schema_errors(schema) - - def _get_path_param_names(self, params: SchemaPath) -> Iterator[str]: - for param in params: - if param["in"] == "path": - yield param["name"] - - def _get_path_params_from_url(self, url: str) -> Iterator[str]: - formatter = string.Formatter() - path_params = [item[1] for item in formatter.parse(url)] - return filter(None, path_params) - - def _iter_parameters_errors( - self, parameters: SchemaPath - ) -> Iterator[ValidationError]: - seen = set() - for parameter in parameters: - yield from self._iter_parameter_errors(parameter) - - key = (parameter["name"], parameter["in"]) - if key in seen: - yield ParameterDuplicateError( - f"Duplicate parameter `{parameter['name']}`" - ) - seen.add(key) - - def _iter_parameter_errors( - self, parameter: SchemaPath - ) -> Iterator[ValidationError]: - if "schema" in parameter: - schema = parameter / "schema" - yield from self._iter_schema_errors(schema) - - if "default" in parameter: - # only possible in swagger 2.0 - default = parameter.getkey("default") - if default is not None: - yield from self._iter_value_errors(parameter, default) - - def _iter_value_errors( - self, schema: SchemaPath, value: Any - ) -> Iterator[ValidationError]: - with schema.resolve() as resolved: - validator = self.value_validator_class( - resolved.contents, - _resolver=resolved.resolver, - format_checker=self.value_validator_format_checker, - ) - yield from validator.iter_errors(value) - - def _iter_schema_errors( - self, schema: SchemaPath, require_properties: bool = True - ) -> Iterator[ValidationError]: - if not hasattr(schema.content(), "__getitem__"): - return - - assert self.schema_ids_registry is not None - schema_id = id(schema.content()) - if schema_id in self.schema_ids_registry: - return - self.schema_ids_registry.append(schema_id) - - nested_properties = [] - if "allOf" in schema: - all_of = schema / "allOf" - for inner_schema in all_of: - yield from self._iter_schema_errors( - inner_schema, - require_properties=False, - ) - if "properties" not in inner_schema: - continue - inner_schema_props = inner_schema / "properties" - inner_schema_props_keys = inner_schema_props.keys() - nested_properties += list(inner_schema_props_keys) - - if "anyOf" in schema: - any_of = schema / "anyOf" - for inner_schema in any_of: - yield from self._iter_schema_errors( - inner_schema, - require_properties=False, - ) - - if "oneOf" in schema: - one_of = schema / "oneOf" - for inner_schema in one_of: - yield from self._iter_schema_errors( - inner_schema, - require_properties=False, - ) - - if "not" in schema: - not_schema = schema / "not" - yield from self._iter_schema_errors( - not_schema, - require_properties=False, - ) - - if "items" in schema: - array_schema = schema / "items" - yield from self._iter_schema_errors( - array_schema, - require_properties=False, - ) - - if "properties" in schema: - props = schema / "properties" - for _, prop_schema in props.items(): - yield from self._iter_schema_errors( - prop_schema, - require_properties=False, - ) + self.keyword_validators_registry = KeywordValidatorRegistry( + self.keyword_validators + ) - required = schema.getkey("required", []) - properties = schema.get("properties", {}).keys() - if "allOf" in schema: - extra_properties = list( - set(required) - set(properties) - set(nested_properties) - ) - else: - extra_properties = list(set(required) - set(properties)) + def validate(self) -> None: + for err in self.iter_errors(): + raise err - if extra_properties and require_properties: - yield ExtraParametersError( - f"Required list has not defined properties: {extra_properties}" - ) + def is_valid(self) -> bool: + error = next(self.iter_errors(), None) + return error is None - if "default" in schema: - default = schema["default"] - nullable = schema.get("nullable", False) - if default is not None or nullable is not True: - yield from self._iter_value_errors(schema, default) + @property + def root_validator(self) -> keywords.RootValidator: + return cast( + keywords.RootValidator, + self.keyword_validators_registry["__root__"], + ) - def _iter_components_errors( - self, components: SchemaPath - ) -> Iterator[ValidationError]: - schemas = components.get("schemas", {}) - yield from self._iter_schemas_errors(schemas) + @unwraps_iter + @lru_cache(maxsize=None) + @wraps_cached_iter + @wraps_errors + def iter_errors(self) -> Iterator[ValidationError]: + yield from self.schema_validator.iter_errors(self.schema) - def _iter_schemas_errors( - self, schemas: SchemaPath - ) -> Iterator[ValidationError]: - for _, schema in schemas.items(): - yield from self._iter_schema_errors(schema) + spec = SchemaPath.from_dict( + self.schema, + base_uri=self.base_uri, + handlers=self.resolver_handlers, + ) + yield from self.root_validator(spec) + + +class OpenAPIV2SpecValidator(SpecValidator): + schema_validator = openapi_v2_schema_validator + keyword_validators = { + "__root__": keywords.RootValidator, + "components": keywords.ComponentsValidator, + "default": keywords.OpenAPIV30ValueValidator, + "operation": keywords.OperationValidator, + "parameter": keywords.OpenAPIV2ParameterValidator, + "parameters": keywords.ParametersValidator, + "paths": keywords.PathsValidator, + "path": keywords.PathValidator, + "response": keywords.OpenAPIV2ResponseValidator, + "responses": keywords.ResponsesValidator, + "schema": keywords.SchemaValidator, + "schemas": keywords.SchemasValidator, + } + root_keywords = ["paths", "components"] + + +class OpenAPIV30SpecValidator(SpecValidator): + schema_validator = openapi_v30_schema_validator + keyword_validators = { + "__root__": keywords.RootValidator, + "components": keywords.ComponentsValidator, + "content": keywords.ContentValidator, + "default": keywords.OpenAPIV30ValueValidator, + "mediaType": keywords.MediaTypeValidator, + "operation": keywords.OperationValidator, + "parameter": keywords.ParameterValidator, + "parameters": keywords.ParametersValidator, + "paths": keywords.PathsValidator, + "path": keywords.PathValidator, + "response": keywords.OpenAPIV3ResponseValidator, + "responses": keywords.ResponsesValidator, + "schema": keywords.SchemaValidator, + "schemas": keywords.SchemasValidator, + } + root_keywords = ["paths", "components"] + + +class OpenAPIV31SpecValidator(SpecValidator): + schema_validator = openapi_v31_schema_validator + keyword_validators = { + "__root__": keywords.RootValidator, + "components": keywords.ComponentsValidator, + "content": keywords.ContentValidator, + "default": keywords.OpenAPIV31ValueValidator, + "mediaType": keywords.MediaTypeValidator, + "operation": keywords.OperationValidator, + "parameter": keywords.ParameterValidator, + "parameters": keywords.ParametersValidator, + "paths": keywords.PathsValidator, + "path": keywords.PathValidator, + "response": keywords.OpenAPIV3ResponseValidator, + "responses": keywords.ResponsesValidator, + "schema": keywords.SchemaValidator, + "schemas": keywords.SchemasValidator, + } + root_keywords = ["paths", "components"] diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 2657e76..4f3cc08 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -6,10 +6,6 @@ from jsonschema_spec.handlers.file import FilePathHandler from jsonschema_spec.handlers.urllib import UrllibHandler -from openapi_spec_validator import openapi_v2_spec_validator -from openapi_spec_validator import openapi_v30_spec_validator -from openapi_spec_validator import openapi_v31_spec_validator - def spec_file_url(spec_file, schema="file"): directory = path.abspath(path.dirname(__file__)) @@ -40,18 +36,3 @@ def factory(): spec_from_file=spec_from_file, spec_from_url=spec_from_url, ) - - -@pytest.fixture -def validator_v2(): - return openapi_v2_spec_validator - - -@pytest.fixture -def validator_v30(): - return openapi_v30_spec_validator - - -@pytest.fixture -def validator_v31(): - return openapi_v31_spec_validator diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index 73a8d55..1527a83 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -150,7 +150,7 @@ def test_validation_error(capsys): @mock.patch( - "openapi_spec_validator.__main__.openapi_v30_spec_validator.validate", + "openapi_spec_validator.__main__.OpenAPIV30SpecValidator.validate", side_effect=Exception, ) def test_unknown_error(m_validate, capsys): diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 7c69ce1..37ebded 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -1,5 +1,7 @@ import pytest +from openapi_spec_validator import OpenAPIV2SpecValidator +from openapi_spec_validator import OpenAPIV30SpecValidator from openapi_spec_validator import openapi_v2_spec_validator from openapi_spec_validator import openapi_v30_spec_validator from openapi_spec_validator import validate_spec @@ -40,10 +42,11 @@ def local_test_suite_file_path(self, test_file): def test_valid(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) - spec_url = factory.spec_file_url(spec_path) validate_spec(spec) - validate_spec(spec, validator=openapi_v2_spec_validator) + validate_spec(spec, cls=OpenAPIV2SpecValidator) + with pytest.warns(DeprecationWarning): + validate_spec(spec, validator=openapi_v2_spec_validator) @pytest.mark.parametrize( "spec_file", @@ -56,7 +59,10 @@ def test_falied(self, factory, spec_file): spec = factory.spec_from_file(spec_path) with pytest.raises(OpenAPIValidationError): - validate_spec(spec, validator=openapi_v2_spec_validator) + validate_spec(spec, cls=OpenAPIV2SpecValidator) + with pytest.warns(DeprecationWarning): + with pytest.raises(OpenAPIValidationError): + validate_spec(spec, validator=openapi_v2_spec_validator) class TestLocalValidatev30Spec: @@ -78,7 +84,9 @@ def test_valid(self, factory, spec_file): validate_spec(spec) validate_spec(spec, spec_url=spec_url) - validate_spec(spec, validator=openapi_v30_spec_validator) + validate_spec(spec, cls=OpenAPIV30SpecValidator) + with pytest.warns(DeprecationWarning): + validate_spec(spec, validator=openapi_v30_spec_validator) @pytest.mark.parametrize( "spec_file", @@ -91,7 +99,10 @@ def test_falied(self, factory, spec_file): spec = factory.spec_from_file(spec_path) with pytest.raises(OpenAPIValidationError): - validate_spec(spec, validator=openapi_v30_spec_validator) + validate_spec(spec, cls=OpenAPIV30SpecValidator) + with pytest.warns(DeprecationWarning): + with pytest.raises(OpenAPIValidationError): + validate_spec(spec, validator=openapi_v30_spec_validator) @pytest.mark.network @@ -118,7 +129,9 @@ def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) validate_spec_url(spec_url) - validate_spec_url(spec_url, validator=openapi_v2_spec_validator) + validate_spec_url(spec_url, cls=OpenAPIV2SpecValidator) + with pytest.warns(DeprecationWarning): + validate_spec_url(spec_url, validator=openapi_v2_spec_validator) @pytest.mark.network @@ -145,4 +158,6 @@ def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) validate_spec_url(spec_url) - validate_spec_url(spec_url, validator=openapi_v30_spec_validator) + validate_spec_url(spec_url, cls=OpenAPIV30SpecValidator) + with pytest.warns(DeprecationWarning): + validate_spec_url(spec_url, validator=openapi_v30_spec_validator) diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index 129e0f1..687f85a 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -1,3 +1,5 @@ +from openapi_spec_validator import OpenAPIV2SpecValidator +from openapi_spec_validator import OpenAPIV30SpecValidator from openapi_spec_validator.validation.exceptions import ( DuplicateOperationIDError, ) @@ -9,10 +11,10 @@ class TestSpecValidatorIterErrors: - def test_empty(self, validator_v30): + def test_empty(self): spec = {} - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list[0].__class__ == OpenAPIValidationError @@ -22,20 +24,20 @@ def test_empty(self, validator_v30): assert errors_list[2].__class__ == OpenAPIValidationError assert errors_list[2].message == "'paths' is a required property" - def test_info_empty(self, validator_v30): + def test_info_empty(self): spec = { "openapi": "3.0.0", "info": {}, "paths": {}, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list[0].__class__ == OpenAPIValidationError assert errors_list[0].message == "'title' is a required property" - def test_minimalistic(self, validator_v30): + def test_minimalistic(self): spec = { "openapi": "3.0.0", "info": { @@ -45,12 +47,12 @@ def test_minimalistic(self, validator_v30): "paths": {}, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list == [] - def test_same_parameters_names(self, validator_v30): + def test_same_parameters_names(self): spec = { "openapi": "3.0.0", "info": { @@ -80,12 +82,12 @@ def test_same_parameters_names(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list == [] - def test_same_operation_ids(self, validator_v30): + def test_same_operation_ids(self): spec = { "openapi": "3.0.0", "info": { @@ -124,14 +126,14 @@ def test_same_operation_ids(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert len(errors_list) == 2 assert errors_list[0].__class__ == DuplicateOperationIDError assert errors_list[1].__class__ == DuplicateOperationIDError - def test_allow_allof_required_no_properties(self, validator_v30): + def test_allow_allof_required_no_properties(self): spec = { "openapi": "3.0.0", "info": { @@ -157,13 +159,11 @@ def test_allow_allof_required_no_properties(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list == [] - def test_allow_allof_when_required_is_linked_to_the_parent_object( - self, validator_v30 - ): + def test_allow_allof_when_required_is_linked_to_the_parent_object(self): spec = { "openapi": "3.0.1", "info": { @@ -198,11 +198,11 @@ def test_allow_allof_when_required_is_linked_to_the_parent_object( }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list == [] - def test_extra_parameters_in_required(self, validator_v30): + def test_extra_parameters_in_required(self): spec = { "openapi": "3.0.0", "info": { @@ -222,7 +222,7 @@ def test_extra_parameters_in_required(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list[0].__class__ == ExtraParametersError @@ -230,7 +230,7 @@ def test_extra_parameters_in_required(self, validator_v30): "Required list has not defined properties: ['testparam1']" ) - def test_undocumented_parameter(self, validator_v30): + def test_undocumented_parameter(self): spec = { "openapi": "3.0.0", "info": { @@ -260,7 +260,7 @@ def test_undocumented_parameter(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list[0].__class__ == UnresolvableParameterError @@ -269,7 +269,7 @@ def test_undocumented_parameter(self, validator_v30): "'/test/{param1}/{param2}' was not resolved" ) - def test_default_value_wrong_type(self, validator_v30): + def test_default_value_wrong_type(self): spec = { "openapi": "3.0.0", "info": { @@ -287,7 +287,7 @@ def test_default_value_wrong_type(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert len(errors_list) == 1 @@ -296,7 +296,7 @@ def test_default_value_wrong_type(self, validator_v30): "'invaldtype' is not of type 'integer'" ) - def test_parameter_default_value_wrong_type(self, validator_v30): + def test_parameter_default_value_wrong_type(self): spec = { "openapi": "3.0.0", "info": { @@ -327,7 +327,7 @@ def test_parameter_default_value_wrong_type(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert len(errors_list) == 1 @@ -336,7 +336,7 @@ def test_parameter_default_value_wrong_type(self, validator_v30): "'invaldtype' is not of type 'integer'" ) - def test_parameter_default_value_wrong_type_swagger(self, validator_v2): + def test_parameter_default_value_wrong_type_swagger(self): spec = { "swagger": "2.0", "info": { @@ -365,7 +365,7 @@ def test_parameter_default_value_wrong_type_swagger(self, validator_v2): }, } - errors = validator_v2.iter_errors(spec) + errors = OpenAPIV2SpecValidator(spec).iter_errors() errors_list = list(errors) assert len(errors_list) == 1 @@ -374,7 +374,7 @@ def test_parameter_default_value_wrong_type_swagger(self, validator_v2): "'invaldtype' is not of type 'integer'" ) - def test_parameter_default_value_with_reference(self, validator_v30): + def test_parameter_default_value_with_reference(self): spec = { "openapi": "3.0.0", "info": { @@ -415,12 +415,12 @@ def test_parameter_default_value_with_reference(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list == [] - def test_parameter_custom_format_checker_not_found(self, validator_v30): + def test_parameter_custom_format_checker_not_found(self): spec = { "openapi": "3.0.0", "info": { @@ -451,14 +451,12 @@ def test_parameter_custom_format_checker_not_found(self, validator_v30): }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert errors_list == [] - def test_parameter_default_value_custom_format_invalid( - self, validator_v30 - ): + def test_parameter_default_value_custom_format_invalid(self): from openapi_schema_validator import oas30_format_checker @oas30_format_checker.checks("custom") @@ -495,7 +493,7 @@ def validate(to_validate) -> bool: }, } - errors = validator_v30.iter_errors(spec) + errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) assert len(errors_list) == 1 diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index aef830b..0ff61c5 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -1,6 +1,9 @@ import pytest from referencing.exceptions import Unresolvable +from openapi_spec_validator import OpenAPIV2SpecValidator +from openapi_spec_validator import OpenAPIV30SpecValidator +from openapi_spec_validator import OpenAPIV31SpecValidator from openapi_spec_validator.validation.exceptions import OpenAPIValidationError @@ -16,12 +19,15 @@ def local_test_suite_file_path(self, test_file): "petstore.yaml", ], ) - def test_valid(self, factory, validator_v2, spec_file): + def test_valid(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) + validator = OpenAPIV2SpecValidator(spec, base_uri=spec_url) - return validator_v2.validate(spec, spec_url=spec_url) + validator.validate() + + assert validator.is_valid() == True @pytest.mark.parametrize( "spec_file", @@ -29,13 +35,16 @@ def test_valid(self, factory, validator_v2, spec_file): "empty.yaml", ], ) - def test_validation_failed(self, factory, validator_v2, spec_file): + def test_validation_failed(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) + validator = OpenAPIV2SpecValidator(spec, base_uri=spec_url) with pytest.raises(OpenAPIValidationError): - validator_v2.validate(spec, spec_url=spec_url) + validator.validate() + + assert validator.is_valid() == False @pytest.mark.parametrize( "spec_file", @@ -43,13 +52,13 @@ def test_validation_failed(self, factory, validator_v2, spec_file): "missing-reference.yaml", ], ) - def test_ref_failed(self, factory, validator_v2, spec_file): + def test_ref_failed(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) with pytest.raises(Unresolvable): - validator_v2.validate(spec, spec_url=spec_url) + OpenAPIV2SpecValidator(spec, base_uri=spec_url).validate() class TestLocalOpenAPIv30Validator: @@ -68,12 +77,15 @@ def local_test_suite_file_path(self, test_file): "read-only-write-only.yaml", ], ) - def test_valid(self, factory, validator_v30, spec_file): + def test_valid(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) + validator = OpenAPIV30SpecValidator(spec, base_uri=spec_url) - return validator_v30.validate(spec, spec_url=spec_url) + validator.validate() + + assert validator.is_valid() == True @pytest.mark.parametrize( "spec_file", @@ -81,13 +93,16 @@ def test_valid(self, factory, validator_v30, spec_file): "empty.yaml", ], ) - def test_failed(self, factory, validator_v30, spec_file): + def test_failed(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) + validator = OpenAPIV30SpecValidator(spec, base_uri=spec_url) with pytest.raises(OpenAPIValidationError): - validator_v30.validate(spec, spec_url=spec_url) + validator.validate() + + assert validator.is_valid() == False @pytest.mark.parametrize( "spec_file", @@ -95,13 +110,13 @@ def test_failed(self, factory, validator_v30, spec_file): "property-missing-reference.yaml", ], ) - def test_ref_failed(self, factory, validator_v30, spec_file): + def test_ref_failed(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) with pytest.raises(Unresolvable): - validator_v30.validate(spec, spec_url=spec_url) + OpenAPIV30SpecValidator(spec, base_uri=spec_url).validate() @pytest.mark.network @@ -124,11 +139,11 @@ def remote_test_suite_file_path(self, test_file): "api-with-examples.yaml", ], ) - def test_valid(self, factory, validator_v30, spec_file): + def test_valid(self, factory, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) spec = factory.spec_from_url(spec_url) - return validator_v30.validate(spec, spec_url=spec_url) + OpenAPIV30SpecValidator(spec, base_uri=spec_url).validate() @pytest.mark.network @@ -159,13 +174,13 @@ def remote_test_suite_file_path(self, test_file): "valid_schema_types.yaml", ], ) - def test_valid(self, factory, validator_v31, spec_file): + def test_valid(self, factory, spec_file): spec_url = self.remote_test_suite_file_path( f"tests/v3.1/pass/{spec_file}" ) spec = factory.spec_from_url(spec_url) - return validator_v31.validate(spec, spec_url=spec_url) + OpenAPIV31SpecValidator(spec, base_uri=spec_url).validate() @pytest.mark.parametrize( "spec_file", @@ -177,11 +192,11 @@ def test_valid(self, factory, validator_v31, spec_file): "unknown_container.yaml", ], ) - def test_failed(self, factory, validator_v31, spec_file): + def test_failed(self, factory, spec_file): spec_url = self.remote_test_suite_file_path( f"tests/v3.1/fail/{spec_file}" ) spec = factory.spec_from_url(spec_url) with pytest.raises(OpenAPIValidationError): - validator_v31.validate(spec, spec_url=spec_url) + OpenAPIV31SpecValidator(spec, base_uri=spec_url).validate() From b105fabfb25be159d6830618481f127f34e4903e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:52:54 +0000 Subject: [PATCH 244/371] Bump python from 3.11.5-alpine to 3.12.0-alpine Bumps python from 3.11.5-alpine to 3.12.0-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7527749..d76cb36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0 -FROM python:3.11.5-alpine as builder +FROM python:3.12.0-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.11.5-alpine +FROM python:3.12.0-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 2e8903a1b5c82ba591d8b0073ab9ca4753969c69 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 9 Oct 2023 14:00:48 +0000 Subject: [PATCH 245/371] Pyflakes pre-commit hook --- .pre-commit-config.yaml | 7 +++++++ poetry.lock | 2 +- pyproject.toml | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2068ea6..98d11c1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,3 +37,10 @@ repos: language: system require_serial: true types: [python] + + - id: pyflakes + name: pyflakes + entry: pyflakes + language: system + require_serial: true + types: [python] diff --git a/poetry.lock b/poetry.lock index 06fa17d..86f6d86 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1707,4 +1707,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "e0623333a7a6038f4ee596a1ffafd2b863f3002853ea1325ac5ae0e28d754a65" +content-hash = "ffe98db0b0f20a32849f6fd5afa04757c8b3f5fe62944368f51c2418dd4c8ea3" diff --git a/pyproject.toml b/pyproject.toml index a4a18dd..99da5da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,6 +72,8 @@ isort = "^5.11.5" black = "^23.9.1" flynt = "^1.0" deptry = "^0.12.0" +flake8 = "^5.0.4" +pyflakes = "^2.5.0" [tool.poetry.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" From 4d9060b8a6cf47e943dfd82f0249af816863cde3 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 9 Oct 2023 14:09:10 +0000 Subject: [PATCH 246/371] Python 3.12 support --- .github/workflows/python-test.yml | 2 +- poetry.lock | 92 +++++++++++++++++-------------- pyproject.toml | 1 + 3 files changed, 53 insertions(+), 42 deletions(-) diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 5c5c603..b453e43 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] os: [windows-latest, ubuntu-latest] fail-fast: false steps: diff --git a/poetry.lock b/poetry.lock index 06fa17d..f956ba7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1208,51 +1208,61 @@ files = [ [[package]] name = "pyyaml" -version = "6.0" +version = "6.0.1" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.6" files = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index a4a18dd..c01e276 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,6 +44,7 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Libraries" ] include = [ From 5c6d50c9d26bf64928cd26607dffd520cdc3a173 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 9 Oct 2023 14:51:44 +0000 Subject: [PATCH 247/371] Add bump2version to dev dependencies --- poetry.lock | 13 ++++++++++++- pyproject.toml | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index b8866b5..e28d9c9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -125,6 +125,17 @@ d = ["aiohttp (>=3.7.4)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] +[[package]] +name = "bump2version" +version = "1.0.1" +description = "Version-bump your software with a single command!" +optional = false +python-versions = ">=3.5" +files = [ + {file = "bump2version-1.0.1-py2.py3-none-any.whl", hash = "sha256:37f927ea17cde7ae2d7baf832f8e80ce3777624554a653006c9144f8017fe410"}, + {file = "bump2version-1.0.1.tar.gz", hash = "sha256:762cb2bfad61f4ec8e2bdf452c7c267416f8c70dd9ecb1653fd0bbb01fa936e6"}, +] + [[package]] name = "cachetools" version = "5.3.1" @@ -1717,4 +1728,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "ffe98db0b0f20a32849f6fd5afa04757c8b3f5fe62944368f51c2418dd4c8ea3" +content-hash = "b1f1adf7c0de23deb21f8ecd075c0c100c3f0ac8450039ec4c20385ac7a44c3f" diff --git a/pyproject.toml b/pyproject.toml index 20c07ab..8254d62 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,6 +75,7 @@ flynt = "^1.0" deptry = "^0.12.0" flake8 = "^5.0.4" pyflakes = "^2.5.0" +bump2version = "^1.0.1" [tool.poetry.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" From 74a6c5fad2da9c1ec838cc5c42e3441617320e99 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Mon, 9 Oct 2023 14:53:08 +0000 Subject: [PATCH 248/371] Version 0.7.0 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 899cbf6..e0d6b45 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.6.0 +current_version = 0.7.0 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index d76cb36..527507f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.6.0 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.0 FROM python:3.12.0-alpine as builder diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index b968e78..208bde8 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -12,7 +12,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.6.0" +__version__ = "0.7.0" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index 8254d62..6403d70 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.6.0" +version = "0.7.0" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From db016fa93ec1809cf9898697b5d9209adbe72cfd Mon Sep 17 00:00:00 2001 From: p1c2u Date: Wed, 11 Oct 2023 15:44:42 +0000 Subject: [PATCH 249/371] Versions submodule --- openapi_spec_validator/shortcuts.py | 24 +++++++---- openapi_spec_validator/validation/finders.py | 23 ---------- openapi_spec_validator/versions/__init__.py | 13 ++++++ openapi_spec_validator/versions/consts.py | 23 ++++++++++ openapi_spec_validator/versions/datatypes.py | 15 +++++++ openapi_spec_validator/versions/exceptions.py | 6 +++ openapi_spec_validator/versions/finders.py | 26 +++++++++++ openapi_spec_validator/versions/shortcuts.py | 10 +++++ tests/integration/test_versions.py | 43 +++++++++++++++++++ 9 files changed, 152 insertions(+), 31 deletions(-) delete mode 100644 openapi_spec_validator/validation/finders.py create mode 100644 openapi_spec_validator/versions/__init__.py create mode 100644 openapi_spec_validator/versions/consts.py create mode 100644 openapi_spec_validator/versions/datatypes.py create mode 100644 openapi_spec_validator/versions/exceptions.py create mode 100644 openapi_spec_validator/versions/finders.py create mode 100644 openapi_spec_validator/versions/shortcuts.py create mode 100644 tests/integration/test_versions.py diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 77ee0d8..9921d9d 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -10,21 +10,29 @@ from openapi_spec_validator.validation import OpenAPIV2SpecValidator from openapi_spec_validator.validation import OpenAPIV30SpecValidator from openapi_spec_validator.validation import OpenAPIV31SpecValidator -from openapi_spec_validator.validation.finders import SpecFinder -from openapi_spec_validator.validation.finders import SpecVersion +from openapi_spec_validator.validation.exceptions import ValidatorDetectError from openapi_spec_validator.validation.protocols import SupportsValidation from openapi_spec_validator.validation.types import SpecValidatorType from openapi_spec_validator.validation.validators import SpecValidator - -SPECS: Mapping[SpecVersion, SpecValidatorType] = { - SpecVersion("swagger", "2.0"): OpenAPIV2SpecValidator, - SpecVersion("openapi", "3.0"): OpenAPIV30SpecValidator, - SpecVersion("openapi", "3.1"): OpenAPIV31SpecValidator, +from openapi_spec_validator.versions import consts as versions +from openapi_spec_validator.versions.datatypes import SpecVersion +from openapi_spec_validator.versions.exceptions import OpenAPIVersionNotFound +from openapi_spec_validator.versions.shortcuts import get_spec_version + +SPEC2VALIDATOR: Mapping[SpecVersion, SpecValidatorType] = { + versions.OPENAPIV2: OpenAPIV2SpecValidator, + versions.OPENAPIV30: OpenAPIV30SpecValidator, + versions.OPENAPIV31: OpenAPIV31SpecValidator, } def get_validator_cls(spec: Schema) -> SpecValidatorType: - return SpecFinder(SPECS).find(spec) + try: + spec_version = get_spec_version(spec) + # backward compatibility + except OpenAPIVersionNotFound: + raise ValidatorDetectError + return SPEC2VALIDATOR[spec_version] def validate_spec( diff --git a/openapi_spec_validator/validation/finders.py b/openapi_spec_validator/validation/finders.py deleted file mode 100644 index 74d2573..0000000 --- a/openapi_spec_validator/validation/finders.py +++ /dev/null @@ -1,23 +0,0 @@ -from typing import Mapping -from typing import NamedTuple - -from jsonschema_spec.typing import Schema - -from openapi_spec_validator.validation.exceptions import ValidatorDetectError -from openapi_spec_validator.validation.types import SpecValidatorType - - -class SpecVersion(NamedTuple): - name: str - version: str - - -class SpecFinder: - def __init__(self, specs: Mapping[SpecVersion, SpecValidatorType]) -> None: - self.specs = specs - - def find(self, spec: Schema) -> SpecValidatorType: - for v, classes in self.specs.items(): - if v.name in spec and spec[v.name].startswith(v.version): - return classes - raise ValidatorDetectError("Spec schema version not detected") diff --git a/openapi_spec_validator/versions/__init__.py b/openapi_spec_validator/versions/__init__.py new file mode 100644 index 0000000..2203413 --- /dev/null +++ b/openapi_spec_validator/versions/__init__.py @@ -0,0 +1,13 @@ +from openapi_spec_validator.versions.consts import OPENAPIV2 +from openapi_spec_validator.versions.consts import OPENAPIV30 +from openapi_spec_validator.versions.consts import OPENAPIV31 +from openapi_spec_validator.versions.datatypes import SpecVersion +from openapi_spec_validator.versions.shortcuts import get_spec_version + +__all__ = [ + "OPENAPIV2", + "OPENAPIV30", + "OPENAPIV31", + "SpecVersion", + "get_spec_version", +] diff --git a/openapi_spec_validator/versions/consts.py b/openapi_spec_validator/versions/consts.py new file mode 100644 index 0000000..6b5ea7d --- /dev/null +++ b/openapi_spec_validator/versions/consts.py @@ -0,0 +1,23 @@ +from typing import List + +from openapi_spec_validator.versions.datatypes import SpecVersion + +OPENAPIV2 = SpecVersion( + keyword="swagger", + major="2", + minor="0", +) + +OPENAPIV30 = SpecVersion( + keyword="openapi", + major="3", + minor="0", +) + +OPENAPIV31 = SpecVersion( + keyword="openapi", + major="3", + minor="1", +) + +VERSIONS: List[SpecVersion] = [OPENAPIV2, OPENAPIV30, OPENAPIV31] diff --git a/openapi_spec_validator/versions/datatypes.py b/openapi_spec_validator/versions/datatypes.py new file mode 100644 index 0000000..a869992 --- /dev/null +++ b/openapi_spec_validator/versions/datatypes.py @@ -0,0 +1,15 @@ +from dataclasses import dataclass + + +@dataclass(frozen=True) +class SpecVersion: + """ + Spec version designates the OAS feature set. + """ + + keyword: str + major: str + minor: str + + def __str__(self) -> str: + return f"OpenAPIV{self.major}.{self.minor}" diff --git a/openapi_spec_validator/versions/exceptions.py b/openapi_spec_validator/versions/exceptions.py new file mode 100644 index 0000000..91a5cbb --- /dev/null +++ b/openapi_spec_validator/versions/exceptions.py @@ -0,0 +1,6 @@ +from openapi_spec_validator.exceptions import OpenAPIError + + +class OpenAPIVersionNotFound(OpenAPIError): + def __str__(self) -> str: + return "Specification version not found" diff --git a/openapi_spec_validator/versions/finders.py b/openapi_spec_validator/versions/finders.py new file mode 100644 index 0000000..f8b1ddc --- /dev/null +++ b/openapi_spec_validator/versions/finders.py @@ -0,0 +1,26 @@ +from re import compile +from typing import List + +from jsonschema_spec.typing import Schema + +from openapi_spec_validator.versions.datatypes import SpecVersion +from openapi_spec_validator.versions.exceptions import OpenAPIVersionNotFound + + +class SpecVersionFinder: + pattern = compile(r"(?P\d+)\.(?P\d+)(\..*)?") + + def __init__(self, versions: List[SpecVersion]) -> None: + self.versions = versions + + def find(self, spec: Schema) -> SpecVersion: + for v in self.versions: + if v.keyword in spec: + version_str = spec[v.keyword] + m = self.pattern.match(version_str) + if m: + version = SpecVersion(**m.groupdict(), keyword=v.keyword) + if v == version: + return v + + raise OpenAPIVersionNotFound diff --git a/openapi_spec_validator/versions/shortcuts.py b/openapi_spec_validator/versions/shortcuts.py new file mode 100644 index 0000000..73841e9 --- /dev/null +++ b/openapi_spec_validator/versions/shortcuts.py @@ -0,0 +1,10 @@ +from jsonschema_spec.typing import Schema + +from openapi_spec_validator.versions.consts import VERSIONS +from openapi_spec_validator.versions.datatypes import SpecVersion +from openapi_spec_validator.versions.finders import SpecVersionFinder + + +def get_spec_version(spec: Schema) -> SpecVersion: + finder = SpecVersionFinder(VERSIONS) + return finder.find(spec) diff --git a/tests/integration/test_versions.py b/tests/integration/test_versions.py new file mode 100644 index 0000000..891dd50 --- /dev/null +++ b/tests/integration/test_versions.py @@ -0,0 +1,43 @@ +import pytest + +from openapi_spec_validator.versions import consts as versions +from openapi_spec_validator.versions.exceptions import OpenAPIVersionNotFound +from openapi_spec_validator.versions.shortcuts import get_spec_version + + +class TestGetSpecVersion: + def test_no_keyword(self): + spec = {} + + with pytest.raises(OpenAPIVersionNotFound): + get_spec_version(spec) + + @pytest.mark.parametrize("keyword", ["swagger", "openapi"]) + @pytest.mark.parametrize("version", ["x.y.z", "xyz2.0.0", "2.xyz0.0"]) + def test_invalid(self, keyword, version): + spec = { + keyword: version, + } + + with pytest.raises(OpenAPIVersionNotFound): + get_spec_version(spec) + + @pytest.mark.parametrize( + "keyword,version,expected", + [ + ("swagger", "2.0", versions.OPENAPIV2), + ("openapi", "3.0.0", versions.OPENAPIV30), + ("openapi", "3.0.1", versions.OPENAPIV30), + ("openapi", "3.0.2", versions.OPENAPIV30), + ("openapi", "3.0.3", versions.OPENAPIV30), + ("openapi", "3.1.0", versions.OPENAPIV31), + ], + ) + def test_valid(self, keyword, version, expected): + spec = { + keyword: version, + } + + result = get_spec_version(spec) + + assert result == expected From 1d66de73d5226ea0a0ce6a6664a0bbe414fe2cca Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 13 Oct 2023 08:50:25 +0000 Subject: [PATCH 250/371] Move to jsonschema-path --- openapi_spec_validator/readers.py | 4 ++-- openapi_spec_validator/schemas/utils.py | 2 +- openapi_spec_validator/shortcuts.py | 4 ++-- openapi_spec_validator/validation/keywords.py | 2 +- openapi_spec_validator/validation/proxies.py | 2 +- openapi_spec_validator/validation/validators.py | 6 +++--- openapi_spec_validator/versions/finders.py | 2 +- openapi_spec_validator/versions/shortcuts.py | 2 +- poetry.lock | 10 +++++----- pyproject.toml | 2 +- tests/integration/conftest.py | 4 ++-- 11 files changed, 20 insertions(+), 20 deletions(-) diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index cd1803e..9f9d93c 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -6,8 +6,8 @@ from typing import Mapping from typing import Tuple -from jsonschema_spec.handlers import all_urls_handler -from jsonschema_spec.handlers import file_handler +from jsonschema_path.handlers import all_urls_handler +from jsonschema_path.handlers import file_handler def read_from_stdin(filename: str) -> Tuple[Mapping[Hashable, Any], str]: diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index 30c99a1..37a7494 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -13,7 +13,7 @@ from importlib_resources import as_file from importlib_resources import files -from jsonschema_spec.readers import FilePathReader +from jsonschema_path.readers import FilePathReader def get_schema(version: str) -> Tuple[Mapping[Hashable, Any], str]: diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 9921d9d..fed70fd 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -4,8 +4,8 @@ from typing import Optional from typing import Type -from jsonschema_spec.handlers import all_urls_handler -from jsonschema_spec.typing import Schema +from jsonschema_path.handlers import all_urls_handler +from jsonschema_path.typing import Schema from openapi_spec_validator.validation import OpenAPIV2SpecValidator from openapi_spec_validator.validation import OpenAPIV30SpecValidator diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index 125d3ad..081a0ec 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -9,7 +9,7 @@ from jsonschema._format import FormatChecker from jsonschema.exceptions import ValidationError from jsonschema.protocols import Validator -from jsonschema_spec.paths import SchemaPath +from jsonschema_path.paths import SchemaPath from openapi_schema_validator import oas30_format_checker from openapi_schema_validator import oas31_format_checker from openapi_schema_validator.validators import OAS30Validator diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 1ab7185..d872620 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -8,7 +8,7 @@ from typing import Tuple from jsonschema.exceptions import ValidationError -from jsonschema_spec.typing import Schema +from jsonschema_path.typing import Schema from openapi_spec_validator.validation.exceptions import OpenAPIValidationError from openapi_spec_validator.validation.exceptions import ValidatorDetectError diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index a789d16..dbfd8ea 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -11,9 +11,9 @@ from jsonschema.exceptions import ValidationError from jsonschema.protocols import Validator -from jsonschema_spec.handlers import default_handlers -from jsonschema_spec.paths import SchemaPath -from jsonschema_spec.typing import Schema +from jsonschema_path.handlers import default_handlers +from jsonschema_path.paths import SchemaPath +from jsonschema_path.typing import Schema from openapi_spec_validator.schemas import openapi_v2_schema_validator from openapi_spec_validator.schemas import openapi_v30_schema_validator diff --git a/openapi_spec_validator/versions/finders.py b/openapi_spec_validator/versions/finders.py index f8b1ddc..803cabc 100644 --- a/openapi_spec_validator/versions/finders.py +++ b/openapi_spec_validator/versions/finders.py @@ -1,7 +1,7 @@ from re import compile from typing import List -from jsonschema_spec.typing import Schema +from jsonschema_path.typing import Schema from openapi_spec_validator.versions.datatypes import SpecVersion from openapi_spec_validator.versions.exceptions import OpenAPIVersionNotFound diff --git a/openapi_spec_validator/versions/shortcuts.py b/openapi_spec_validator/versions/shortcuts.py index 73841e9..1ff16bf 100644 --- a/openapi_spec_validator/versions/shortcuts.py +++ b/openapi_spec_validator/versions/shortcuts.py @@ -1,4 +1,4 @@ -from jsonschema_spec.typing import Schema +from jsonschema_path.typing import Schema from openapi_spec_validator.versions.consts import VERSIONS from openapi_spec_validator.versions.datatypes import SpecVersion diff --git a/poetry.lock b/poetry.lock index e28d9c9..8daf93d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -612,14 +612,14 @@ format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validat format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] [[package]] -name = "jsonschema-spec" -version = "0.2.4" +name = "jsonschema-path" +version = "0.3.0" description = "JSONSchema Spec with object-oriented paths" optional = false python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "jsonschema_spec-0.2.4-py3-none-any.whl", hash = "sha256:e6dcf7056734ec6854f7888da6c08ce6c421f28aeeddce96bb90de0fb6d711ef"}, - {file = "jsonschema_spec-0.2.4.tar.gz", hash = "sha256:873e396ad1ba6edf9f52d6174c110d4fafb7b5f5894744246a53fe75e5251ec2"}, + {file = "jsonschema_path-0.3.0-py3-none-any.whl", hash = "sha256:f165924e5f61e8d6633fdd5a620620b1c1271e81c7592286357e54e2ceeecf77"}, + {file = "jsonschema_path-0.3.0.tar.gz", hash = "sha256:4b2791105ec16e47e5d89c0d08220d3049b9e6dd735fc2e07a0132f5d6b769c7"}, ] [package.dependencies] @@ -1728,4 +1728,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "b1f1adf7c0de23deb21f8ecd075c0c100c3f0ac8450039ec4c20385ac7a44c3f" +content-hash = "0933a35821428ee7eb09dd3d77c2762a283c6e5fec5786d4bedbdfddd26c621c" diff --git a/pyproject.toml b/pyproject.toml index 6403d70..4163fe7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,7 +56,7 @@ jsonschema = "^4.18.0" openapi-schema-validator = "^0.6.0" python = "^3.8.0" importlib-resources = {version = ">=5.8,<7.0", python = "<3.9" } -jsonschema-spec = "^0.2.3" +jsonschema-path = "^0.3.0" lazy-object-proxy = "^1.7.1" [tool.poetry.extras] diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 4f3cc08..a420f6d 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -3,8 +3,8 @@ from urllib.parse import urlunparse import pytest -from jsonschema_spec.handlers.file import FilePathHandler -from jsonschema_spec.handlers.urllib import UrllibHandler +from jsonschema_path.handlers.file import FilePathHandler +from jsonschema_path.handlers.urllib import UrllibHandler def spec_file_url(spec_file, schema="file"): From eeff41adc80ca2616160ab1c41c9ca2dd9885650 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 13 Oct 2023 10:24:11 +0000 Subject: [PATCH 251/371] Validator accept any schema --- openapi_spec_validator/schemas/types.py | 6 +++++ .../validation/validators.py | 26 +++++++++---------- poetry.lock | 8 +++--- pyproject.toml | 2 +- .../integration/validation/test_validators.py | 7 ++++- 5 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 openapi_spec_validator/schemas/types.py diff --git a/openapi_spec_validator/schemas/types.py b/openapi_spec_validator/schemas/types.py new file mode 100644 index 0000000..d48c516 --- /dev/null +++ b/openapi_spec_validator/schemas/types.py @@ -0,0 +1,6 @@ +from typing import Union + +from jsonschema_path.paths import SchemaPath +from jsonschema_path.typing import Schema + +AnySchema = Union[Schema, SchemaPath] diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index dbfd8ea..cb8f5ad 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -18,6 +18,7 @@ from openapi_spec_validator.schemas import openapi_v2_schema_validator from openapi_spec_validator.schemas import openapi_v30_schema_validator from openapi_spec_validator.schemas import openapi_v31_schema_validator +from openapi_spec_validator.schemas.types import AnySchema from openapi_spec_validator.validation import keywords from openapi_spec_validator.validation.decorators import unwraps_iter from openapi_spec_validator.validation.decorators import wraps_cached_iter @@ -39,11 +40,10 @@ class SpecValidator: def __init__( self, - schema: Schema, + schema: AnySchema, base_uri: str = "", spec_url: Optional[str] = None, ) -> None: - self.schema = schema if spec_url is not None: warnings.warn( "spec_url parameter is deprecated. " "Use base_uri instead.", @@ -52,11 +52,16 @@ def __init__( base_uri = spec_url self.base_uri = base_uri - self.spec = SchemaPath.from_dict( - self.schema, - base_uri=self.base_uri, - handlers=self.resolver_handlers, - ) + if isinstance(schema, SchemaPath): + self.schema_path = schema + self.schema = schema.contents() + else: + self.schema = schema + self.schema_path = SchemaPath.from_dict( + self.schema, + base_uri=self.base_uri, + handlers=self.resolver_handlers, + ) self.keyword_validators_registry = KeywordValidatorRegistry( self.keyword_validators @@ -84,12 +89,7 @@ def root_validator(self) -> keywords.RootValidator: def iter_errors(self) -> Iterator[ValidationError]: yield from self.schema_validator.iter_errors(self.schema) - spec = SchemaPath.from_dict( - self.schema, - base_uri=self.base_uri, - handlers=self.resolver_handlers, - ) - yield from self.root_validator(spec) + yield from self.root_validator(self.schema_path) class OpenAPIV2SpecValidator(SpecValidator): diff --git a/poetry.lock b/poetry.lock index 8daf93d..ea97d5c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -613,13 +613,13 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-path" -version = "0.3.0" +version = "0.3.1" description = "JSONSchema Spec with object-oriented paths" optional = false python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "jsonschema_path-0.3.0-py3-none-any.whl", hash = "sha256:f165924e5f61e8d6633fdd5a620620b1c1271e81c7592286357e54e2ceeecf77"}, - {file = "jsonschema_path-0.3.0.tar.gz", hash = "sha256:4b2791105ec16e47e5d89c0d08220d3049b9e6dd735fc2e07a0132f5d6b769c7"}, + {file = "jsonschema_path-0.3.1-py3-none-any.whl", hash = "sha256:06f01b1848a28963f49a17730e11204d252aa6ff5db4ef84ec77e5ac93cfa831"}, + {file = "jsonschema_path-0.3.1.tar.gz", hash = "sha256:07ea584b5c9b41a614b4d011c5575955676f48d0abbfd93d9ea8e933018d716d"}, ] [package.dependencies] @@ -1728,4 +1728,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "0933a35821428ee7eb09dd3d77c2762a283c6e5fec5786d4bedbdfddd26c621c" +content-hash = "a438d6b1d1eba8ef9369a1a8808825ae640f0920b93aafec2406b710bf01bd03" diff --git a/pyproject.toml b/pyproject.toml index 4163fe7..741dc01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,7 +56,7 @@ jsonschema = "^4.18.0" openapi-schema-validator = "^0.6.0" python = "^3.8.0" importlib-resources = {version = ">=5.8,<7.0", python = "<3.9" } -jsonschema-path = "^0.3.0" +jsonschema-path = "^0.3.1" lazy-object-proxy = "^1.7.1" [tool.poetry.extras] diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 0ff61c5..0cb04b4 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -1,6 +1,7 @@ import pytest from referencing.exceptions import Unresolvable +from jsonschema_path import SchemaPath from openapi_spec_validator import OpenAPIV2SpecValidator from openapi_spec_validator import OpenAPIV30SpecValidator from openapi_spec_validator import OpenAPIV31SpecValidator @@ -23,7 +24,11 @@ def test_valid(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) - validator = OpenAPIV2SpecValidator(spec, base_uri=spec_url) + schema_path = SchemaPath.from_dict( + spec, + base_uri=spec_url, + ) + validator = OpenAPIV2SpecValidator(schema_path) validator.validate() From 8564cc6d15d2411d0d32de51913a5488133c35e4 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 13 Oct 2023 11:17:41 +0000 Subject: [PATCH 252/371] validate and validate_url shortcuts --- README.rst | 8 ++-- docs/python.rst | 20 +++++----- openapi_spec_validator/__init__.py | 4 ++ openapi_spec_validator/__main__.py | 11 ++---- openapi_spec_validator/shortcuts.py | 39 ++++++++++++++++++- .../validation/validators.py | 1 - tests/integration/test_shortcuts.py | 30 +++++++------- .../integration/validation/test_validators.py | 2 +- 8 files changed, 77 insertions(+), 38 deletions(-) diff --git a/README.rst b/README.rst index 78592fd..f9124af 100644 --- a/README.rst +++ b/README.rst @@ -98,15 +98,15 @@ Python package .. code:: python - from openapi_spec_validator import validate_spec + from openapi_spec_validator import validate from openapi_spec_validator.readers import read_from_filename spec_dict, base_uri = read_from_filename('openapi.yaml') - # If no exception is raised by validate_spec(), the spec is valid. - validate_spec(spec_dict) + # If no exception is raised by validate(), the spec is valid. + validate(spec_dict) - validate_spec({'openapi': '3.1.0'}) + validate({'openapi': '3.1.0'}) Traceback (most recent call last): ... diff --git a/docs/python.rst b/docs/python.rst index f4b0d56..b8ecdd5 100644 --- a/docs/python.rst +++ b/docs/python.rst @@ -5,15 +5,15 @@ By default, OpenAPI spec version is detected. To validate spec: .. code:: python - from openapi_spec_validator import validate_spec + from openapi_spec_validator import validate from openapi_spec_validator.readers import read_from_filename spec_dict, base_uri = read_from_filename('openapi.yaml') - # If no exception is raised by validate_spec(), the spec is valid. - validate_spec(spec_dict) + # If no exception is raised by validate(), the spec is valid. + validate(spec_dict) - validate_spec({'openapi': '3.1.0'}) + validate({'openapi': '3.1.0'}) Traceback (most recent call last): ... @@ -23,16 +23,16 @@ Add ``base_uri`` to validate spec with relative files: .. code:: python - validate_spec(spec_dict, base_uri='file:///path/to/spec/openapi.yaml') + validate(spec_dict, base_uri='file:///path/to/spec/openapi.yaml') You can also validate spec from url: .. code:: python - from openapi_spec_validator import validate_spec_url + from openapi_spec_validator import validate_url - # If no exception is raised by validate_spec_url(), the spec is valid. - validate_spec_url('http://example.com/openapi.json') + # If no exception is raised by validate_url(), the spec is valid. + validate_url('http://example.com/openapi.json') In order to explicitly validate a: @@ -40,11 +40,11 @@ In order to explicitly validate a: * OpenAPI 3.0 spec, import ``OpenAPIV30SpecValidator`` * OpenAPI 3.1 spec, import ``OpenAPIV31SpecValidator`` -and pass the validator class to ``validate_spec`` or ``validate_spec_url`` function: +and pass the validator class to ``validate`` or ``validate_url`` function: .. code:: python - validate_spec(spec_dict, cls=OpenAPIV31SpecValidator) + validate(spec_dict, cls=OpenAPIV31SpecValidator) You can also explicitly import ``OpenAPIV3SpecValidator`` which is a shortcut to the latest v3 release. diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 208bde8..97f514d 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,6 +1,8 @@ """OpenAPI spec validator module.""" +from openapi_spec_validator.shortcuts import validate from openapi_spec_validator.shortcuts import validate_spec from openapi_spec_validator.shortcuts import validate_spec_url +from openapi_spec_validator.shortcuts import validate_url from openapi_spec_validator.validation import OpenAPIV2SpecValidator from openapi_spec_validator.validation import OpenAPIV3SpecValidator from openapi_spec_validator.validation import OpenAPIV30SpecValidator @@ -25,6 +27,8 @@ "OpenAPIV3SpecValidator", "OpenAPIV30SpecValidator", "OpenAPIV31SpecValidator", + "validate", + "validate_url", "validate_spec", "validate_spec_url", ] diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index 8a1f26a..bc97714 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -9,7 +9,7 @@ from openapi_spec_validator.readers import read_from_filename from openapi_spec_validator.readers import read_from_stdin -from openapi_spec_validator.shortcuts import get_validator_cls +from openapi_spec_validator.shortcuts import validate from openapi_spec_validator.validation import OpenAPIV2SpecValidator from openapi_spec_validator.validation import OpenAPIV30SpecValidator from openapi_spec_validator.validation import OpenAPIV31SpecValidator @@ -91,6 +91,7 @@ def main(args: Optional[Sequence[str]] = None) -> None: # choose the validator validators = { + "detect": None, "2.0": OpenAPIV2SpecValidator, "3.0": OpenAPIV30SpecValidator, "3.1": OpenAPIV31SpecValidator, @@ -98,15 +99,11 @@ def main(args: Optional[Sequence[str]] = None) -> None: "3.0.0": OpenAPIV30SpecValidator, "3.1.0": OpenAPIV31SpecValidator, } - if args_parsed.schema == "detect": - validator_cls = get_validator_cls(spec) - else: - validator_cls = validators[args_parsed.schema] + validator_cls = validators[args_parsed.schema] - validator = validator_cls(spec, base_uri=base_uri) # validate try: - validator.validate() + validate(spec, base_uri=base_uri, cls=validator_cls) except ValidationError as exc: print_validationerror(filename, exc, args_parsed.errors) sys.exit(1) diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index fed70fd..70c2c8f 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -4,6 +4,7 @@ from typing import Optional from typing import Type +from jsonschema_path import SchemaPath from jsonschema_path.handlers import all_urls_handler from jsonschema_path.typing import Schema @@ -35,6 +36,26 @@ def get_validator_cls(spec: Schema) -> SpecValidatorType: return SPEC2VALIDATOR[spec_version] +def validate( + spec: Schema, + base_uri: str = "", + cls: Optional[SpecValidatorType] = None, +) -> None: + if cls is None: + cls = get_validator_cls(spec) + sp = SchemaPath.from_dict(spec, base_uri=base_uri) + v = cls(sp) + return v.validate() + + +def validate_url( + spec_url: str, + cls: Optional[Type[SpecValidator]] = None, +) -> None: + spec = all_urls_handler(spec_url) + return validate(spec, base_uri=spec_url, cls=cls) + + def validate_spec( spec: Schema, base_uri: str = "", @@ -42,6 +63,10 @@ def validate_spec( cls: Optional[SpecValidatorType] = None, spec_url: Optional[str] = None, ) -> None: + warnings.warn( + "validate_spec shortcut is deprecated. Use validate instead.", + DeprecationWarning, + ) if validator is not None: warnings.warn( "validator parameter is deprecated. Use cls instead.", @@ -59,5 +84,15 @@ def validate_spec_url( validator: Optional[SupportsValidation] = None, cls: Optional[Type[SpecValidator]] = None, ) -> None: - spec = all_urls_handler(spec_url) - return validate_spec(spec, base_uri=spec_url, validator=validator, cls=cls) + warnings.warn( + "validate_spec_url shortcut is deprecated. Use validate_url instead.", + DeprecationWarning, + ) + if validator is not None: + warnings.warn( + "validator parameter is deprecated. Use cls instead.", + DeprecationWarning, + ) + spec = all_urls_handler(spec_url) + return validator.validate(spec, base_uri=spec_url) + return validate_url(spec_url, cls=cls) diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index cb8f5ad..f4d889d 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -13,7 +13,6 @@ from jsonschema.protocols import Validator from jsonschema_path.handlers import default_handlers from jsonschema_path.paths import SchemaPath -from jsonschema_path.typing import Schema from openapi_spec_validator.schemas import openapi_v2_schema_validator from openapi_spec_validator.schemas import openapi_v30_schema_validator diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index 37ebded..e2db344 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -4,8 +4,10 @@ from openapi_spec_validator import OpenAPIV30SpecValidator from openapi_spec_validator import openapi_v2_spec_validator from openapi_spec_validator import openapi_v30_spec_validator +from openapi_spec_validator import validate from openapi_spec_validator import validate_spec from openapi_spec_validator import validate_spec_url +from openapi_spec_validator import validate_url from openapi_spec_validator.validation.exceptions import OpenAPIValidationError from openapi_spec_validator.validation.exceptions import ValidatorDetectError @@ -15,7 +17,7 @@ def test_spec_schema_version_not_detected(self): spec = {} with pytest.raises(ValidatorDetectError): - validate_spec(spec) + validate(spec) class TestLocalValidateSpecUrl: @@ -24,7 +26,7 @@ def test_spec_schema_version_not_detected(self, factory): spec_url = factory.spec_file_url(spec_path) with pytest.raises(ValidatorDetectError): - validate_spec_url(spec_url) + validate_url(spec_url) class TestLiocalValidatev2Spec: @@ -43,8 +45,8 @@ def test_valid(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) - validate_spec(spec) - validate_spec(spec, cls=OpenAPIV2SpecValidator) + validate(spec) + validate(spec, cls=OpenAPIV2SpecValidator) with pytest.warns(DeprecationWarning): validate_spec(spec, validator=openapi_v2_spec_validator) @@ -59,7 +61,7 @@ def test_falied(self, factory, spec_file): spec = factory.spec_from_file(spec_path) with pytest.raises(OpenAPIValidationError): - validate_spec(spec, cls=OpenAPIV2SpecValidator) + validate(spec, cls=OpenAPIV2SpecValidator) with pytest.warns(DeprecationWarning): with pytest.raises(OpenAPIValidationError): validate_spec(spec, validator=openapi_v2_spec_validator) @@ -82,9 +84,10 @@ def test_valid(self, factory, spec_file): spec = factory.spec_from_file(spec_path) spec_url = factory.spec_file_url(spec_path) - validate_spec(spec) - validate_spec(spec, spec_url=spec_url) - validate_spec(spec, cls=OpenAPIV30SpecValidator) + validate(spec) + with pytest.warns(DeprecationWarning): + validate_spec(spec, spec_url=spec_url) + validate(spec, cls=OpenAPIV30SpecValidator) with pytest.warns(DeprecationWarning): validate_spec(spec, validator=openapi_v30_spec_validator) @@ -99,7 +102,7 @@ def test_falied(self, factory, spec_file): spec = factory.spec_from_file(spec_path) with pytest.raises(OpenAPIValidationError): - validate_spec(spec, cls=OpenAPIV30SpecValidator) + validate(spec, cls=OpenAPIV30SpecValidator) with pytest.warns(DeprecationWarning): with pytest.raises(OpenAPIValidationError): validate_spec(spec, validator=openapi_v30_spec_validator) @@ -128,9 +131,10 @@ def remote_test_suite_file_path(self, test_file): def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) - validate_spec_url(spec_url) - validate_spec_url(spec_url, cls=OpenAPIV2SpecValidator) + validate_url(spec_url) + validate_url(spec_url, cls=OpenAPIV2SpecValidator) with pytest.warns(DeprecationWarning): + validate_spec_url(spec_url) validate_spec_url(spec_url, validator=openapi_v2_spec_validator) @@ -157,7 +161,7 @@ def remote_test_suite_file_path(self, test_file): def test_valid(self, spec_file): spec_url = self.remote_test_suite_file_path(spec_file) - validate_spec_url(spec_url) - validate_spec_url(spec_url, cls=OpenAPIV30SpecValidator) + validate_url(spec_url) + validate_url(spec_url, cls=OpenAPIV30SpecValidator) with pytest.warns(DeprecationWarning): validate_spec_url(spec_url, validator=openapi_v30_spec_validator) diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 0cb04b4..305e1f8 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -1,7 +1,7 @@ import pytest +from jsonschema_path import SchemaPath from referencing.exceptions import Unresolvable -from jsonschema_path import SchemaPath from openapi_spec_validator import OpenAPIV2SpecValidator from openapi_spec_validator import OpenAPIV30SpecValidator from openapi_spec_validator import OpenAPIV31SpecValidator From 409da9d242e35f17e325669c055277c2d2976177 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Fri, 13 Oct 2023 11:41:43 +0000 Subject: [PATCH 253/371] Version 0.7.1 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index e0d6b45..1f05763 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.7.0 +current_version = 0.7.1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 527507f..58ae4d1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.0 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.1 FROM python:3.12.0-alpine as builder diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 97f514d..6c6d67d 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -14,7 +14,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.7.0" +__version__ = "0.7.1" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index 741dc01..016828c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.7.0" +version = "0.7.1" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 1acac796ddaae54132c02c056bff06f95b481339 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:52:05 +0000 Subject: [PATCH 254/371] Bump pre-commit from 3.4.0 to 3.5.0 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.4.0 to 3.5.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v3.4.0...v3.5.0) --- updated-dependencies: - dependency-name: pre-commit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index ea97d5c..a8216a9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -931,13 +931,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.4.0" +version = "3.5.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.8" files = [ - {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, - {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, + {file = "pre_commit-3.5.0-py2.py3-none-any.whl", hash = "sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660"}, + {file = "pre_commit-3.5.0.tar.gz", hash = "sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32"}, ] [package.dependencies] From 54fd3d09ca3b8b2e009b4e83556ba10334c5d6b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 21:08:48 +0000 Subject: [PATCH 255/371] Bump urllib3 from 2.0.6 to 2.0.7 Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.6 to 2.0.7. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.6...2.0.7) --- updated-dependencies: - dependency-name: urllib3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index ea97d5c..9350833 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1672,13 +1672,13 @@ files = [ [[package]] name = "urllib3" -version = "2.0.6" +version = "2.0.7" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.6-py3-none-any.whl", hash = "sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2"}, - {file = "urllib3-2.0.6.tar.gz", hash = "sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"}, + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, ] [package.extras] From c1dada5921c362197fae77aad83084826aca6b3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 12:19:19 +0000 Subject: [PATCH 256/371] Bump black from 23.9.1 to 23.10.0 Bumps [black](https://github.com/psf/black) from 23.9.1 to 23.10.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.9.1...23.10.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 44 ++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9350833..cc65ee6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -81,33 +81,29 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "23.9.1" +version = "23.10.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, - {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, - {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, - {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, - {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, - {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, - {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, - {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, - {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, - {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, - {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, + {file = "black-23.10.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:f8dc7d50d94063cdfd13c82368afd8588bac4ce360e4224ac399e769d6704e98"}, + {file = "black-23.10.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:f20ff03f3fdd2fd4460b4f631663813e57dc277e37fb216463f3b907aa5a9bdd"}, + {file = "black-23.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3d9129ce05b0829730323bdcb00f928a448a124af5acf90aa94d9aba6969604"}, + {file = "black-23.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:960c21555be135c4b37b7018d63d6248bdae8514e5c55b71e994ad37407f45b8"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:30b78ac9b54cf87bcb9910ee3d499d2bc893afd52495066c49d9ee6b21eee06e"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:0e232f24a337fed7a82c1185ae46c56c4a6167fb0fe37411b43e876892c76699"}, + {file = "black-23.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31946ec6f9c54ed7ba431c38bc81d758970dd734b96b8e8c2b17a367d7908171"}, + {file = "black-23.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:c870bee76ad5f7a5ea7bd01dc646028d05568d33b0b09b7ecfc8ec0da3f3f39c"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:6901631b937acbee93c75537e74f69463adaf34379a04eef32425b88aca88a23"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:481167c60cd3e6b1cb8ef2aac0f76165843a374346aeeaa9d86765fe0dd0318b"}, + {file = "black-23.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74892b4b836e5162aa0452393112a574dac85e13902c57dfbaaf388e4eda37c"}, + {file = "black-23.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:47c4510f70ec2e8f9135ba490811c071419c115e46f143e4dce2ac45afdcf4c9"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:76baba9281e5e5b230c9b7f83a96daf67a95e919c2dfc240d9e6295eab7b9204"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:a3c2ddb35f71976a4cfeca558848c2f2f89abc86b06e8dd89b5a65c1e6c0f22a"}, + {file = "black-23.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db451a3363b1e765c172c3fd86213a4ce63fb8524c938ebd82919bf2a6e28c6a"}, + {file = "black-23.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:7fb5fc36bb65160df21498d5a3dd330af8b6401be3f25af60c6ebfe23753f747"}, + {file = "black-23.10.0-py3-none-any.whl", hash = "sha256:e223b731a0e025f8ef427dd79d8cd69c167da807f5710add30cdf131f13dd62e"}, + {file = "black-23.10.0.tar.gz", hash = "sha256:31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd"}, ] [package.dependencies] @@ -1728,4 +1724,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "a438d6b1d1eba8ef9369a1a8808825ae640f0920b93aafec2406b710bf01bd03" +content-hash = "9e1979bd2c138dad528724f6db6407fbe241d75a9379f64c382aeca8a7780a34" diff --git a/pyproject.toml b/pyproject.toml index 016828c..a096f08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.5" isort = "^5.11.5" -black = "^23.9.1" +black = "^23.10.0" flynt = "^1.0" deptry = "^0.12.0" flake8 = "^5.0.4" From 4a8655ff9a6e93c5cd7ae1b581c7806bb79602c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 14:32:33 +0000 Subject: [PATCH 257/371] Bump mypy from 1.5.1 to 1.6.1 Bumps [mypy](https://github.com/python/mypy) from 1.5.1 to 1.6.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.5.1...v1.6.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 58 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index cc65ee6..813376e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -766,38 +766,38 @@ files = [ [[package]] name = "mypy" -version = "1.5.1" +version = "1.6.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"}, - {file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"}, - {file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"}, - {file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"}, - {file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"}, - {file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"}, - {file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"}, - {file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"}, - {file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"}, - {file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"}, - {file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"}, - {file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"}, - {file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"}, - {file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"}, - {file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"}, - {file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"}, - {file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"}, - {file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"}, - {file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"}, - {file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"}, - {file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"}, - {file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"}, - {file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"}, - {file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"}, - {file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"}, - {file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"}, - {file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"}, + {file = "mypy-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e5012e5cc2ac628177eaac0e83d622b2dd499e28253d4107a08ecc59ede3fc2c"}, + {file = "mypy-1.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d8fbb68711905f8912e5af474ca8b78d077447d8f3918997fecbf26943ff3cbb"}, + {file = "mypy-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a1ad938fee7d2d96ca666c77b7c494c3c5bd88dff792220e1afbebb2925b5e"}, + {file = "mypy-1.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b96ae2c1279d1065413965c607712006205a9ac541895004a1e0d4f281f2ff9f"}, + {file = "mypy-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:40b1844d2e8b232ed92e50a4bd11c48d2daa351f9deee6c194b83bf03e418b0c"}, + {file = "mypy-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:81af8adaa5e3099469e7623436881eff6b3b06db5ef75e6f5b6d4871263547e5"}, + {file = "mypy-1.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8c223fa57cb154c7eab5156856c231c3f5eace1e0bed9b32a24696b7ba3c3245"}, + {file = "mypy-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8032e00ce71c3ceb93eeba63963b864bf635a18f6c0c12da6c13c450eedb183"}, + {file = "mypy-1.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c46b51de523817a0045b150ed11b56f9fff55f12b9edd0f3ed35b15a2809de0"}, + {file = "mypy-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:19f905bcfd9e167159b3d63ecd8cb5e696151c3e59a1742e79bc3bcb540c42c7"}, + {file = "mypy-1.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:82e469518d3e9a321912955cc702d418773a2fd1e91c651280a1bda10622f02f"}, + {file = "mypy-1.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d4473c22cc296425bbbce7e9429588e76e05bc7342da359d6520b6427bf76660"}, + {file = "mypy-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59a0d7d24dfb26729e0a068639a6ce3500e31d6655df8557156c51c1cb874ce7"}, + {file = "mypy-1.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cfd13d47b29ed3bbaafaff7d8b21e90d827631afda134836962011acb5904b71"}, + {file = "mypy-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:eb4f18589d196a4cbe5290b435d135dee96567e07c2b2d43b5c4621b6501531a"}, + {file = "mypy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:41697773aa0bf53ff917aa077e2cde7aa50254f28750f9b88884acea38a16169"}, + {file = "mypy-1.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7274b0c57737bd3476d2229c6389b2ec9eefeb090bbaf77777e9d6b1b5a9d143"}, + {file = "mypy-1.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbaf4662e498c8c2e352da5f5bca5ab29d378895fa2d980630656178bd607c46"}, + {file = "mypy-1.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bb8ccb4724f7d8601938571bf3f24da0da791fe2db7be3d9e79849cb64e0ae85"}, + {file = "mypy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:68351911e85145f582b5aa6cd9ad666c8958bcae897a1bfda8f4940472463c45"}, + {file = "mypy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:49ae115da099dcc0922a7a895c1eec82c1518109ea5c162ed50e3b3594c71208"}, + {file = "mypy-1.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b27958f8c76bed8edaa63da0739d76e4e9ad4ed325c814f9b3851425582a3cd"}, + {file = "mypy-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:925cd6a3b7b55dfba252b7c4561892311c5358c6b5a601847015a1ad4eb7d332"}, + {file = "mypy-1.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8f57e6b6927a49550da3d122f0cb983d400f843a8a82e65b3b380d3d7259468f"}, + {file = "mypy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a43ef1c8ddfdb9575691720b6352761f3f53d85f1b57d7745701041053deff30"}, + {file = "mypy-1.6.1-py3-none-any.whl", hash = "sha256:4cbe68ef919c28ea561165206a2dcb68591c50f3bcf777932323bc208d949cf1"}, + {file = "mypy-1.6.1.tar.gz", hash = "sha256:4d01c00d09a0be62a4ca3f933e315455bde83f37f892ba4b08ce92f3cf44bcc1"}, ] [package.dependencies] @@ -1724,4 +1724,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "9e1979bd2c138dad528724f6db6407fbe241d75a9379f64c382aeca8a7780a34" +content-hash = "fd6fbbc65d6fe35e568ca754731e26254fdee938d46b68216dff6bc2055959f4" diff --git a/pyproject.toml b/pyproject.toml index a096f08..7188a7a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ pytest = "^7.4.2" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" -mypy = "^1.5" +mypy = "^1.6" isort = "^5.11.5" black = "^23.10.0" flynt = "^1.0" From 591124bdec8c774b008f636b0be58bacb05deb76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:05:50 +0000 Subject: [PATCH 258/371] Bump black from 23.10.0 to 23.10.1 Bumps [black](https://github.com/psf/black) from 23.10.0 to 23.10.1. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.10.0...23.10.1) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 40 ++++++++++++++++++++-------------------- pyproject.toml | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9528341..e4d1d9e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -81,29 +81,29 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "23.10.0" +version = "23.10.1" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.10.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:f8dc7d50d94063cdfd13c82368afd8588bac4ce360e4224ac399e769d6704e98"}, - {file = "black-23.10.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:f20ff03f3fdd2fd4460b4f631663813e57dc277e37fb216463f3b907aa5a9bdd"}, - {file = "black-23.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3d9129ce05b0829730323bdcb00f928a448a124af5acf90aa94d9aba6969604"}, - {file = "black-23.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:960c21555be135c4b37b7018d63d6248bdae8514e5c55b71e994ad37407f45b8"}, - {file = "black-23.10.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:30b78ac9b54cf87bcb9910ee3d499d2bc893afd52495066c49d9ee6b21eee06e"}, - {file = "black-23.10.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:0e232f24a337fed7a82c1185ae46c56c4a6167fb0fe37411b43e876892c76699"}, - {file = "black-23.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31946ec6f9c54ed7ba431c38bc81d758970dd734b96b8e8c2b17a367d7908171"}, - {file = "black-23.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:c870bee76ad5f7a5ea7bd01dc646028d05568d33b0b09b7ecfc8ec0da3f3f39c"}, - {file = "black-23.10.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:6901631b937acbee93c75537e74f69463adaf34379a04eef32425b88aca88a23"}, - {file = "black-23.10.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:481167c60cd3e6b1cb8ef2aac0f76165843a374346aeeaa9d86765fe0dd0318b"}, - {file = "black-23.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74892b4b836e5162aa0452393112a574dac85e13902c57dfbaaf388e4eda37c"}, - {file = "black-23.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:47c4510f70ec2e8f9135ba490811c071419c115e46f143e4dce2ac45afdcf4c9"}, - {file = "black-23.10.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:76baba9281e5e5b230c9b7f83a96daf67a95e919c2dfc240d9e6295eab7b9204"}, - {file = "black-23.10.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:a3c2ddb35f71976a4cfeca558848c2f2f89abc86b06e8dd89b5a65c1e6c0f22a"}, - {file = "black-23.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db451a3363b1e765c172c3fd86213a4ce63fb8524c938ebd82919bf2a6e28c6a"}, - {file = "black-23.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:7fb5fc36bb65160df21498d5a3dd330af8b6401be3f25af60c6ebfe23753f747"}, - {file = "black-23.10.0-py3-none-any.whl", hash = "sha256:e223b731a0e025f8ef427dd79d8cd69c167da807f5710add30cdf131f13dd62e"}, - {file = "black-23.10.0.tar.gz", hash = "sha256:31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd"}, + {file = "black-23.10.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:ec3f8e6234c4e46ff9e16d9ae96f4ef69fa328bb4ad08198c8cee45bb1f08c69"}, + {file = "black-23.10.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:1b917a2aa020ca600483a7b340c165970b26e9029067f019e3755b56e8dd5916"}, + {file = "black-23.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c74de4c77b849e6359c6f01987e94873c707098322b91490d24296f66d067dc"}, + {file = "black-23.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b4d10b0f016616a0d93d24a448100adf1699712fb7a4efd0e2c32bbb219b173"}, + {file = "black-23.10.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b15b75fc53a2fbcac8a87d3e20f69874d161beef13954747e053bca7a1ce53a0"}, + {file = "black-23.10.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:e293e4c2f4a992b980032bbd62df07c1bcff82d6964d6c9496f2cd726e246ace"}, + {file = "black-23.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d56124b7a61d092cb52cce34182a5280e160e6aff3137172a68c2c2c4b76bcb"}, + {file = "black-23.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f157a8945a7b2d424da3335f7ace89c14a3b0625e6593d21139c2d8214d55ce"}, + {file = "black-23.10.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:cfcce6f0a384d0da692119f2d72d79ed07c7159879d0bb1bb32d2e443382bf3a"}, + {file = "black-23.10.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:33d40f5b06be80c1bbce17b173cda17994fbad096ce60eb22054da021bf933d1"}, + {file = "black-23.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:840015166dbdfbc47992871325799fd2dc0dcf9395e401ada6d88fe11498abad"}, + {file = "black-23.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:037e9b4664cafda5f025a1728c50a9e9aedb99a759c89f760bd83730e76ba884"}, + {file = "black-23.10.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:7cb5936e686e782fddb1c73f8aa6f459e1ad38a6a7b0e54b403f1f05a1507ee9"}, + {file = "black-23.10.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:7670242e90dc129c539e9ca17665e39a146a761e681805c54fbd86015c7c84f7"}, + {file = "black-23.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed45ac9a613fb52dad3b61c8dea2ec9510bf3108d4db88422bacc7d1ba1243d"}, + {file = "black-23.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6d23d7822140e3fef190734216cefb262521789367fbdc0b3f22af6744058982"}, + {file = "black-23.10.1-py3-none-any.whl", hash = "sha256:d431e6739f727bb2e0495df64a6c7a5310758e87505f5f8cde9ff6c0f2d7e4fe"}, + {file = "black-23.10.1.tar.gz", hash = "sha256:1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258"}, ] [package.dependencies] @@ -1724,4 +1724,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "fd6fbbc65d6fe35e568ca754731e26254fdee938d46b68216dff6bc2055959f4" +content-hash = "4b209897d15c6a0f01891f50e7c67ae0e8d683c15702ce9c35bfd7e49d568d11" diff --git a/pyproject.toml b/pyproject.toml index 7188a7a..abcdea4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.6" isort = "^5.11.5" -black = "^23.10.0" +black = "^23.10.1" flynt = "^1.0" deptry = "^0.12.0" flake8 = "^5.0.4" From f18a3df51a479d68052874dc1fd60879e57b13e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:06:42 +0000 Subject: [PATCH 259/371] Bump sphinx-immaterial from 0.11.7 to 0.11.8 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.7 to 0.11.8. - [Release notes](https://github.com/jbms/sphinx-immaterial/releases) - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.7...v0.11.8) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 225 +++++++++++++++++++++++++++------------------------- 1 file changed, 115 insertions(+), 110 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9528341..3fe2e12 100644 --- a/poetry.lock +++ b/poetry.lock @@ -956,18 +956,18 @@ files = [ [[package]] name = "pydantic" -version = "2.0.2" +version = "2.4.2" description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-2.0.2-py3-none-any.whl", hash = "sha256:f5581e0c79b2ec2fa25a9d30d766629811cdda022107fa73d022ab5578873ae3"}, - {file = "pydantic-2.0.2.tar.gz", hash = "sha256:b802f5245b8576315fe619e5989fd083448fa1258638ef9dac301ca60878396d"}, + {file = "pydantic-2.4.2-py3-none-any.whl", hash = "sha256:bc3ddf669d234f4220e6e1c4d96b061abe0998185a8d7855c0126782b7abc8c1"}, + {file = "pydantic-2.4.2.tar.gz", hash = "sha256:94f336138093a5d7f426aac732dcfe7ab4eb4da243c88f891d65deb4a2556ee7"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.1.2" +pydantic-core = "2.10.1" typing-extensions = ">=4.6.1" [package.extras] @@ -975,112 +975,117 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.1.2" +version = "2.10.1" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic_core-2.1.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:b4815720c266e832b20e27a7a5f3772bb09fdedb31a9a34bab7b49d98967ef5a"}, - {file = "pydantic_core-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8884a1dbfc5cb8c54b48446ca916d4577c1f4d901126091e4ab25d00194e065f"}, - {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74a33aa69d476773230396396afb8e11908f8dafdcfd422e746770599a3f889d"}, - {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af832edd384755826e494ffdcf1fdda86e4babc42a0b18d342943fb18181040e"}, - {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_24_armv7l.whl", hash = "sha256:017700236ea2e7afbef5d3803559c80bd8720306778ebd49268de7ce9972e83e"}, - {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:c2d00a96fdf26295c6f25eaf9e4a233f353146a73713cd97a5f5dc6090c3aef2"}, - {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_24_s390x.whl", hash = "sha256:2575664f0a559a7b951a518f6f34c23cab7190f34f8220b8c8218c4f403147ee"}, - {file = "pydantic_core-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24c3c9180a2d19d640bacc2d00f497a9a1f2abadb2a9ee201b56bb03bc5343bd"}, - {file = "pydantic_core-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:88a56f0f6d020b4d17641f4b4d1f9540a536d4146768d059c430e97bdb485fc1"}, - {file = "pydantic_core-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fa38a76e832743866aed6b715869757074b06357d1a260163ec26d84974245fe"}, - {file = "pydantic_core-2.1.2-cp310-none-win32.whl", hash = "sha256:a772c652603855d7180015849d483a1f539351a263bb9b81bfe85193a33ce124"}, - {file = "pydantic_core-2.1.2-cp310-none-win_amd64.whl", hash = "sha256:b4673d1f29487608d613ebcc5caa99ba15eb58450a7449fb6d800f29d90bebc1"}, - {file = "pydantic_core-2.1.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:76c9c55462740d728b344e3a087775846516c3fee31ec56e2075faa7cfcafcbf"}, - {file = "pydantic_core-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cb854ec52e6e2e05b83d647695f4d913452fdd45a3dfa8233d7dab5967b3908f"}, - {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ac140d54da366672f6b91f9a1e8e2d4e7e72720143353501ae886d3fca03272"}, - {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:818f5cb1b209ab1295087c45717178f4bbbd2bd7eda421f7a119e7b9b736a3cb"}, - {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_24_armv7l.whl", hash = "sha256:db4564aea8b3cb6cf1e5f3fd80f1ced73a255d492396d1bd8abd688795b34d63"}, - {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_24_ppc64le.whl", hash = "sha256:2ca2d2d5ab65fb40dd05259965006edcc62a9d9b30102737c0a6f45bcbd254e8"}, - {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_24_s390x.whl", hash = "sha256:7c7ad8958aadfbcd664078002246796ecd5566b64b22f6af4fd1bbcec6bf8f60"}, - {file = "pydantic_core-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:080a7af828388284a68ad7d3d3eac3bcfff6a580292849aff087e7d556ec42d4"}, - {file = "pydantic_core-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bad7029fb2251c1ac7d3acdd607e540d40d137a7d43a5e5acdcfdbd38db3fc0a"}, - {file = "pydantic_core-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1635a37137fafbc6ee0a8c879857e05b30b1aabaa927e653872b71f1501b1502"}, - {file = "pydantic_core-2.1.2-cp311-none-win32.whl", hash = "sha256:eb4301f009a44bb5db5edfe4e51a8175a4112b566baec07f4af8b1f8cb4649a2"}, - {file = "pydantic_core-2.1.2-cp311-none-win_amd64.whl", hash = "sha256:ebf583f4d9b52abd15cc59e5f6eeca7e3e9741c6ea62d8711c00ac3acb067875"}, - {file = "pydantic_core-2.1.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:90b06bb47e60173d24c7cb79670aa8dd6081797290353b9d3c66d3a23e88eb34"}, - {file = "pydantic_core-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e5761ce986ec709897b1b965fad9743f301500434bea3cbab2b6e662571580f"}, - {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b9f8bf1d7008a58fbb6eb334dc6e2f2905400cced8dadb46c4ca28f005a8562"}, - {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a014ee88980013d192a718cbb88e8cea20acd3afad69bc6d15672d05a49cdb6"}, - {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_24_armv7l.whl", hash = "sha256:8125152b03dd91deca5afe5b933a1994b39405adf6be2fe8dce3632319283f85"}, - {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_24_ppc64le.whl", hash = "sha256:dc737506b4a0ba2922a2626fc6d620ce50a46aebd0fe2fbcad1b93bbdd8c7e78"}, - {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_24_s390x.whl", hash = "sha256:bb471ea8650796060afc99909d9b75da583d317e52f660faf64c45f70b3bf1e2"}, - {file = "pydantic_core-2.1.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1fad38db1744d27061df516e59c5025b09b0a50a337c04e6eebdbddc18951bc"}, - {file = "pydantic_core-2.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:94d368af9e6563de6e7170a74710a2cbace7a1e9c8e507d9e3ac34c7065d7ae3"}, - {file = "pydantic_core-2.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bd95d223de5162811a7b36c73d48eac4fee03b075132f3a1b73c132ce157a60c"}, - {file = "pydantic_core-2.1.2-cp312-none-win32.whl", hash = "sha256:cd62f73830d4715bc643ae39de0bd4fb9c81d6d743530074da91e77a2cccfe67"}, - {file = "pydantic_core-2.1.2-cp312-none-win_amd64.whl", hash = "sha256:51968887d6bd1eaa7fc7759701ea8ccb470c04654beaa8ede6835b0533f206a9"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:7ff6bfe63f447a509ed4d368a7f4ba6a7abc03bc4744fc3fb30f2ffab73f3821"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:4e67f9b9dfda2e42b39459cbf99d319ccb90da151e35cead3521975b2afbf673"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b815a769b019dd96be6571096f246b74f63330547e9b30244c51b4a2eb0277fc"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4aff436c23c68449601b3fba7075b4f37ef8fbb893c8c1ed3ef898f090332b1e"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_24_armv7l.whl", hash = "sha256:2ee3ae58f271851362f6c9b33e4c9f9e866557ec7d8c03dc091e9b5aa5566cec"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:cf92dccca8f66e987f6c4378700447f82b79e86407912ab1ee06b16b82f05120"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_24_s390x.whl", hash = "sha256:4663293a36a851a860b1299c50837914269fca127434911297dd39fea9667a01"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1c917f7a41d9d09b8b024a5d65cf37e5588ccdb6e610d2df565fb7186b1f3b1c"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:06ae67547251135a1b3f8dd465797b13146295a3866bc12ddd73f7512787bb7c"}, - {file = "pydantic_core-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4938b32c09dbcecbeb652327cb4a449b1ef1a1bf6c8fc2c8241aa6b8f6d63b54"}, - {file = "pydantic_core-2.1.2-cp37-none-win32.whl", hash = "sha256:682ff9228c838018c47dfa89b3d84cca45f88cacde28807ab8296ec221862af4"}, - {file = "pydantic_core-2.1.2-cp37-none-win_amd64.whl", hash = "sha256:6e3bcb4a9bc209a61ea2aceb7433ce2ece32c7e670b0c06848bf870c9b3e7d87"}, - {file = "pydantic_core-2.1.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:2278ca0b0dfbcfb1e12fa58570916dc260dc72bee5e6e342debf5329d8204688"}, - {file = "pydantic_core-2.1.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:87cff210af3258ca0c829e3ebc849d7981bfde23a99d6cb7a3c17a163b3dbad2"}, - {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7684b5fb906b37e940c5df3f57118f32e033af5e4770e5ae2ae56fbd2fe1a30a"}, - {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3747a4178139ebf3f19541285b2eb7c886890ca4eb7eec851578c02a13cc1385"}, - {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_24_armv7l.whl", hash = "sha256:e17056390068afd4583d88dcf4d4495764e4e2c7d756464468e0d21abcb8931e"}, - {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:c720e55cef609d50418bdfdfb5c44a76efc020ae7455505788d0113c54c7df55"}, - {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_24_s390x.whl", hash = "sha256:b59a64c367f350873c40a126ffe9184d903d2126c701380b4b55753484df5948"}, - {file = "pydantic_core-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68a2a767953c707d9575dcf14d8edee7930527ee0141a8bb612c22d1f1059f9a"}, - {file = "pydantic_core-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4ae46769d9a7138d58cd190441cac14ce954010a0081f28462ed916c8e55a4f"}, - {file = "pydantic_core-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc909f62325a631e1401dd07dfc386986dbcac15f98c9ff2145d930678a9d25a"}, - {file = "pydantic_core-2.1.2-cp38-none-win32.whl", hash = "sha256:b4038869ba1d8fa33863b4b1286ab07e6075a641ae269b865f94d7e10b3e800e"}, - {file = "pydantic_core-2.1.2-cp38-none-win_amd64.whl", hash = "sha256:5948af62f323252d56acaec8ebfca5f15933f6b72f8dbe3bf21ee97b2d10e3f0"}, - {file = "pydantic_core-2.1.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:8e6ce261ccb9a986953c4dce070327e4954f9dd4cd214746dfc70efbc713b6a1"}, - {file = "pydantic_core-2.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d35d634d9d1ed280c87bc2a7a6217b8787eedc86f368fc2fa1c0c8c78f7d3c93"}, - {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be2e2812a43205728a06c9d0fd090432cd76a9bb5bff2bfcfdf8b0e27d51851"}, - {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0eb54b11cd4fe0c6404611eef77086ade03eb1457e92910bbb4f3479efa3f79"}, - {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_24_armv7l.whl", hash = "sha256:087ddbb754575618a8832ee4ab52fe7eb332f502e2a56088b53dbeb5c4efdf9f"}, - {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:b74906e01c7fc938ac889588ef438de812989817095c3c4904721f647d64a4d1"}, - {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_24_s390x.whl", hash = "sha256:60b7239206a2f61ad89c7518adfacb3ccd6662eaa07c5e437317aea2615a1f18"}, - {file = "pydantic_core-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:be3419204952bbe9b72b90008977379c52f99ae1c6e640488de4be783c345d71"}, - {file = "pydantic_core-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:804cf8f6a859620f8eb754c02f7770f61c3e9c519f8338c331d555b3d6976e3c"}, - {file = "pydantic_core-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cbba32fb14e199d0493c6b9c44870dab0a9c37af9f0f729068459d1849279ffd"}, - {file = "pydantic_core-2.1.2-cp39-none-win32.whl", hash = "sha256:6bf00f56a4468f5b03dadb672a5f1d24aea303d4ccffe8a0f548c9e36017edd3"}, - {file = "pydantic_core-2.1.2-cp39-none-win_amd64.whl", hash = "sha256:ac462a28218ea7d592c7ad51b517558f4ac6565a4e53db7a4811eeaf9c9660b0"}, - {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:047e782b9918f35ef534ced36f1fd2064f5581229b7a15e4d3177387a6b53134"}, - {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c0213891898fa5b404cf3edf4797e3ac7819a0708ea5473fc6432a2aa27c189"}, - {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0f481aaf0119f77b200e5a5e2799b3e14c015a317eaa948f42263908735cc9f"}, - {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15eb4cb543ed36f6a4f16e3bee7aa7ed1c3757be95a3f3bbb2b82b9887131e0f"}, - {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:ef71e73a81a4cd7e87c93e8ff0170140fd93ba33b0f61e83da3f55f6e0a84fb4"}, - {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:840238c845b0f80777151fef0003088ab91c6f7b3467edaff4932b425c4e3c3f"}, - {file = "pydantic_core-2.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7648e48ba263ca0a8a2dc55a60a219c9133fb101ba52c89a14a29fb3d4322ca3"}, - {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:8eb4e2b71562375609c66a79f89acd4fe95c5cba23473d04952c8b14b6f908f5"}, - {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056afea59651c4e47ec6dadbb77ccae4742c059a3d12bc1c0e393d189d2970d"}, - {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46cd323371aa7e4053010ccdb94063a4273aa9e5dbe97f8a1147faa769de8d8d"}, - {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa39499625239da4ec960cf4fc66b023929b24cc77fb8520289cfdb3c1986428"}, - {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f5de2d4167fd4bc5ad205fb7297e25867b8e335ca08d64ed7a561d2955a2c32d"}, - {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:9a5fba9168fc27805553760fa8198db46eef83bf52b4e87ebbe1333b823d0e70"}, - {file = "pydantic_core-2.1.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e68a404fad8493989d6f07b7b9e066f1d2524d7cb64db2d4e9a84c920032c67f"}, - {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:1a5c4475510d1a9cc1458a26cfc21442223e52ce9adb640775c38739315d03c7"}, - {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0681472245ef182554208a25d16884c84f1c5a69f14e6169b88932e5da739a1c"}, - {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7fd334b40c5e13a97becfcaba314de0dcc6f7fe21ec8f992139bcc64700e9dc"}, - {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7345b1741bf66a9d8ed0ec291c3eabd534444e139e1ea6db5742ac9fd3be2530"}, - {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0855cf8b760fb40f97f0226cb527c8a94a2ab9d8179628beae20d6939aaeacb0"}, - {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:d281a10837d98db997c0247f45d138522c91ce30cf3ae7a6afdb5e709707d360"}, - {file = "pydantic_core-2.1.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:82e09f27edab289187dd924d4d93f2a35f21aa969699b2504aa643da7fbfeff9"}, - {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:aa54902fa51f7d921ba80923cf1c7ff3dce796a7903300bd8824deb90e357744"}, - {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b9a5fc4058d64c9c826684dcdb43891c1b474a4a88dcf8dfc3e1fb5889496f8"}, - {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:817681d111cb65f07d46496eafec815f48e1aff37713b73135a0a9eb4d3610ab"}, - {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b5d37aedea5963f2097bddbcdb255483191646a52d40d8bb66d61c190fcac91"}, - {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f2de65752fff248319bcd3b29da24e205fa505607539fcd4acc4037355175b63"}, - {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:a8b9c2cc4c5f8169b943d24be4bd1548fe81c016d704126e3a3124a2fc164885"}, - {file = "pydantic_core-2.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f7bcdf70c8b6e70be11c78d3c00b80a24cccfb408128f23e91ec3019bed1ecc1"}, - {file = "pydantic_core-2.1.2.tar.gz", hash = "sha256:d2c790f0d928b672484eac4f5696dd0b78f3d6d148a641ea196eb49c0875e30a"}, + {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"}, + {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"}, + {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"}, + {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"}, + {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"}, + {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"}, + {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"}, + {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"}, + {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"}, + {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"}, + {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"}, + {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"}, + {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"}, + {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"}, + {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"}, + {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"}, + {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"}, + {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"}, + {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"}, + {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"}, + {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"}, + {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"}, + {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"}, + {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"}, + {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"}, + {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"}, + {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"}, + {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"}, + {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"}, + {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"}, + {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"}, + {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"}, + {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"}, ] [package.dependencies] @@ -1503,19 +1508,19 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.7" +version = "0.11.8" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.7-py3-none-any.whl", hash = "sha256:2166b8272e1dbf2c2fd93c801c6db24e1d7168c5c7283159bf0e8ee713166c02"}, - {file = "sphinx_immaterial-0.11.7.tar.gz", hash = "sha256:619075d7d5edd03bc92a1bbf9bab68675cf52cf43965b1d6607222881a15d88c"}, + {file = "sphinx_immaterial-0.11.8-py3-none-any.whl", hash = "sha256:4362096902384f907aad4758452fdc02f4080e615cb4ce28838fb941f9f52734"}, + {file = "sphinx_immaterial-0.11.8.tar.gz", hash = "sha256:35b1d96b8bf2eaf42d8a1ce7d5d1526b8fe0d95a14aed90635ad50211805182d"}, ] [package.dependencies] appdirs = "*" markupsafe = "*" -pydantic = ">=2.0" +pydantic = ">=2.4" pydantic-extra-types = "*" requests = "*" sphinx = ">=4.5" From 8e98b5f2ca5ca4965915562d83287170b408c061 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 12:24:08 +0000 Subject: [PATCH 260/371] Bump pytest from 7.4.2 to 7.4.3 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.2 to 7.4.3. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.4.2...7.4.3) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index e4d1d9e..4e6b561 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1149,13 +1149,13 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes [[package]] name = "pytest" -version = "7.4.2" +version = "7.4.3" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, - {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, + {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, + {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, ] [package.dependencies] @@ -1724,4 +1724,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "4b209897d15c6a0f01891f50e7c67ae0e8d683c15702ce9c35bfd7e49d568d11" +content-hash = "c777b11a40b29bcc967cc8ad418e163525994e66fbb9aae6b12d6de333822833" diff --git a/pyproject.toml b/pyproject.toml index abcdea4..9cac644 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^7.4.2" +pytest = "^7.4.3" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From 5300775f9562f3d542480e1a37831dde8a2d6221 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 13:01:15 +0000 Subject: [PATCH 261/371] Bump black from 23.10.1 to 23.11.0 Bumps [black](https://github.com/psf/black) from 23.10.1 to 23.11.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.10.1...23.11.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 40 ++++++++++++++++++++-------------------- pyproject.toml | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/poetry.lock b/poetry.lock index f28294a..b792288 100644 --- a/poetry.lock +++ b/poetry.lock @@ -81,29 +81,29 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "23.10.1" +version = "23.11.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.10.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:ec3f8e6234c4e46ff9e16d9ae96f4ef69fa328bb4ad08198c8cee45bb1f08c69"}, - {file = "black-23.10.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:1b917a2aa020ca600483a7b340c165970b26e9029067f019e3755b56e8dd5916"}, - {file = "black-23.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c74de4c77b849e6359c6f01987e94873c707098322b91490d24296f66d067dc"}, - {file = "black-23.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b4d10b0f016616a0d93d24a448100adf1699712fb7a4efd0e2c32bbb219b173"}, - {file = "black-23.10.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b15b75fc53a2fbcac8a87d3e20f69874d161beef13954747e053bca7a1ce53a0"}, - {file = "black-23.10.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:e293e4c2f4a992b980032bbd62df07c1bcff82d6964d6c9496f2cd726e246ace"}, - {file = "black-23.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d56124b7a61d092cb52cce34182a5280e160e6aff3137172a68c2c2c4b76bcb"}, - {file = "black-23.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f157a8945a7b2d424da3335f7ace89c14a3b0625e6593d21139c2d8214d55ce"}, - {file = "black-23.10.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:cfcce6f0a384d0da692119f2d72d79ed07c7159879d0bb1bb32d2e443382bf3a"}, - {file = "black-23.10.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:33d40f5b06be80c1bbce17b173cda17994fbad096ce60eb22054da021bf933d1"}, - {file = "black-23.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:840015166dbdfbc47992871325799fd2dc0dcf9395e401ada6d88fe11498abad"}, - {file = "black-23.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:037e9b4664cafda5f025a1728c50a9e9aedb99a759c89f760bd83730e76ba884"}, - {file = "black-23.10.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:7cb5936e686e782fddb1c73f8aa6f459e1ad38a6a7b0e54b403f1f05a1507ee9"}, - {file = "black-23.10.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:7670242e90dc129c539e9ca17665e39a146a761e681805c54fbd86015c7c84f7"}, - {file = "black-23.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed45ac9a613fb52dad3b61c8dea2ec9510bf3108d4db88422bacc7d1ba1243d"}, - {file = "black-23.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6d23d7822140e3fef190734216cefb262521789367fbdc0b3f22af6744058982"}, - {file = "black-23.10.1-py3-none-any.whl", hash = "sha256:d431e6739f727bb2e0495df64a6c7a5310758e87505f5f8cde9ff6c0f2d7e4fe"}, - {file = "black-23.10.1.tar.gz", hash = "sha256:1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258"}, + {file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"}, + {file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"}, + {file = "black-23.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d136ef5b418c81660ad847efe0e55c58c8208b77a57a28a503a5f345ccf01394"}, + {file = "black-23.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:6c1cac07e64433f646a9a838cdc00c9768b3c362805afc3fce341af0e6a9ae9f"}, + {file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"}, + {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"}, + {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"}, + {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"}, + {file = "black-23.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:45aa1d4675964946e53ab81aeec7a37613c1cb71647b5394779e6efb79d6d187"}, + {file = "black-23.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c44b7211a3a0570cc097e81135faa5f261264f4dfaa22bd5ee2875a4e773bd6"}, + {file = "black-23.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9acad1451632021ee0d146c8765782a0c3846e0e0ea46659d7c4f89d9b212b"}, + {file = "black-23.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc7f6a44d52747e65a02558e1d807c82df1d66ffa80a601862040a43ec2e3142"}, + {file = "black-23.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f622b6822f02bfaf2a5cd31fdb7cd86fcf33dab6ced5185c35f5db98260b055"}, + {file = "black-23.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:250d7e60f323fcfc8ea6c800d5eba12f7967400eb6c2d21ae85ad31c204fb1f4"}, + {file = "black-23.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5133f5507007ba08d8b7b263c7aa0f931af5ba88a29beacc4b2dc23fcefe9c06"}, + {file = "black-23.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:421f3e44aa67138ab1b9bfbc22ee3780b22fa5b291e4db8ab7eee95200726b07"}, + {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"}, + {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"}, ] [package.dependencies] @@ -1729,4 +1729,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "c777b11a40b29bcc967cc8ad418e163525994e66fbb9aae6b12d6de333822833" +content-hash = "81aa1d9a41b3bfd9d163412d5eb420fcb1dc2aa3f53e523a76bd5ad85d84af3f" diff --git a/pyproject.toml b/pyproject.toml index 9cac644..5b6d94d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.6" isort = "^5.11.5" -black = "^23.10.1" +black = "^23.11.0" flynt = "^1.0" deptry = "^0.12.0" flake8 = "^5.0.4" From fbacc6db226903d86d5afce8df01c1754965a87d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 12:59:41 +0000 Subject: [PATCH 262/371] Bump sphinx-immaterial from 0.11.8 to 0.11.9 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.8 to 0.11.9. - [Release notes](https://github.com/jbms/sphinx-immaterial/releases) - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.8...v0.11.9) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index b792288..3d0b8a4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1508,13 +1508,13 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.8" +version = "0.11.9" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.8-py3-none-any.whl", hash = "sha256:4362096902384f907aad4758452fdc02f4080e615cb4ce28838fb941f9f52734"}, - {file = "sphinx_immaterial-0.11.8.tar.gz", hash = "sha256:35b1d96b8bf2eaf42d8a1ce7d5d1526b8fe0d95a14aed90635ad50211805182d"}, + {file = "sphinx_immaterial-0.11.9-py3-none-any.whl", hash = "sha256:7f4f295fbcb0dc09251893743d2404e39abbd0e3f8bd61fcb81a8665fd11d0f2"}, + {file = "sphinx_immaterial-0.11.9.tar.gz", hash = "sha256:9ee37b549ce44271181abf1a0532a560e3976052700f050523054cf89e77ffd5"}, ] [package.dependencies] From abf32c0f732f5fc522927c1c1040fd87bcf5f1d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 13:00:07 +0000 Subject: [PATCH 263/371] Bump jsonschema from 4.19.1 to 4.20.0 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.19.1 to 4.20.0. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.19.1...v4.20.0) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index b792288..83626c1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -586,13 +586,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.19.1" +version = "4.20.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.19.1-py3-none-any.whl", hash = "sha256:cd5f1f9ed9444e554b38ba003af06c0a8c2868131e56bfbef0550fb450c0330e"}, - {file = "jsonschema-4.19.1.tar.gz", hash = "sha256:ec84cc37cfa703ef7cd4928db24f9cb31428a5d0fa77747b8b51a847458e0bbf"}, + {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"}, + {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"}, ] [package.dependencies] From 98ea2167be1ca50bc3b3c13b3589b8c46e635861 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 13:00:40 +0000 Subject: [PATCH 264/371] Bump jsonschema-path from 0.3.1 to 0.3.2 Bumps [jsonschema-path](https://github.com/p1c2u/jsonschema-path) from 0.3.1 to 0.3.2. - [Release notes](https://github.com/p1c2u/jsonschema-path/releases) - [Commits](https://github.com/p1c2u/jsonschema-path/compare/0.3.1...0.3.2) --- updated-dependencies: - dependency-name: jsonschema-path dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index b792288..26d8229 100644 --- a/poetry.lock +++ b/poetry.lock @@ -609,19 +609,19 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-path" -version = "0.3.1" +version = "0.3.2" description = "JSONSchema Spec with object-oriented paths" optional = false python-versions = ">=3.8.0,<4.0.0" files = [ - {file = "jsonschema_path-0.3.1-py3-none-any.whl", hash = "sha256:06f01b1848a28963f49a17730e11204d252aa6ff5db4ef84ec77e5ac93cfa831"}, - {file = "jsonschema_path-0.3.1.tar.gz", hash = "sha256:07ea584b5c9b41a614b4d011c5575955676f48d0abbfd93d9ea8e933018d716d"}, + {file = "jsonschema_path-0.3.2-py3-none-any.whl", hash = "sha256:271aedfefcd161a0f467bdf23e1d9183691a61eaabf4b761046a914e369336c7"}, + {file = "jsonschema_path-0.3.2.tar.gz", hash = "sha256:4d0dababf341e36e9b91a5fb2a3e3fd300b0150e7fe88df4e55cc8253c5a3989"}, ] [package.dependencies] pathable = ">=0.4.1,<0.5.0" PyYAML = ">=5.1" -referencing = ">=0.28.0,<0.31.0" +referencing = ">=0.28.0,<0.32.0" requests = ">=2.31.0,<3.0.0" [[package]] From dee5315a250a3e51899ead00894a472cdb39f8a2 Mon Sep 17 00:00:00 2001 From: Wouter Wijsman Date: Wed, 22 Nov 2023 11:22:49 +0100 Subject: [PATCH 265/371] Allow undefined required properties According to the OpenAPI spec this is allowed. This should solve #97 --- openapi_spec_validator/validation/keywords.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index 081a0ec..e21df31 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -144,7 +144,7 @@ def __call__( set(required) - set(properties) - set(nested_properties) ) else: - extra_properties = list(set(required) - set(properties)) + extra_properties = [] if extra_properties and require_properties: yield ExtraParametersError( From 3df617f09bdf32ea342bd0df6d37d4c9cc4ff8e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 12:28:04 +0000 Subject: [PATCH 266/371] Bump mypy from 1.6.1 to 1.7.1 Bumps [mypy](https://github.com/python/mypy) from 1.6.1 to 1.7.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.6.1...v1.7.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 59 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index e97ea3a..918d2fb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -766,38 +766,38 @@ files = [ [[package]] name = "mypy" -version = "1.6.1" +version = "1.7.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e5012e5cc2ac628177eaac0e83d622b2dd499e28253d4107a08ecc59ede3fc2c"}, - {file = "mypy-1.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d8fbb68711905f8912e5af474ca8b78d077447d8f3918997fecbf26943ff3cbb"}, - {file = "mypy-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a1ad938fee7d2d96ca666c77b7c494c3c5bd88dff792220e1afbebb2925b5e"}, - {file = "mypy-1.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b96ae2c1279d1065413965c607712006205a9ac541895004a1e0d4f281f2ff9f"}, - {file = "mypy-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:40b1844d2e8b232ed92e50a4bd11c48d2daa351f9deee6c194b83bf03e418b0c"}, - {file = "mypy-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:81af8adaa5e3099469e7623436881eff6b3b06db5ef75e6f5b6d4871263547e5"}, - {file = "mypy-1.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8c223fa57cb154c7eab5156856c231c3f5eace1e0bed9b32a24696b7ba3c3245"}, - {file = "mypy-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8032e00ce71c3ceb93eeba63963b864bf635a18f6c0c12da6c13c450eedb183"}, - {file = "mypy-1.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c46b51de523817a0045b150ed11b56f9fff55f12b9edd0f3ed35b15a2809de0"}, - {file = "mypy-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:19f905bcfd9e167159b3d63ecd8cb5e696151c3e59a1742e79bc3bcb540c42c7"}, - {file = "mypy-1.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:82e469518d3e9a321912955cc702d418773a2fd1e91c651280a1bda10622f02f"}, - {file = "mypy-1.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d4473c22cc296425bbbce7e9429588e76e05bc7342da359d6520b6427bf76660"}, - {file = "mypy-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59a0d7d24dfb26729e0a068639a6ce3500e31d6655df8557156c51c1cb874ce7"}, - {file = "mypy-1.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cfd13d47b29ed3bbaafaff7d8b21e90d827631afda134836962011acb5904b71"}, - {file = "mypy-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:eb4f18589d196a4cbe5290b435d135dee96567e07c2b2d43b5c4621b6501531a"}, - {file = "mypy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:41697773aa0bf53ff917aa077e2cde7aa50254f28750f9b88884acea38a16169"}, - {file = "mypy-1.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7274b0c57737bd3476d2229c6389b2ec9eefeb090bbaf77777e9d6b1b5a9d143"}, - {file = "mypy-1.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbaf4662e498c8c2e352da5f5bca5ab29d378895fa2d980630656178bd607c46"}, - {file = "mypy-1.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bb8ccb4724f7d8601938571bf3f24da0da791fe2db7be3d9e79849cb64e0ae85"}, - {file = "mypy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:68351911e85145f582b5aa6cd9ad666c8958bcae897a1bfda8f4940472463c45"}, - {file = "mypy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:49ae115da099dcc0922a7a895c1eec82c1518109ea5c162ed50e3b3594c71208"}, - {file = "mypy-1.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b27958f8c76bed8edaa63da0739d76e4e9ad4ed325c814f9b3851425582a3cd"}, - {file = "mypy-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:925cd6a3b7b55dfba252b7c4561892311c5358c6b5a601847015a1ad4eb7d332"}, - {file = "mypy-1.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8f57e6b6927a49550da3d122f0cb983d400f843a8a82e65b3b380d3d7259468f"}, - {file = "mypy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a43ef1c8ddfdb9575691720b6352761f3f53d85f1b57d7745701041053deff30"}, - {file = "mypy-1.6.1-py3-none-any.whl", hash = "sha256:4cbe68ef919c28ea561165206a2dcb68591c50f3bcf777932323bc208d949cf1"}, - {file = "mypy-1.6.1.tar.gz", hash = "sha256:4d01c00d09a0be62a4ca3f933e315455bde83f37f892ba4b08ce92f3cf44bcc1"}, + {file = "mypy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12cce78e329838d70a204293e7b29af9faa3ab14899aec397798a4b41be7f340"}, + {file = "mypy-1.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1484b8fa2c10adf4474f016e09d7a159602f3239075c7bf9f1627f5acf40ad49"}, + {file = "mypy-1.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31902408f4bf54108bbfb2e35369877c01c95adc6192958684473658c322c8a5"}, + {file = "mypy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f2c2521a8e4d6d769e3234350ba7b65ff5d527137cdcde13ff4d99114b0c8e7d"}, + {file = "mypy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:fcd2572dd4519e8a6642b733cd3a8cfc1ef94bafd0c1ceed9c94fe736cb65b6a"}, + {file = "mypy-1.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b901927f16224d0d143b925ce9a4e6b3a758010673eeded9b748f250cf4e8f7"}, + {file = "mypy-1.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2f7f6985d05a4e3ce8255396df363046c28bea790e40617654e91ed580ca7c51"}, + {file = "mypy-1.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:944bdc21ebd620eafefc090cdf83158393ec2b1391578359776c00de00e8907a"}, + {file = "mypy-1.7.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9c7ac372232c928fff0645d85f273a726970c014749b924ce5710d7d89763a28"}, + {file = "mypy-1.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:f6efc9bd72258f89a3816e3a98c09d36f079c223aa345c659622f056b760ab42"}, + {file = "mypy-1.7.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6dbdec441c60699288adf051f51a5d512b0d818526d1dcfff5a41f8cd8b4aaf1"}, + {file = "mypy-1.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4fc3d14ee80cd22367caaaf6e014494415bf440980a3045bf5045b525680ac33"}, + {file = "mypy-1.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c6e4464ed5f01dc44dc9821caf67b60a4e5c3b04278286a85c067010653a0eb"}, + {file = "mypy-1.7.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d9b338c19fa2412f76e17525c1b4f2c687a55b156320acb588df79f2e6fa9fea"}, + {file = "mypy-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:204e0d6de5fd2317394a4eff62065614c4892d5a4d1a7ee55b765d7a3d9e3f82"}, + {file = "mypy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:84860e06ba363d9c0eeabd45ac0fde4b903ad7aa4f93cd8b648385a888e23200"}, + {file = "mypy-1.7.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8c5091ebd294f7628eb25ea554852a52058ac81472c921150e3a61cdd68f75a7"}, + {file = "mypy-1.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40716d1f821b89838589e5b3106ebbc23636ffdef5abc31f7cd0266db936067e"}, + {file = "mypy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cf3f0c5ac72139797953bd50bc6c95ac13075e62dbfcc923571180bebb662e9"}, + {file = "mypy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:78e25b2fd6cbb55ddfb8058417df193f0129cad5f4ee75d1502248e588d9e0d7"}, + {file = "mypy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:75c4d2a6effd015786c87774e04331b6da863fc3fc4e8adfc3b40aa55ab516fe"}, + {file = "mypy-1.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2643d145af5292ee956aa0a83c2ce1038a3bdb26e033dadeb2f7066fb0c9abce"}, + {file = "mypy-1.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75aa828610b67462ffe3057d4d8a4112105ed211596b750b53cbfe182f44777a"}, + {file = "mypy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ee5d62d28b854eb61889cde4e1dbc10fbaa5560cb39780c3995f6737f7e82120"}, + {file = "mypy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:72cf32ce7dd3562373f78bd751f73c96cfb441de147cc2448a92c1a308bd0ca6"}, + {file = "mypy-1.7.1-py3-none-any.whl", hash = "sha256:f7c5d642db47376a0cc130f0de6d055056e010debdaf0707cd2b0fc7e7ef30ea"}, + {file = "mypy-1.7.1.tar.gz", hash = "sha256:fcb6d9afb1b6208b4c712af0dafdc650f518836065df0d4fb1d800f5d6773db2"}, ] [package.dependencies] @@ -808,6 +808,7 @@ typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] +mypyc = ["setuptools (>=50)"] reports = ["lxml"] [[package]] @@ -1729,4 +1730,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "81aa1d9a41b3bfd9d163412d5eb420fcb1dc2aa3f53e523a76bd5ad85d84af3f" +content-hash = "ee32085132329f89e74b5fe81ae57848894ced26a2e93dba92206861ee5dbee3" diff --git a/pyproject.toml b/pyproject.toml index 5b6d94d..3d225dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ pytest = "^7.4.3" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" -mypy = "^1.6" +mypy = "^1.7" isort = "^5.11.5" black = "^23.11.0" flynt = "^1.0" From 974d336b71963ca59607045f739791ad20c1c572 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 12:08:29 +0000 Subject: [PATCH 267/371] Bump tox from 4.11.3 to 4.11.4 Bumps [tox](https://github.com/tox-dev/tox) from 4.11.3 to 4.11.4. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.11.3...4.11.4) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2288b1b..ff73f9b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -1636,13 +1636,13 @@ files = [ [[package]] name = "tox" -version = "4.11.3" +version = "4.11.4" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.11.3-py3-none-any.whl", hash = "sha256:599af5e5bb0cad0148ac1558a0b66f8fff219ef88363483b8d92a81e4246f28f"}, - {file = "tox-4.11.3.tar.gz", hash = "sha256:5039f68276461fae6a9452a3b2c7295798f00a0e92edcd9a3b78ba1a73577951"}, + {file = "tox-4.11.4-py3-none-any.whl", hash = "sha256:2adb83d68f27116812b69aa36676a8d6a52249cb0d173649de0e7d0c2e3e7229"}, + {file = "tox-4.11.4.tar.gz", hash = "sha256:73a7240778fabf305aeb05ab8ea26e575e042ab5a18d71d0ed13e343a51d6ce1"}, ] [package.dependencies] From b32bcb07eb50d35a7f0094ed8d291e50b0b95862 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 12:24:27 +0000 Subject: [PATCH 268/371] Bump python from 3.12.0-alpine to 3.12.1-alpine Bumps python from 3.12.0-alpine to 3.12.1-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 58ae4d1..417de04 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.1 -FROM python:3.12.0-alpine as builder +FROM python:3.12.1-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.12.0-alpine +FROM python:3.12.1-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 42bedcb9f532fc0cf99b47c4a4197c87d69a4a0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:13:38 +0000 Subject: [PATCH 269/371] Bump isort from 5.12.0 to 5.13.2 Bumps [isort](https://github.com/pycqa/isort) from 5.12.0 to 5.13.2. - [Release notes](https://github.com/pycqa/isort/releases) - [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md) - [Commits](https://github.com/pycqa/isort/compare/5.12.0...5.13.2) --- updated-dependencies: - dependency-name: isort dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 13 +++++-------- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index ff73f9b..b8ff9b8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -552,20 +552,17 @@ files = [ [[package]] name = "isort" -version = "5.12.0" +version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" @@ -1730,4 +1727,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "ee32085132329f89e74b5fe81ae57848894ced26a2e93dba92206861ee5dbee3" +content-hash = "fa477f3be9d753b6e29154748d389c51e7b41fdf25b6267e3d157b21376916d5" diff --git a/pyproject.toml b/pyproject.toml index 3d225dd..c32ba70 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" mypy = "^1.7" -isort = "^5.11.5" +isort = "^5.13.2" black = "^23.11.0" flynt = "^1.0" deptry = "^0.12.0" From 983ba430fb41586eb33d1cba22579482fa0eb9c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:13:56 +0000 Subject: [PATCH 270/371] Bump lazy-object-proxy from 1.9.0 to 1.10.0 Bumps [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) from 1.9.0 to 1.10.0. - [Changelog](https://github.com/ionelmc/python-lazy-object-proxy/blob/master/CHANGELOG.rst) - [Commits](https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: lazy-object-proxy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 77 +++++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/poetry.lock b/poetry.lock index ff73f9b..a890d50 100644 --- a/poetry.lock +++ b/poetry.lock @@ -641,47 +641,48 @@ referencing = ">=0.28.0" [[package]] name = "lazy-object-proxy" -version = "1.9.0" +version = "1.10.0" description = "A fast and thorough lazy object proxy." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, + {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, + {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, ] [[package]] From ee443bf20e6eb969da447c1c54657755b232cf2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:14:44 +0000 Subject: [PATCH 271/371] Bump sphinx-immaterial from 0.11.9 to 0.11.10 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.9 to 0.11.10. - [Release notes](https://github.com/jbms/sphinx-immaterial/releases) - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.9...v0.11.10) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index ff73f9b..f12e2f9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1509,13 +1509,13 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.9" +version = "0.11.10" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.9-py3-none-any.whl", hash = "sha256:7f4f295fbcb0dc09251893743d2404e39abbd0e3f8bd61fcb81a8665fd11d0f2"}, - {file = "sphinx_immaterial-0.11.9.tar.gz", hash = "sha256:9ee37b549ce44271181abf1a0532a560e3976052700f050523054cf89e77ffd5"}, + {file = "sphinx_immaterial-0.11.10-py3-none-any.whl", hash = "sha256:be5058b2857b0797887c30f82b20ceb244f30f4847f018c96dade8cc533c1125"}, + {file = "sphinx_immaterial-0.11.10.tar.gz", hash = "sha256:235381da410c1661219057864337eed92a284b40babccaa65c151688ceeafaa7"}, ] [package.dependencies] From dbb12574b6223d8e0dc18c273c7147b8c794f23e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 20:35:18 +0000 Subject: [PATCH 272/371] Bump jinja2 from 3.1.2 to 3.1.3 Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.2 to 3.1.3. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.2...3.1.3) --- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 522327f..4dff7b1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -566,13 +566,13 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.3" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] From da26455ce114237bc2291962227ff7a828875cb0 Mon Sep 17 00:00:00 2001 From: Wouter Wijsman Date: Fri, 19 Jan 2024 17:31:54 +0100 Subject: [PATCH 273/371] Update unit tests for new behaviour --- tests/integration/validation/test_exceptions.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index 687f85a..c8f5961 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -202,7 +202,7 @@ def test_allow_allof_when_required_is_linked_to_the_parent_object(self): errors_list = list(errors) assert errors_list == [] - def test_extra_parameters_in_required(self): + def test_allow_extra_parameters_in_required(self): spec = { "openapi": "3.0.0", "info": { @@ -225,10 +225,7 @@ def test_extra_parameters_in_required(self): errors = OpenAPIV30SpecValidator(spec).iter_errors() errors_list = list(errors) - assert errors_list[0].__class__ == ExtraParametersError - assert errors_list[0].message == ( - "Required list has not defined properties: ['testparam1']" - ) + assert len(errors_list) == 0 def test_undocumented_parameter(self): spec = { From 73814095a8025f4cb99801a679151990faebf632 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 12:23:17 +0000 Subject: [PATCH 274/371] Bump python from 3.12.1-alpine to 3.12.2-alpine Bumps python from 3.12.1-alpine to 3.12.2-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 417de04..6fc8745 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.1 -FROM python:3.12.1-alpine as builder +FROM python:3.12.2-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.12.1-alpine +FROM python:3.12.2-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 962123b546244eb3b692f72c4dd600c6e186e326 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 12:35:31 +0000 Subject: [PATCH 275/371] Bump pytest from 7.4.3 to 8.0.1 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.3 to 8.0.1. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.4.3...8.0.1) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 13 +++++++------ pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index 522327f..99ca08b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1153,13 +1153,13 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes [[package]] name = "pytest" -version = "7.4.3" +version = "8.0.1" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, - {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, + {file = "pytest-8.0.1-py3-none-any.whl", hash = "sha256:3e4f16fe1c0a9dc9d9389161c127c3edc5d810c38d6793042fb81d9f48a59fca"}, + {file = "pytest-8.0.1.tar.gz", hash = "sha256:267f6563751877d772019b13aacbe4e860d73fe8f651f28112e9ac37de7513ae"}, ] [package.dependencies] @@ -1167,7 +1167,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" +pluggy = ">=1.3.0,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] @@ -1242,6 +1242,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -1728,4 +1729,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "fa477f3be9d753b6e29154748d389c51e7b41fdf25b6267e3d157b21376916d5" +content-hash = "a9db4f07a8dd8d98cd9ad4101bd2483ec0dbb1362ffa053bba9809b48bb5682d" diff --git a/pyproject.toml b/pyproject.toml index c32ba70..79a78fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^7.4.3" +pytest = "^8.0.1" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From 16b2db780a862b1a62658324fa32d167088d8a1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 11:33:23 +0000 Subject: [PATCH 276/371] Bump black from 23.11.0 to 24.2.0 Bumps [black](https://github.com/psf/black) from 23.11.0 to 24.2.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/23.11.0...24.2.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 46 +++++++++++++++++++++++++--------------------- pyproject.toml | 2 +- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/poetry.lock b/poetry.lock index 11c5741..f2783f5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -81,29 +81,33 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "23.11.0" +version = "24.2.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"}, - {file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"}, - {file = "black-23.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d136ef5b418c81660ad847efe0e55c58c8208b77a57a28a503a5f345ccf01394"}, - {file = "black-23.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:6c1cac07e64433f646a9a838cdc00c9768b3c362805afc3fce341af0e6a9ae9f"}, - {file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"}, - {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"}, - {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"}, - {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"}, - {file = "black-23.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:45aa1d4675964946e53ab81aeec7a37613c1cb71647b5394779e6efb79d6d187"}, - {file = "black-23.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c44b7211a3a0570cc097e81135faa5f261264f4dfaa22bd5ee2875a4e773bd6"}, - {file = "black-23.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9acad1451632021ee0d146c8765782a0c3846e0e0ea46659d7c4f89d9b212b"}, - {file = "black-23.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc7f6a44d52747e65a02558e1d807c82df1d66ffa80a601862040a43ec2e3142"}, - {file = "black-23.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f622b6822f02bfaf2a5cd31fdb7cd86fcf33dab6ced5185c35f5db98260b055"}, - {file = "black-23.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:250d7e60f323fcfc8ea6c800d5eba12f7967400eb6c2d21ae85ad31c204fb1f4"}, - {file = "black-23.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5133f5507007ba08d8b7b263c7aa0f931af5ba88a29beacc4b2dc23fcefe9c06"}, - {file = "black-23.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:421f3e44aa67138ab1b9bfbc22ee3780b22fa5b291e4db8ab7eee95200726b07"}, - {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"}, - {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"}, + {file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, + {file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, + {file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, + {file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, + {file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, + {file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, + {file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, + {file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, + {file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, + {file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, + {file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, + {file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, + {file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, + {file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, + {file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, + {file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, + {file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, + {file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, + {file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, + {file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, + {file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, + {file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, ] [package.dependencies] @@ -117,7 +121,7 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -1729,4 +1733,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "a9db4f07a8dd8d98cd9ad4101bd2483ec0dbb1362ffa053bba9809b48bb5682d" +content-hash = "37fe2a1351088e8dc36645433239f374637d4a830357f17857c4eaa729955286" diff --git a/pyproject.toml b/pyproject.toml index 79a78fa..1859de7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.7" isort = "^5.13.2" -black = "^23.11.0" +black = "^24.2.0" flynt = "^1.0" deptry = "^0.12.0" flake8 = "^5.0.4" From 2c37be8ad3f7065d03f25ce8de5b8eb440e42092 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 11:39:31 +0000 Subject: [PATCH 277/371] Bump mypy from 1.7.1 to 1.8.0 Bumps [mypy](https://github.com/python/mypy) from 1.7.1 to 1.8.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.7.1...v1.8.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 58 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index f2783f5..580a093 100644 --- a/poetry.lock +++ b/poetry.lock @@ -768,38 +768,38 @@ files = [ [[package]] name = "mypy" -version = "1.7.1" +version = "1.8.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12cce78e329838d70a204293e7b29af9faa3ab14899aec397798a4b41be7f340"}, - {file = "mypy-1.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1484b8fa2c10adf4474f016e09d7a159602f3239075c7bf9f1627f5acf40ad49"}, - {file = "mypy-1.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31902408f4bf54108bbfb2e35369877c01c95adc6192958684473658c322c8a5"}, - {file = "mypy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f2c2521a8e4d6d769e3234350ba7b65ff5d527137cdcde13ff4d99114b0c8e7d"}, - {file = "mypy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:fcd2572dd4519e8a6642b733cd3a8cfc1ef94bafd0c1ceed9c94fe736cb65b6a"}, - {file = "mypy-1.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b901927f16224d0d143b925ce9a4e6b3a758010673eeded9b748f250cf4e8f7"}, - {file = "mypy-1.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2f7f6985d05a4e3ce8255396df363046c28bea790e40617654e91ed580ca7c51"}, - {file = "mypy-1.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:944bdc21ebd620eafefc090cdf83158393ec2b1391578359776c00de00e8907a"}, - {file = "mypy-1.7.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9c7ac372232c928fff0645d85f273a726970c014749b924ce5710d7d89763a28"}, - {file = "mypy-1.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:f6efc9bd72258f89a3816e3a98c09d36f079c223aa345c659622f056b760ab42"}, - {file = "mypy-1.7.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6dbdec441c60699288adf051f51a5d512b0d818526d1dcfff5a41f8cd8b4aaf1"}, - {file = "mypy-1.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4fc3d14ee80cd22367caaaf6e014494415bf440980a3045bf5045b525680ac33"}, - {file = "mypy-1.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c6e4464ed5f01dc44dc9821caf67b60a4e5c3b04278286a85c067010653a0eb"}, - {file = "mypy-1.7.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d9b338c19fa2412f76e17525c1b4f2c687a55b156320acb588df79f2e6fa9fea"}, - {file = "mypy-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:204e0d6de5fd2317394a4eff62065614c4892d5a4d1a7ee55b765d7a3d9e3f82"}, - {file = "mypy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:84860e06ba363d9c0eeabd45ac0fde4b903ad7aa4f93cd8b648385a888e23200"}, - {file = "mypy-1.7.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8c5091ebd294f7628eb25ea554852a52058ac81472c921150e3a61cdd68f75a7"}, - {file = "mypy-1.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40716d1f821b89838589e5b3106ebbc23636ffdef5abc31f7cd0266db936067e"}, - {file = "mypy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cf3f0c5ac72139797953bd50bc6c95ac13075e62dbfcc923571180bebb662e9"}, - {file = "mypy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:78e25b2fd6cbb55ddfb8058417df193f0129cad5f4ee75d1502248e588d9e0d7"}, - {file = "mypy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:75c4d2a6effd015786c87774e04331b6da863fc3fc4e8adfc3b40aa55ab516fe"}, - {file = "mypy-1.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2643d145af5292ee956aa0a83c2ce1038a3bdb26e033dadeb2f7066fb0c9abce"}, - {file = "mypy-1.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75aa828610b67462ffe3057d4d8a4112105ed211596b750b53cbfe182f44777a"}, - {file = "mypy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ee5d62d28b854eb61889cde4e1dbc10fbaa5560cb39780c3995f6737f7e82120"}, - {file = "mypy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:72cf32ce7dd3562373f78bd751f73c96cfb441de147cc2448a92c1a308bd0ca6"}, - {file = "mypy-1.7.1-py3-none-any.whl", hash = "sha256:f7c5d642db47376a0cc130f0de6d055056e010debdaf0707cd2b0fc7e7ef30ea"}, - {file = "mypy-1.7.1.tar.gz", hash = "sha256:fcb6d9afb1b6208b4c712af0dafdc650f518836065df0d4fb1d800f5d6773db2"}, + {file = "mypy-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3"}, + {file = "mypy-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4"}, + {file = "mypy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d"}, + {file = "mypy-1.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9"}, + {file = "mypy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410"}, + {file = "mypy-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae"}, + {file = "mypy-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3"}, + {file = "mypy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817"}, + {file = "mypy-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d"}, + {file = "mypy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835"}, + {file = "mypy-1.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd"}, + {file = "mypy-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55"}, + {file = "mypy-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218"}, + {file = "mypy-1.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3"}, + {file = "mypy-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e"}, + {file = "mypy-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6"}, + {file = "mypy-1.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66"}, + {file = "mypy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6"}, + {file = "mypy-1.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d"}, + {file = "mypy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02"}, + {file = "mypy-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8"}, + {file = "mypy-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259"}, + {file = "mypy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b"}, + {file = "mypy-1.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592"}, + {file = "mypy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a"}, + {file = "mypy-1.8.0-py3-none-any.whl", hash = "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d"}, + {file = "mypy-1.8.0.tar.gz", hash = "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"}, ] [package.dependencies] @@ -1733,4 +1733,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "37fe2a1351088e8dc36645433239f374637d4a830357f17857c4eaa729955286" +content-hash = "11a80b36a6daca337dfbbdbc50a3707fa34ab57c842f9c344fc3633e482f4cfc" diff --git a/pyproject.toml b/pyproject.toml index 1859de7..4778e9b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ pytest = "^8.0.1" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" -mypy = "^1.7" +mypy = "^1.8" isort = "^5.13.2" black = "^24.2.0" flynt = "^1.0" From a6112cdf9a6adcaf1d2461be34eb42e51f3f0aa4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:55:53 +0000 Subject: [PATCH 278/371] Bump jsonschema from 4.20.0 to 4.21.1 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.20.0 to 4.21.1. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.20.0...v4.21.1) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 580a093..c2d8505 100644 --- a/poetry.lock +++ b/poetry.lock @@ -587,13 +587,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.20.0" +version = "4.21.1" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"}, - {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"}, + {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, + {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, ] [package.dependencies] From 9211abe7780cd406d8830b429c0636afa6f16bbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:00:17 +0000 Subject: [PATCH 279/371] Bump importlib-resources from 6.1.0 to 6.1.2 Bumps [importlib-resources](https://github.com/python/importlib_resources) from 6.1.0 to 6.1.2. - [Release notes](https://github.com/python/importlib_resources/releases) - [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst) - [Commits](https://github.com/python/importlib_resources/compare/v6.1.0...v6.1.2) --- updated-dependencies: - dependency-name: importlib-resources dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 580a093..c9abd17 100644 --- a/poetry.lock +++ b/poetry.lock @@ -527,13 +527,13 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "6.1.0" +version = "6.1.2" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.1.0-py3-none-any.whl", hash = "sha256:aa50258bbfa56d4e33fbd8aa3ef48ded10d1735f11532b8df95388cc6bdb7e83"}, - {file = "importlib_resources-6.1.0.tar.gz", hash = "sha256:9d48dcccc213325e810fd723e7fbb45ccb39f6cf5c31f00cf2b965f5f10f3cb9"}, + {file = "importlib_resources-6.1.2-py3-none-any.whl", hash = "sha256:9a0a862501dc38b68adebc82970140c9e4209fc99601782925178f8386339938"}, + {file = "importlib_resources-6.1.2.tar.gz", hash = "sha256:308abf8474e2dba5f867d279237cd4076482c3de7104a40b41426370e891549b"}, ] [package.dependencies] @@ -541,7 +541,7 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" From 46f34c08d179cb3890d3de1a4a7a3c1583ecae02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:02:03 +0000 Subject: [PATCH 280/371] Bump pytest from 8.0.1 to 8.0.2 Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.0.1 to 8.0.2. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.0.1...8.0.2) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 580a093..484601e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1157,13 +1157,13 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes [[package]] name = "pytest" -version = "8.0.1" +version = "8.0.2" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.0.1-py3-none-any.whl", hash = "sha256:3e4f16fe1c0a9dc9d9389161c127c3edc5d810c38d6793042fb81d9f48a59fca"}, - {file = "pytest-8.0.1.tar.gz", hash = "sha256:267f6563751877d772019b13aacbe4e860d73fe8f651f28112e9ac37de7513ae"}, + {file = "pytest-8.0.2-py3-none-any.whl", hash = "sha256:edfaaef32ce5172d5466b5127b42e0d6d35ebbe4453f0e3505d96afd93f6b096"}, + {file = "pytest-8.0.2.tar.gz", hash = "sha256:d4051d623a2e0b7e51960ba963193b09ce6daeb9759a451844a21e4ddedfc1bd"}, ] [package.dependencies] @@ -1733,4 +1733,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "11a80b36a6daca337dfbbdbc50a3707fa34ab57c842f9c344fc3633e482f4cfc" +content-hash = "db8674216be54bc0e0dcd95863204dc369871d881f34bd74554d6cf1cddece81" diff --git a/pyproject.toml b/pyproject.toml index 4778e9b..719eea0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^8.0.1" +pytest = "^8.0.2" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From ee1aec382267d36e454619cd05b9482831e9e0c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 19:10:28 +0000 Subject: [PATCH 281/371] Bump tox from 4.11.4 to 4.13.0 Bumps [tox](https://github.com/tox-dev/tox) from 4.11.4 to 4.13.0. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.11.4...4.13.0) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 68 ++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/poetry.lock b/poetry.lock index 484601e..c7ae300 100644 --- a/poetry.lock +++ b/poetry.lock @@ -138,13 +138,13 @@ files = [ [[package]] name = "cachetools" -version = "5.3.1" +version = "5.3.2" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" files = [ - {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, - {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, + {file = "cachetools-5.3.2-py3-none-any.whl", hash = "sha256:861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1"}, + {file = "cachetools-5.3.2.tar.gz", hash = "sha256:086ee420196f7b2ab9ca2db2520aca326318b68fe5ba8bc4d49cca91add450f2"}, ] [[package]] @@ -420,21 +420,19 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.12.3" +version = "3.13.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.12.3-py3-none-any.whl", hash = "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"}, - {file = "filelock-3.12.3.tar.gz", hash = "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d"}, + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.11\""} - [package.extras] -docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "flake8" @@ -856,13 +854,13 @@ rfc3339-validator = "*" [[package]] name = "packaging" -version = "23.1" +version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] @@ -900,18 +898,18 @@ files = [ [[package]] name = "platformdirs" -version = "3.10.0" +version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] [[package]] name = "pluggy" @@ -1639,30 +1637,30 @@ files = [ [[package]] name = "tox" -version = "4.11.4" +version = "4.13.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.11.4-py3-none-any.whl", hash = "sha256:2adb83d68f27116812b69aa36676a8d6a52249cb0d173649de0e7d0c2e3e7229"}, - {file = "tox-4.11.4.tar.gz", hash = "sha256:73a7240778fabf305aeb05ab8ea26e575e042ab5a18d71d0ed13e343a51d6ce1"}, + {file = "tox-4.13.0-py3-none-any.whl", hash = "sha256:1143c7e2489c68026a55d3d4ae84c02c449f073b28e62f80e3e440a3b72a4afa"}, + {file = "tox-4.13.0.tar.gz", hash = "sha256:dd789a554c16c4b532924ba393c92fc8991323c4b3d466712bfecc8c9b9f24f7"}, ] [package.dependencies] -cachetools = ">=5.3.1" +cachetools = ">=5.3.2" chardet = ">=5.2" colorama = ">=0.4.6" -filelock = ">=3.12.3" -packaging = ">=23.1" -platformdirs = ">=3.10" +filelock = ">=3.13.1" +packaging = ">=23.2" +platformdirs = ">=4.1" pluggy = ">=1.3" pyproject-api = ">=1.6.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.24.3" +virtualenv = ">=20.25" [package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (>=7.2.4)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.24)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.18)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.12)", "wheel (>=0.41.2)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.25.2)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.11)"] +testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1)", "diff-cover (>=8.0.2)", "distlib (>=0.3.8)", "flaky (>=3.7)", "hatch-vcs (>=0.4)", "hatchling (>=1.21)", "psutil (>=5.9.7)", "pytest (>=7.4.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-xdist (>=3.5)", "re-assert (>=1.1)", "time-machine (>=2.13)", "wheel (>=0.42)"] [[package]] name = "typing-extensions" @@ -1694,22 +1692,22 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.24.3" +version = "20.25.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.24.3-py3-none-any.whl", hash = "sha256:95a6e9398b4967fbcb5fef2acec5efaf9aa4972049d9ae41f95e0972a683fd02"}, - {file = "virtualenv-20.24.3.tar.gz", hash = "sha256:e5c3b4ce817b0b328af041506a2a299418c98747c4b1e68cb7527e74ced23efc"}, + {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, + {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, ] [package.dependencies] distlib = ">=0.3.7,<1" filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] From 8eb9d86ab8c12da7ecc5287ea95a9fa1a316bb05 Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Thu, 7 Mar 2024 14:19:24 -0500 Subject: [PATCH 282/371] Advertise type hints in classifiers As a way to see at a glance on PyPI.org whether the package has type hints. Refs #168 --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 719eea0..434c4df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,8 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", - "Topic :: Software Development :: Libraries" + "Topic :: Software Development :: Libraries", + "Typing :: Typed", ] include = [ {path = "tests", format = "sdist"}, From 82437744d5a7e15d046e49deb1912f0242e5b3f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 12:07:11 +0000 Subject: [PATCH 283/371] Bump sphinx-immaterial from 0.11.10 to 0.11.11 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.10 to 0.11.11. - [Release notes](https://github.com/jbms/sphinx-immaterial/releases) - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.10...v0.11.11) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index b9f5a4a..92724ca 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1510,13 +1510,13 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.10" +version = "0.11.11" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.10-py3-none-any.whl", hash = "sha256:be5058b2857b0797887c30f82b20ceb244f30f4847f018c96dade8cc533c1125"}, - {file = "sphinx_immaterial-0.11.10.tar.gz", hash = "sha256:235381da410c1661219057864337eed92a284b40babccaa65c151688ceeafaa7"}, + {file = "sphinx_immaterial-0.11.11-py3-none-any.whl", hash = "sha256:174c7ce0f39c87413af0fbff17d0821e2f1fbae0d578b7074c9a6e17f1ef295c"}, + {file = "sphinx_immaterial-0.11.11.tar.gz", hash = "sha256:f98f3019cbb1d77b259c7ab09dc977ca220dff931dd0f2fabee76e9f9c77b3b4"}, ] [package.dependencies] From ae812925953438b3e92a04ef78187db16e861b9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 07:18:51 +0000 Subject: [PATCH 284/371] Bump mypy from 1.8.0 to 1.9.0 Bumps [mypy](https://github.com/python/mypy) from 1.8.0 to 1.9.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.8.0...1.9.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 58 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index 92724ca..f8b03c7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -766,38 +766,38 @@ files = [ [[package]] name = "mypy" -version = "1.8.0" +version = "1.9.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3"}, - {file = "mypy-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4"}, - {file = "mypy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d"}, - {file = "mypy-1.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9"}, - {file = "mypy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410"}, - {file = "mypy-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae"}, - {file = "mypy-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3"}, - {file = "mypy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817"}, - {file = "mypy-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d"}, - {file = "mypy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835"}, - {file = "mypy-1.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd"}, - {file = "mypy-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55"}, - {file = "mypy-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218"}, - {file = "mypy-1.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3"}, - {file = "mypy-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e"}, - {file = "mypy-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6"}, - {file = "mypy-1.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66"}, - {file = "mypy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6"}, - {file = "mypy-1.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d"}, - {file = "mypy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02"}, - {file = "mypy-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8"}, - {file = "mypy-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259"}, - {file = "mypy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b"}, - {file = "mypy-1.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592"}, - {file = "mypy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a"}, - {file = "mypy-1.8.0-py3-none-any.whl", hash = "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d"}, - {file = "mypy-1.8.0.tar.gz", hash = "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"}, + {file = "mypy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8a67616990062232ee4c3952f41c779afac41405806042a8126fe96e098419f"}, + {file = "mypy-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d357423fa57a489e8c47b7c85dfb96698caba13d66e086b412298a1a0ea3b0ed"}, + {file = "mypy-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49c87c15aed320de9b438ae7b00c1ac91cd393c1b854c2ce538e2a72d55df150"}, + {file = "mypy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:48533cdd345c3c2e5ef48ba3b0d3880b257b423e7995dada04248725c6f77374"}, + {file = "mypy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:4d3dbd346cfec7cb98e6cbb6e0f3c23618af826316188d587d1c1bc34f0ede03"}, + {file = "mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3"}, + {file = "mypy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc"}, + {file = "mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129"}, + {file = "mypy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:68edad3dc7d70f2f17ae4c6c1b9471a56138ca22722487eebacfd1eb5321d612"}, + {file = "mypy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:85ca5fcc24f0b4aeedc1d02f93707bccc04733f21d41c88334c5482219b1ccb3"}, + {file = "mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd"}, + {file = "mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6"}, + {file = "mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185"}, + {file = "mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913"}, + {file = "mypy-1.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe28657de3bfec596bbeef01cb219833ad9d38dd5393fc649f4b366840baefe6"}, + {file = "mypy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e54396d70be04b34f31d2edf3362c1edd023246c82f1730bbf8768c28db5361b"}, + {file = "mypy-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5e6061f44f2313b94f920e91b204ec600982961e07a17e0f6cd83371cb23f5c2"}, + {file = "mypy-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a10926e5473c5fc3da8abb04119a1f5811a236dc3a38d92015cb1e6ba4cb9e"}, + {file = "mypy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b685154e22e4e9199fc95f298661deea28aaede5ae16ccc8cbb1045e716b3e04"}, + {file = "mypy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d741d3fc7c4da608764073089e5f58ef6352bedc223ff58f2f038c2c4698a89"}, + {file = "mypy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:587ce887f75dd9700252a3abbc9c97bbe165a4a630597845c61279cf32dfbf02"}, + {file = "mypy-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f88566144752999351725ac623471661c9d1cd8caa0134ff98cceeea181789f4"}, + {file = "mypy-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61758fabd58ce4b0720ae1e2fea5cfd4431591d6d590b197775329264f86311d"}, + {file = "mypy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e49499be624dead83927e70c756970a0bc8240e9f769389cdf5714b0784ca6bf"}, + {file = "mypy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:571741dc4194b4f82d344b15e8837e8c5fcc462d66d076748142327626a1b6e9"}, + {file = "mypy-1.9.0-py3-none-any.whl", hash = "sha256:a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e"}, + {file = "mypy-1.9.0.tar.gz", hash = "sha256:3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"}, ] [package.dependencies] @@ -1731,4 +1731,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "db8674216be54bc0e0dcd95863204dc369871d881f34bd74554d6cf1cddece81" +content-hash = "e46f9f997fda20dd64748a99a8efb765634cffe8b4e7915ff953081fb2814a0e" diff --git a/pyproject.toml b/pyproject.toml index 434c4df..f86cabb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ pytest = "^8.0.2" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" -mypy = "^1.8" +mypy = "^1.9" isort = "^5.13.2" black = "^24.2.0" flynt = "^1.0" From 614aff8c6519f94449b93fa2cced218b87fdfc18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 07:27:38 +0000 Subject: [PATCH 285/371] Bump pytest from 8.0.2 to 8.1.1 Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.0.2 to 8.1.1. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.0.2...8.1.1) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 20 ++++++++++---------- pyproject.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index f8b03c7..c546084 100644 --- a/poetry.lock +++ b/poetry.lock @@ -913,13 +913,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest- [[package]] name = "pluggy" -version = "1.3.0" +version = "1.4.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, ] [package.extras] @@ -1155,13 +1155,13 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes [[package]] name = "pytest" -version = "8.0.2" +version = "8.1.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.0.2-py3-none-any.whl", hash = "sha256:edfaaef32ce5172d5466b5127b42e0d6d35ebbe4453f0e3505d96afd93f6b096"}, - {file = "pytest-8.0.2.tar.gz", hash = "sha256:d4051d623a2e0b7e51960ba963193b09ce6daeb9759a451844a21e4ddedfc1bd"}, + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, ] [package.dependencies] @@ -1169,11 +1169,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.3.0,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.4,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -1731,4 +1731,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "e46f9f997fda20dd64748a99a8efb765634cffe8b4e7915ff953081fb2814a0e" +content-hash = "0f6ab854eca81e5caea99a0b82896599ba7aeca9c66df12e4df97a513ecae9b3" diff --git a/pyproject.toml b/pyproject.toml index f86cabb..2d49b3e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,7 +65,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^8.0.2" +pytest = "^8.1.1" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From 80fcc57cbed7d14c1332ae8d1360693689297802 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 07:35:08 +0000 Subject: [PATCH 286/371] Bump tox from 4.13.0 to 4.14.1 Bumps [tox](https://github.com/tox-dev/tox) from 4.13.0 to 4.14.1. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.13.0...4.14.1) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index c546084..4385255 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1637,13 +1637,13 @@ files = [ [[package]] name = "tox" -version = "4.13.0" +version = "4.14.1" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.13.0-py3-none-any.whl", hash = "sha256:1143c7e2489c68026a55d3d4ae84c02c449f073b28e62f80e3e440a3b72a4afa"}, - {file = "tox-4.13.0.tar.gz", hash = "sha256:dd789a554c16c4b532924ba393c92fc8991323c4b3d466712bfecc8c9b9f24f7"}, + {file = "tox-4.14.1-py3-none-any.whl", hash = "sha256:b03754b6ee6dadc70f2611da82b4ed8f625fcafd247e15d1d0cb056f90a06d3b"}, + {file = "tox-4.14.1.tar.gz", hash = "sha256:f0ad758c3bbf7e237059c929d3595479363c3cdd5a06ac3e49d1dd020ffbee45"}, ] [package.dependencies] From bcf98e3baa02cbeeaa4d04db719f6caf07123263 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 12:21:37 +0000 Subject: [PATCH 287/371] Bump importlib-resources from 6.1.2 to 6.3.1 Bumps [importlib-resources](https://github.com/python/importlib_resources) from 6.1.2 to 6.3.1. - [Release notes](https://github.com/python/importlib_resources/releases) - [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst) - [Commits](https://github.com/python/importlib_resources/compare/v6.1.2...v6.3.1) --- updated-dependencies: - dependency-name: importlib-resources dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4385255..f076469 100644 --- a/poetry.lock +++ b/poetry.lock @@ -525,13 +525,13 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "6.1.2" +version = "6.3.1" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.1.2-py3-none-any.whl", hash = "sha256:9a0a862501dc38b68adebc82970140c9e4209fc99601782925178f8386339938"}, - {file = "importlib_resources-6.1.2.tar.gz", hash = "sha256:308abf8474e2dba5f867d279237cd4076482c3de7104a40b41426370e891549b"}, + {file = "importlib_resources-6.3.1-py3-none-any.whl", hash = "sha256:4811639ca7fa830abdb8e9ca0a104dc6ad13de691d9fe0d3173a71304f068159"}, + {file = "importlib_resources-6.3.1.tar.gz", hash = "sha256:29a3d16556e330c3c8fb8202118c5ff41241cc34cbfb25989bbad226d99b7995"}, ] [package.dependencies] @@ -539,7 +539,7 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +testing = ["jaraco.collections", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" From b1d1757e900c4e3c5e8c2e376171750c877257ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 12:21:55 +0000 Subject: [PATCH 288/371] Bump deptry from 0.12.0 to 0.14.0 Bumps [deptry](https://github.com/fpgmaas/deptry) from 0.12.0 to 0.14.0. - [Release notes](https://github.com/fpgmaas/deptry/releases) - [Changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md) - [Commits](https://github.com/fpgmaas/deptry/compare/0.12.0...0.14.0) --- updated-dependencies: - dependency-name: deptry dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 18 +++++++++++------- pyproject.toml | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4385255..6925609 100644 --- a/poetry.lock +++ b/poetry.lock @@ -366,21 +366,25 @@ toml = ["tomli"] [[package]] name = "deptry" -version = "0.12.0" +version = "0.14.0" description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." optional = false -python-versions = ">=3.8,<4.0" +python-versions = ">=3.8, <4.0" files = [ - {file = "deptry-0.12.0-py3-none-any.whl", hash = "sha256:69c801a6ae1b39c7b8e0daf40dbe8b75f1f161277d206dd8f921f32cd22dad91"}, - {file = "deptry-0.12.0.tar.gz", hash = "sha256:ac3cd32d149c92a9af12f63cd9486ddd1760f0277ed0cf306c6ef0388f57ff0a"}, + {file = "deptry-0.14.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:951d40e40cca6b538d8b1992e9532c082757598c73249469d3f6f90cf3344c9f"}, + {file = "deptry-0.14.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:59e0808507ffb57a0ce9b8c40ecda7b4a235a0627f00485d8e6104bf71dc99f8"}, + {file = "deptry-0.14.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5e6b7485c3ece10eb94b2787258282275687a101587c6f88f65a6eadc65c4a4"}, + {file = "deptry-0.14.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d5a8299b9627dc32352caf99c5e8fdff0227539ccbe1535a6145649b5caa394"}, + {file = "deptry-0.14.0-cp38-abi3-win_amd64.whl", hash = "sha256:d55654025b567739a57f9b6b8467a21c65a30c21e834b2d8cb225618b320874c"}, + {file = "deptry-0.14.0.tar.gz", hash = "sha256:3415c65c0734f6dfafa1321c77c1c9fafb6d6f88d0f8441e5b2cfb5b3b41f71b"}, ] [package.dependencies] chardet = ">=4.0.0" -click = ">=8.0.0,<9.0.0" +click = ">=8.0.0,<9" colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} pathspec = ">=0.9.0" -tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [[package]] name = "distlib" @@ -1731,4 +1735,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "0f6ab854eca81e5caea99a0b82896599ba7aeca9c66df12e4df97a513ecae9b3" +content-hash = "4351ef95f23d7927b35cb6fb39f6eb019293db55841647d6dde1b9f1d10ae915" diff --git a/pyproject.toml b/pyproject.toml index 2d49b3e..f21b42a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,7 +73,7 @@ mypy = "^1.9" isort = "^5.13.2" black = "^24.2.0" flynt = "^1.0" -deptry = "^0.12.0" +deptry = "^0.14.0" flake8 = "^5.0.4" pyflakes = "^2.5.0" bump2version = "^1.0.1" From 5ea720f8e3727a1a45950bdb3d74d12cbec55338 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 15:24:51 +0000 Subject: [PATCH 289/371] Bump black from 24.2.0 to 24.3.0 Bumps [black](https://github.com/psf/black) from 24.2.0 to 24.3.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/24.2.0...24.3.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 48 ++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8b1f19a..3aeb36f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -81,33 +81,33 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "24.2.0" +version = "24.3.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, - {file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, - {file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, - {file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, - {file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, - {file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, - {file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, - {file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, - {file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, - {file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, - {file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, - {file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, - {file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, - {file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, - {file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, - {file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, - {file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, - {file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, - {file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, - {file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, - {file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, - {file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, + {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"}, + {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"}, + {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"}, + {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"}, + {file = "black-24.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9"}, + {file = "black-24.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597"}, + {file = "black-24.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d"}, + {file = "black-24.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5"}, + {file = "black-24.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f"}, + {file = "black-24.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11"}, + {file = "black-24.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4"}, + {file = "black-24.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5"}, + {file = "black-24.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837"}, + {file = "black-24.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd"}, + {file = "black-24.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213"}, + {file = "black-24.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959"}, + {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"}, + {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"}, + {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"}, + {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"}, + {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"}, + {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"}, ] [package.dependencies] @@ -1735,4 +1735,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "4351ef95f23d7927b35cb6fb39f6eb019293db55841647d6dde1b9f1d10ae915" +content-hash = "1ccd167c9429ec62095ee8706077e26a5d925ab14a9cd248c315bb17bce73146" diff --git a/pyproject.toml b/pyproject.toml index f21b42a..c692ae0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,7 +71,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.9" isort = "^5.13.2" -black = "^24.2.0" +black = "^24.3.0" flynt = "^1.0" deptry = "^0.14.0" flake8 = "^5.0.4" From e8d13e8c47934b6c2061694c39798a6904a55189 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 13:07:01 +0000 Subject: [PATCH 290/371] Bump importlib-resources from 6.3.1 to 6.4.0 Bumps [importlib-resources](https://github.com/python/importlib_resources) from 6.3.1 to 6.4.0. - [Release notes](https://github.com/python/importlib_resources/releases) - [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst) - [Commits](https://github.com/python/importlib_resources/compare/v6.3.1...v6.4.0) --- updated-dependencies: - dependency-name: importlib-resources dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3aeb36f..21e28df 100644 --- a/poetry.lock +++ b/poetry.lock @@ -529,13 +529,13 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "6.3.1" +version = "6.4.0" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.3.1-py3-none-any.whl", hash = "sha256:4811639ca7fa830abdb8e9ca0a104dc6ad13de691d9fe0d3173a71304f068159"}, - {file = "importlib_resources-6.3.1.tar.gz", hash = "sha256:29a3d16556e330c3c8fb8202118c5ff41241cc34cbfb25989bbad226d99b7995"}, + {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"}, + {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"}, ] [package.dependencies] @@ -543,7 +543,7 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["jaraco.collections", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" From 3e61b71b561281769d3e9045c73d5d4637e495b1 Mon Sep 17 00:00:00 2001 From: Artur Date: Sat, 6 Apr 2024 11:18:54 +0100 Subject: [PATCH 291/371] Create SECURITY.md --- SECURITY.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..8ffe77b --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,20 @@ +# Security Policy + +## Reporting a Vulnerability + +If you believe you have found a security vulnerability in the repository, please report it to us as described below. + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them directly to the repository maintainer. + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + +* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) +* Full paths of source file(s) related to the manifestation of the issue +* The location of the affected source code (tag/branch/commit or direct URL) +* Any special configuration required to reproduce the issue +* Step-by-step instructions to reproduce the issue +* Proof-of-concept or exploit code (if possible) +* Impact of the issue, including how an attacker might exploit the issue +* This information will help us triage your report more quickly. From a974f97276346b40be89108f613190576a14fab3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:48:54 +0000 Subject: [PATCH 292/371] Bump deptry from 0.14.0 to 0.16.1 Bumps [deptry](https://github.com/fpgmaas/deptry) from 0.14.0 to 0.16.1. - [Release notes](https://github.com/fpgmaas/deptry/releases) - [Changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md) - [Commits](https://github.com/fpgmaas/deptry/compare/0.14.0...0.16.1) --- updated-dependencies: - dependency-name: deptry dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 26 ++++++++++++++------------ pyproject.toml | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3aeb36f..d067b99 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -366,24 +366,26 @@ toml = ["tomli"] [[package]] name = "deptry" -version = "0.14.0" +version = "0.16.1" description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." optional = false -python-versions = ">=3.8, <4.0" +python-versions = ">=3.8" files = [ - {file = "deptry-0.14.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:951d40e40cca6b538d8b1992e9532c082757598c73249469d3f6f90cf3344c9f"}, - {file = "deptry-0.14.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:59e0808507ffb57a0ce9b8c40ecda7b4a235a0627f00485d8e6104bf71dc99f8"}, - {file = "deptry-0.14.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5e6b7485c3ece10eb94b2787258282275687a101587c6f88f65a6eadc65c4a4"}, - {file = "deptry-0.14.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d5a8299b9627dc32352caf99c5e8fdff0227539ccbe1535a6145649b5caa394"}, - {file = "deptry-0.14.0-cp38-abi3-win_amd64.whl", hash = "sha256:d55654025b567739a57f9b6b8467a21c65a30c21e834b2d8cb225618b320874c"}, - {file = "deptry-0.14.0.tar.gz", hash = "sha256:3415c65c0734f6dfafa1321c77c1c9fafb6d6f88d0f8441e5b2cfb5b3b41f71b"}, + {file = "deptry-0.16.1-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:29ed8ae61b8f5664dd484717c79eef7ec66d965940efd828fca0d3c09220a1db"}, + {file = "deptry-0.16.1-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:738a772b538f51e9a7bb8d5cb9a61cfea8794a79371d171919b01cff0dc895bf"}, + {file = "deptry-0.16.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56b78f7c860def8000e93f88345a24809f1b91e2f7836ac9a08285cb405e2762"}, + {file = "deptry-0.16.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3e86a04ea87ddece0f68ba204feb950f588205808c8320e6628300f03ff66dc"}, + {file = "deptry-0.16.1-cp38-abi3-win_amd64.whl", hash = "sha256:01b5098739a56c93f3e1e40efec5f20452f22a9a8436a59809d46201fcb94bcf"}, + {file = "deptry-0.16.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7e29dc4c1bbb933c9482e8cef85fafe2be7f46aeb90a8a07ba5f2b22af60876f"}, + {file = "deptry-0.16.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8dfab68c247566c87a40f55f405be8549ffe4cea0b9b5384b7ae73a6f1d5cd1"}, + {file = "deptry-0.16.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1228493926b6e59cd2df7cb6016e10c255553cc31db24edcf7fc8d5474b81be6"}, + {file = "deptry-0.16.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:99c3ac60b78ad1b8fb9844c25393e7ebc969cc950601ce3c050f56d196da5a79"}, + {file = "deptry-0.16.1.tar.gz", hash = "sha256:39fb62da4a8f4d17ed282310f7bcaadec55a95a8c471b01e0fcdf5351a7ac323"}, ] [package.dependencies] -chardet = ">=4.0.0" click = ">=8.0.0,<9" colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -pathspec = ">=0.9.0" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [[package]] @@ -1735,4 +1737,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "1ccd167c9429ec62095ee8706077e26a5d925ab14a9cd248c315bb17bce73146" +content-hash = "d1c9180fa4015bb6156630dfc1cc45d900c5813a4df7d01e7ad6741ca0506792" diff --git a/pyproject.toml b/pyproject.toml index c692ae0..84939e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,7 +73,7 @@ mypy = "^1.9" isort = "^5.13.2" black = "^24.3.0" flynt = "^1.0" -deptry = "^0.14.0" +deptry = "^0.16.1" flake8 = "^5.0.4" pyflakes = "^2.5.0" bump2version = "^1.0.1" From bf1243e86ca047233e9911cedbb97739923b58a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 02:39:49 +0000 Subject: [PATCH 293/371] Bump idna from 3.4 to 3.7 Bumps [idna](https://github.com/kjd/idna) from 3.4 to 3.7. - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst) - [Commits](https://github.com/kjd/idna/compare/v3.4...v3.7) --- updated-dependencies: - dependency-name: idna dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3aeb36f..ad179f3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -488,13 +488,13 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.4" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] From d21e20765e0197e4f931eccb0577762ec5505a5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 12:45:26 +0000 Subject: [PATCH 294/371] Bump python from 3.12.2-alpine to 3.12.3-alpine Bumps python from 3.12.2-alpine to 3.12.3-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6fc8745..3eaf512 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.1 -FROM python:3.12.2-alpine as builder +FROM python:3.12.3-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.12.2-alpine +FROM python:3.12.3-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 425c82411083a488702b8e785741bf81e80d4194 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 12:05:58 +0000 Subject: [PATCH 295/371] Bump tox from 4.14.1 to 4.15.0 Bumps [tox](https://github.com/tox-dev/tox) from 4.14.1 to 4.15.0. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.14.1...4.15.0) --- updated-dependencies: - dependency-name: tox dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3aeb36f..6e45a01 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -1641,13 +1641,13 @@ files = [ [[package]] name = "tox" -version = "4.14.1" +version = "4.15.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.14.1-py3-none-any.whl", hash = "sha256:b03754b6ee6dadc70f2611da82b4ed8f625fcafd247e15d1d0cb056f90a06d3b"}, - {file = "tox-4.14.1.tar.gz", hash = "sha256:f0ad758c3bbf7e237059c929d3595479363c3cdd5a06ac3e49d1dd020ffbee45"}, + {file = "tox-4.15.0-py3-none-any.whl", hash = "sha256:300055f335d855b2ab1b12c5802de7f62a36d4fd53f30bd2835f6a201dda46ea"}, + {file = "tox-4.15.0.tar.gz", hash = "sha256:7a0beeef166fbe566f54f795b4906c31b428eddafc0102ac00d20998dd1933f6"}, ] [package.dependencies] From 50c9366090363a8d385f3074035a8fe7c0a80cce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 21:12:09 +0000 Subject: [PATCH 296/371] Bump jinja2 from 3.1.3 to 3.1.4 Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.3 to 3.1.4. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.3...3.1.4) --- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3aeb36f..8623c29 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -572,13 +572,13 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] From 7b5808a7330968d8bdc5ec3119e28f3cfe1472ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 05:49:50 +0000 Subject: [PATCH 297/371] --- updated-dependencies: - dependency-name: requests dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3aeb36f..0cca0e3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -1300,13 +1300,13 @@ rpds-py = ">=0.7.0" [[package]] name = "requests" -version = "2.31.0" +version = "2.32.0" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.0-py3-none-any.whl", hash = "sha256:f2c3881dddb70d056c5bd7600a4fae312b2a300e39be6a118d30b90bd27262b5"}, + {file = "requests-2.32.0.tar.gz", hash = "sha256:fa5490319474c82ef1d2c9bc459d3652e3ae4ef4c4ebdd18a21145a47ca4b6b8"}, ] [package.dependencies] From a480bffa5e59172cf7dbc018adbfe513f6dc85d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 13:00:42 +0000 Subject: [PATCH 298/371] Bump jsonschema from 4.21.1 to 4.22.0 Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.21.1 to 4.22.0. - [Release notes](https://github.com/python-jsonschema/jsonschema/releases) - [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst) - [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.21.1...v4.22.0) --- updated-dependencies: - dependency-name: jsonschema dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8838d24..5512a6d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -591,13 +591,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.21.1" +version = "4.22.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, - {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, + {file = "jsonschema-4.22.0-py3-none-any.whl", hash = "sha256:ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802"}, + {file = "jsonschema-4.22.0.tar.gz", hash = "sha256:5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7"}, ] [package.dependencies] From 9603217b1f6eb7a9e5ca9493392ad3a57ea2e278 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 12:26:56 +0000 Subject: [PATCH 299/371] Bump python from 3.12.3-alpine to 3.12.4-alpine Bumps python from 3.12.3-alpine to 3.12.4-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3eaf512..1e694c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.1 -FROM python:3.12.3-alpine as builder +FROM python:3.12.4-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.12.3-alpine +FROM python:3.12.4-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 3f9e6e75f4d93f78114122b65cf31f2cb46ba07f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 22:18:02 +0000 Subject: [PATCH 300/371] Bump urllib3 from 2.0.7 to 2.2.2 Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.7 to 2.2.2. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.7...2.2.2) --- updated-dependencies: - dependency-name: urllib3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8838d24..14c99da 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1681,18 +1681,18 @@ files = [ [[package]] name = "urllib3" -version = "2.0.7" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, - {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] From 1a9e6ea245ad636772b975f8f44ab0098b6ae654 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 12:32:12 +0000 Subject: [PATCH 301/371] Bump mypy from 1.9.0 to 1.10.1 Bumps [mypy](https://github.com/python/mypy) from 1.9.0 to 1.10.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/1.9.0...v1.10.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 58 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8838d24..fa4cde7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -772,38 +772,38 @@ files = [ [[package]] name = "mypy" -version = "1.9.0" +version = "1.10.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8a67616990062232ee4c3952f41c779afac41405806042a8126fe96e098419f"}, - {file = "mypy-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d357423fa57a489e8c47b7c85dfb96698caba13d66e086b412298a1a0ea3b0ed"}, - {file = "mypy-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49c87c15aed320de9b438ae7b00c1ac91cd393c1b854c2ce538e2a72d55df150"}, - {file = "mypy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:48533cdd345c3c2e5ef48ba3b0d3880b257b423e7995dada04248725c6f77374"}, - {file = "mypy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:4d3dbd346cfec7cb98e6cbb6e0f3c23618af826316188d587d1c1bc34f0ede03"}, - {file = "mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3"}, - {file = "mypy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc"}, - {file = "mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129"}, - {file = "mypy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:68edad3dc7d70f2f17ae4c6c1b9471a56138ca22722487eebacfd1eb5321d612"}, - {file = "mypy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:85ca5fcc24f0b4aeedc1d02f93707bccc04733f21d41c88334c5482219b1ccb3"}, - {file = "mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd"}, - {file = "mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6"}, - {file = "mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185"}, - {file = "mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913"}, - {file = "mypy-1.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe28657de3bfec596bbeef01cb219833ad9d38dd5393fc649f4b366840baefe6"}, - {file = "mypy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e54396d70be04b34f31d2edf3362c1edd023246c82f1730bbf8768c28db5361b"}, - {file = "mypy-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5e6061f44f2313b94f920e91b204ec600982961e07a17e0f6cd83371cb23f5c2"}, - {file = "mypy-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a10926e5473c5fc3da8abb04119a1f5811a236dc3a38d92015cb1e6ba4cb9e"}, - {file = "mypy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b685154e22e4e9199fc95f298661deea28aaede5ae16ccc8cbb1045e716b3e04"}, - {file = "mypy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d741d3fc7c4da608764073089e5f58ef6352bedc223ff58f2f038c2c4698a89"}, - {file = "mypy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:587ce887f75dd9700252a3abbc9c97bbe165a4a630597845c61279cf32dfbf02"}, - {file = "mypy-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f88566144752999351725ac623471661c9d1cd8caa0134ff98cceeea181789f4"}, - {file = "mypy-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61758fabd58ce4b0720ae1e2fea5cfd4431591d6d590b197775329264f86311d"}, - {file = "mypy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e49499be624dead83927e70c756970a0bc8240e9f769389cdf5714b0784ca6bf"}, - {file = "mypy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:571741dc4194b4f82d344b15e8837e8c5fcc462d66d076748142327626a1b6e9"}, - {file = "mypy-1.9.0-py3-none-any.whl", hash = "sha256:a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e"}, - {file = "mypy-1.9.0.tar.gz", hash = "sha256:3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"}, + {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, + {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, + {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, + {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, + {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, + {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, + {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, + {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, + {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, + {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, + {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, + {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, + {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, + {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, + {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, + {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, + {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, + {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, + {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, ] [package.dependencies] @@ -1737,4 +1737,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "d1c9180fa4015bb6156630dfc1cc45d900c5813a4df7d01e7ad6741ca0506792" +content-hash = "9b2f61824e40f9c8bde7caaa17dc7cad7d943b085572f2981764160f5d35e6f9" diff --git a/pyproject.toml b/pyproject.toml index 84939e6..5652e16 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ pytest = "^8.1.1" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" -mypy = "^1.9" +mypy = "^1.10" isort = "^5.13.2" black = "^24.3.0" flynt = "^1.0" From adccf96d8edb806000733048d64e40db45e6e2bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 08:20:06 +0000 Subject: [PATCH 302/371] Bump pytest from 8.1.1 to 8.2.2 Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.1.1 to 8.2.2. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.1.1...8.2.2) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 18 +++++++++--------- pyproject.toml | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/poetry.lock b/poetry.lock index 50e6379..0617735 100644 --- a/poetry.lock +++ b/poetry.lock @@ -919,13 +919,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest- [[package]] name = "pluggy" -version = "1.4.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1161,13 +1161,13 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes [[package]] name = "pytest" -version = "8.1.1" +version = "8.2.2" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, - {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, + {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"}, + {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"}, ] [package.dependencies] @@ -1175,11 +1175,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.4,<2.0" +pluggy = ">=1.5,<2.0" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -1737,4 +1737,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "9b2f61824e40f9c8bde7caaa17dc7cad7d943b085572f2981764160f5d35e6f9" +content-hash = "56ad51a8a3004d515723e757ab68aeccd8577ced2f6f576d67925db8fc89ca3c" diff --git a/pyproject.toml b/pyproject.toml index 5652e16..991fd89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,7 +65,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" -pytest = "^8.1.1" +pytest = "^8.2.2" pytest-flake8 = "=1.1.1" pytest-cov = "^4.1.0" tox = "*" From 0583bc9be2d9b354184851fcf7ab0907c0c40777 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Jul 2024 00:42:37 +0000 Subject: [PATCH 303/371] Bump certifi from 2023.7.22 to 2024.7.4 Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.7.22 to 2024.7.4. - [Commits](https://github.com/certifi/python-certifi/compare/2023.07.22...2024.07.04) --- updated-dependencies: - dependency-name: certifi dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0617735..1638c09 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -149,13 +149,13 @@ files = [ [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] [[package]] From 5ea017eefcb906f99a8ca7406cc0a7ff780dc179 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:10:22 +0000 Subject: [PATCH 304/371] Bump sphinx-immaterial from 0.11.11 to 0.11.14 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.11 to 0.11.14. - [Release notes](https://github.com/jbms/sphinx-immaterial/releases) - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.11...v0.11.14) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0617735..8c0dac4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -1516,13 +1516,13 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-immaterial" -version = "0.11.11" +version = "0.11.14" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_immaterial-0.11.11-py3-none-any.whl", hash = "sha256:174c7ce0f39c87413af0fbff17d0821e2f1fbae0d578b7074c9a6e17f1ef295c"}, - {file = "sphinx_immaterial-0.11.11.tar.gz", hash = "sha256:f98f3019cbb1d77b259c7ab09dc977ca220dff931dd0f2fabee76e9f9c77b3b4"}, + {file = "sphinx_immaterial-0.11.14-py3-none-any.whl", hash = "sha256:dd1a30614c8ecaa931155189e7d54f211232e31cf3e5c6d28ba9f04a4817f0a3"}, + {file = "sphinx_immaterial-0.11.14.tar.gz", hash = "sha256:e1e8ba93c78a3e007743fede01a3be43f5ae97c5cc19b8e2a4d2aa058abead61"}, ] [package.dependencies] From 76a511999cbc40c9488c04f942b2651b68579926 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:36:00 +0000 Subject: [PATCH 305/371] Bump zipp from 3.16.0 to 3.19.1 Bumps [zipp](https://github.com/jaraco/zipp) from 3.16.0 to 3.19.1. - [Release notes](https://github.com/jaraco/zipp/releases) - [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst) - [Commits](https://github.com/jaraco/zipp/compare/v3.16.0...v3.19.1) --- updated-dependencies: - dependency-name: zipp dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0617735..22ddb7d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -1718,18 +1718,18 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "zipp" -version = "3.16.0" +version = "3.19.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.16.0-py3-none-any.whl", hash = "sha256:5dadc3ad0a1f825fe42ce1bce0f2fc5a13af2e6b2d386af5b0ff295bc0a287d3"}, - {file = "zipp-3.16.0.tar.gz", hash = "sha256:1876cb065531855bbe83b6c489dcf69ecc28f1068d8e95959fe8bbc77774c941"}, + {file = "zipp-3.19.1-py3-none-any.whl", hash = "sha256:2828e64edb5386ea6a52e7ba7cdb17bb30a73a858f5eb6eb93d8d36f5ea26091"}, + {file = "zipp-3.19.1.tar.gz", hash = "sha256:35427f6d5594f4acf82d25541438348c26736fa9b3afa2754bcd63cdb99d8e8f"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [extras] docs = [] From 76b5781f723fbb7b94591e81775c30708b59ec93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 18:26:24 +0000 Subject: [PATCH 306/371] Bump setuptools from 68.0.0 to 70.0.0 Bumps [setuptools](https://github.com/pypa/setuptools) from 68.0.0 to 70.0.0. - [Release notes](https://github.com/pypa/setuptools/releases) - [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst) - [Commits](https://github.com/pypa/setuptools/compare/v68.0.0...v70.0.0) --- updated-dependencies: - dependency-name: setuptools dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0617735..a934d44 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -1443,19 +1443,18 @@ files = [ [[package]] name = "setuptools" -version = "68.0.0" +version = "70.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, - {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, + {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, + {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" From 635df1f2a1185a581867a3e465a32d1d4bd868e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 12:37:44 +0000 Subject: [PATCH 307/371] Bump black from 24.3.0 to 24.8.0 Bumps [black](https://github.com/psf/black) from 24.3.0 to 24.8.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/24.3.0...24.8.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 50 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0617735..62e17e5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -81,33 +81,33 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "black" -version = "24.3.0" +version = "24.8.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"}, - {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"}, - {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"}, - {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"}, - {file = "black-24.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9"}, - {file = "black-24.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597"}, - {file = "black-24.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d"}, - {file = "black-24.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5"}, - {file = "black-24.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f"}, - {file = "black-24.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11"}, - {file = "black-24.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4"}, - {file = "black-24.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5"}, - {file = "black-24.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837"}, - {file = "black-24.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd"}, - {file = "black-24.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213"}, - {file = "black-24.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959"}, - {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"}, - {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"}, - {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"}, - {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"}, - {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"}, - {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"}, + {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"}, + {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"}, + {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"}, + {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"}, + {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"}, + {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"}, + {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"}, + {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"}, + {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"}, + {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"}, + {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"}, + {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"}, + {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"}, + {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"}, + {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"}, + {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"}, + {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"}, + {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"}, + {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"}, + {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"}, + {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"}, + {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"}, ] [package.dependencies] @@ -1737,4 +1737,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.8.0" -content-hash = "56ad51a8a3004d515723e757ab68aeccd8577ced2f6f576d67925db8fc89ca3c" +content-hash = "b028c5f0cacaba8fd5d69662e625203a80035158aa9ca1b30609c2a8a6079b46" diff --git a/pyproject.toml b/pyproject.toml index 991fd89..f94a978 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,7 +71,7 @@ pytest-cov = "^4.1.0" tox = "*" mypy = "^1.10" isort = "^5.13.2" -black = "^24.3.0" +black = "^24.8.0" flynt = "^1.0" deptry = "^0.16.1" flake8 = "^5.0.4" From 3322d3c9b7fdee2ff94995f846047a3e54f18774 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 12:22:32 +0000 Subject: [PATCH 308/371] Bump python from 3.12.4-alpine to 3.12.6-alpine Bumps python from 3.12.4-alpine to 3.12.6-alpine. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1e694c6..103c3d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.1 -FROM python:3.12.4-alpine as builder +FROM python:3.12.6-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.12.4-alpine +FROM python:3.12.6-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 078b883bd553f5f929036722f5620cfb485f33a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20R=C3=B6hr?= Date: Mon, 3 Feb 2025 17:00:23 +0100 Subject: [PATCH 309/371] This sets the used library version to the currently latest one (0.7.1) as 0.5.5 throws an error --- README.rst | 2 +- docs/hook.rst | 2 +- docs/index.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index f9124af..f765651 100644 --- a/README.rst +++ b/README.rst @@ -87,7 +87,7 @@ pre-commit hook repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.5.5 # The version to use or 'master' for latest + rev: 0.7.1 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/docs/hook.rst b/docs/hook.rst index 5079078..3be1251 100644 --- a/docs/hook.rst +++ b/docs/hook.rst @@ -16,7 +16,7 @@ A full .pre-commit-config.yaml example you can use in your repository: repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.5.5 # The version to use or 'master' for latest + rev: 0.7.1 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/docs/index.rst b/docs/index.rst index 0ff4fef..f203f08 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -77,7 +77,7 @@ Usage repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.5.5 # The version to use or 'master' for latest + rev: 0.7.1 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator From db8256376743a46c0c7444d8b80745923f689dd4 Mon Sep 17 00:00:00 2001 From: Artur Maciag Date: Thu, 6 Feb 2025 07:16:52 +0000 Subject: [PATCH 310/371] Artifact actions fix --- .github/workflows/build-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 1ef14a1..4a3e0b1 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -44,7 +44,7 @@ jobs: run: | poetry run python -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs docs/_build/html -n -W - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 name: Upload docs as artifact with: name: docs-html From 8f069ee9a33ab4da9fb995e3f8d19998e91abc9f Mon Sep 17 00:00:00 2001 From: Fede Barcelona Date: Wed, 7 May 2025 16:20:32 +0200 Subject: [PATCH 311/371] fix: extract extra options recursively --- openapi_spec_validator/validation/keywords.py | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index e21df31..8811dd0 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -73,6 +73,26 @@ def __init__(self, registry: "KeywordValidatorRegistry"): def default_validator(self) -> ValueValidator: return cast(ValueValidator, self.registry["default"]) + def _collect_properties(self, schema) -> set[str]: + """Return *all* property names reachable from this schema.""" + props: set[str] = set() + + if "properties" in schema: + props.update((schema / "properties").keys()) + + for kw in ("allOf", "anyOf", "oneOf"): + if kw in schema: + for sub in schema / kw: + props.update(self._collect_properties(sub)) + + if "items" in schema: + props.update(self._collect_properties(schema / "items")) + + if "not" in schema: + props.update(self._collect_properties(schema / "not")) + + return props + def __call__( self, schema: SchemaPath, require_properties: bool = True ) -> Iterator[ValidationError]: @@ -89,15 +109,9 @@ def __call__( if "allOf" in schema: all_of = schema / "allOf" for inner_schema in all_of: - yield from self( - inner_schema, - require_properties=False, - ) - if "properties" not in inner_schema: - continue - inner_schema_props = inner_schema / "properties" - inner_schema_props_keys = inner_schema_props.keys() - nested_properties += list(inner_schema_props_keys) + yield from self(inner_schema, require_properties=False) + nested_properties += list(self._collect_properties(inner_schema)) + if "anyOf" in schema: any_of = schema / "anyOf" From 058826294b2dea226883135f275080bb37cc1d87 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 15:06:55 +0100 Subject: [PATCH 312/371] Upgrade Python 3.13 --- .github/workflows/build-docs.yml | 4 +- .github/workflows/python-test.yml | 2 +- openapi_spec_validator/readers.py | 2 +- openapi_spec_validator/schemas/utils.py | 12 +- openapi_spec_validator/validation/proxies.py | 2 +- poetry.lock | 1963 ++++++++++-------- pyproject.toml | 7 +- 7 files changed, 1053 insertions(+), 939 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 4a3e0b1..2d52e12 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -11,10 +11,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.9 + - name: Set up Python 3.12 uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: 3.12 - name: Get full Python version id: full-python-version diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index b453e43..57e0b47 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] os: [windows-latest, ubuntu-latest] fail-fast: false steps: diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index 9f9d93c..e56944a 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -1,8 +1,8 @@ import sys +from collections.abc import Hashable from os import path from pathlib import Path from typing import Any -from typing import Hashable from typing import Mapping from typing import Tuple diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index 37a7494..ca437e6 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -1,18 +1,12 @@ """OpenAIP spec validator schemas utils module.""" -import sys +from collections.abc import Hashable +from importlib.resources import as_file +from importlib.resources import files from os import path from typing import Any -from typing import Hashable from typing import Mapping from typing import Tuple -if sys.version_info >= (3, 9): - from importlib.resources import as_file - from importlib.resources import files -else: - from importlib_resources import as_file - from importlib_resources import files - from jsonschema_path.readers import FilePathReader diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index d872620..8651dfa 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -1,7 +1,7 @@ """OpenAPI spec validator validation proxies module.""" import warnings +from collections.abc import Hashable from typing import Any -from typing import Hashable from typing import Iterator from typing import Mapping from typing import Optional diff --git a/poetry.lock b/poetry.lock index 30df927..d3594ba 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,36 +1,36 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "alabaster" -version = "0.7.13" -description = "A configurable sidebar-enabled Sphinx theme" +version = "0.7.16" +description = "A light, configurable Sphinx theme" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] [[package]] name = "annotated-types" -version = "0.5.0" +version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["docs"] files = [ - {file = "annotated_types-0.5.0-py3-none-any.whl", hash = "sha256:58da39888f92c276ad970249761ebea80ba544b77acddaa1a4d6cf78287d45fd"}, - {file = "annotated_types-0.5.0.tar.gz", hash = "sha256:47cdc3490d9ac1506ce92c7aaa76c579dc3509ff11e098fc867e5130ab7be802"}, + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} - [[package]] name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = "*" +groups = ["docs"] files = [ {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, @@ -42,6 +42,7 @@ version = "0.8.1" description = "Read/rewrite/write Python ASTs" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["dev"] files = [ {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, @@ -49,65 +50,69 @@ files = [ [[package]] name = "attrs" -version = "23.1.0" +version = "25.3.0" description = "Classes Without Boilerplate" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, + {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, + {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] [[package]] name = "babel" -version = "2.12.1" +version = "2.17.0" description = "Internationalization utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["docs"] files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, + {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, + {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, ] -[package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} +[package.extras] +dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] [[package]] name = "black" -version = "24.8.0" +version = "24.10.0" description = "The uncompromising code formatter." optional = false -python-versions = ">=3.8" -files = [ - {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"}, - {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"}, - {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"}, - {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"}, - {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"}, - {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"}, - {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"}, - {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"}, - {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"}, - {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"}, - {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"}, - {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"}, - {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"}, - {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"}, - {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"}, - {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"}, - {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"}, - {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"}, - {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"}, - {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"}, - {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"}, - {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"}, +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812"}, + {file = "black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea"}, + {file = "black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f"}, + {file = "black-24.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e"}, + {file = "black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad"}, + {file = "black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50"}, + {file = "black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392"}, + {file = "black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175"}, + {file = "black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3"}, + {file = "black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65"}, + {file = "black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f"}, + {file = "black-24.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8"}, + {file = "black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981"}, + {file = "black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b"}, + {file = "black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2"}, + {file = "black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b"}, + {file = "black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd"}, + {file = "black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f"}, + {file = "black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800"}, + {file = "black-24.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7"}, + {file = "black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d"}, + {file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"}, ] [package.dependencies] @@ -121,7 +126,7 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +d = ["aiohttp (>=3.10)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -131,6 +136,7 @@ version = "1.0.1" description = "Version-bump your software with a single command!" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "bump2version-1.0.1-py2.py3-none-any.whl", hash = "sha256:37f927ea17cde7ae2d7baf832f8e80ce3777624554a653006c9144f8017fe410"}, {file = "bump2version-1.0.1.tar.gz", hash = "sha256:762cb2bfad61f4ec8e2bdf452c7c267416f8c70dd9ecb1653fd0bbb01fa936e6"}, @@ -138,35 +144,38 @@ files = [ [[package]] name = "cachetools" -version = "5.3.2" +version = "6.0.0" description = "Extensible memoizing collections and decorators" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "cachetools-5.3.2-py3-none-any.whl", hash = "sha256:861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1"}, - {file = "cachetools-5.3.2.tar.gz", hash = "sha256:086ee420196f7b2ab9ca2db2520aca326318b68fe5ba8bc4d49cca91add450f2"}, + {file = "cachetools-6.0.0-py3-none-any.whl", hash = "sha256:82e73ba88f7b30228b5507dce1a1f878498fc669d972aef2dde4f3a3c24f103e"}, + {file = "cachetools-6.0.0.tar.gz", hash = "sha256:f225782b84438f828328fc2ad74346522f27e5b1440f4e9fd18b20ebfd1aa2cf"}, ] [[package]] name = "certifi" -version = "2024.7.4" +version = "2025.4.26" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main", "docs"] files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, + {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, ] [[package]] name = "cfgv" -version = "3.3.1" +version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, ] [[package]] @@ -175,6 +184,7 @@ version = "5.2.0" description = "Universal encoding detector for Python 3" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, @@ -182,97 +192,116 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.2.0" +version = "3.4.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, +python-versions = ">=3.7" +groups = ["main", "docs"] +files = [ + {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, + {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, + {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, ] [[package]] name = "click" -version = "8.1.4" +version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ - {file = "click-8.1.4-py3-none-any.whl", hash = "sha256:2739815aaa5d2c986a88f1e9230c55e17f0caad3d958a5e13ad0797c166db9e3"}, - {file = "click-8.1.4.tar.gz", hash = "sha256:b97d0c74955da062a7d4ef92fadb583806a585b2ea81958a81bd72726cbb8e37"}, + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, ] [package.dependencies] @@ -284,103 +313,115 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev", "docs"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {docs = "sys_platform == \"win32\""} [[package]] name = "coverage" -version = "7.2.7" +version = "7.8.2" description = "Code coverage measurement for Python" optional = false -python-versions = ">=3.7" -files = [ - {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, - {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, - {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, - {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, - {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, - {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, - {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, - {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, - {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, - {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, - {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, - {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, - {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, - {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, - {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, - {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, - {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, - {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "coverage-7.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd8ec21e1443fd7a447881332f7ce9d35b8fbd2849e761bb290b584535636b0a"}, + {file = "coverage-7.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c26c2396674816deaeae7ded0e2b42c26537280f8fe313335858ffff35019be"}, + {file = "coverage-7.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1aec326ed237e5880bfe69ad41616d333712c7937bcefc1343145e972938f9b3"}, + {file = "coverage-7.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e818796f71702d7a13e50c70de2a1924f729228580bcba1607cccf32eea46e6"}, + {file = "coverage-7.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:546e537d9e24efc765c9c891328f30f826e3e4808e31f5d0f87c4ba12bbd1622"}, + {file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab9b09a2349f58e73f8ebc06fac546dd623e23b063e5398343c5270072e3201c"}, + {file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fd51355ab8a372d89fb0e6a31719e825cf8df8b6724bee942fb5b92c3f016ba3"}, + {file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0774df1e093acb6c9e4d58bce7f86656aeed6c132a16e2337692c12786b32404"}, + {file = "coverage-7.8.2-cp310-cp310-win32.whl", hash = "sha256:00f2e2f2e37f47e5f54423aeefd6c32a7dbcedc033fcd3928a4f4948e8b96af7"}, + {file = "coverage-7.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:145b07bea229821d51811bf15eeab346c236d523838eda395ea969d120d13347"}, + {file = "coverage-7.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b99058eef42e6a8dcd135afb068b3d53aff3921ce699e127602efff9956457a9"}, + {file = "coverage-7.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5feb7f2c3e6ea94d3b877def0270dff0947b8d8c04cfa34a17be0a4dc1836879"}, + {file = "coverage-7.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:670a13249b957bb9050fab12d86acef7bf8f6a879b9d1a883799276e0d4c674a"}, + {file = "coverage-7.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0bdc8bf760459a4a4187b452213e04d039990211f98644c7292adf1e471162b5"}, + {file = "coverage-7.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07a989c867986c2a75f158f03fdb413128aad29aca9d4dbce5fc755672d96f11"}, + {file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2db10dedeb619a771ef0e2949ccba7b75e33905de959c2643a4607bef2f3fb3a"}, + {file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e6ea7dba4e92926b7b5f0990634b78ea02f208d04af520c73a7c876d5a8d36cb"}, + {file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ef2f22795a7aca99fc3c84393a55a53dd18ab8c93fb431004e4d8f0774150f54"}, + {file = "coverage-7.8.2-cp311-cp311-win32.whl", hash = "sha256:641988828bc18a6368fe72355df5f1703e44411adbe49bba5644b941ce6f2e3a"}, + {file = "coverage-7.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8ab4a51cb39dc1933ba627e0875046d150e88478dbe22ce145a68393e9652975"}, + {file = "coverage-7.8.2-cp311-cp311-win_arm64.whl", hash = "sha256:8966a821e2083c74d88cca5b7dcccc0a3a888a596a04c0b9668a891de3a0cc53"}, + {file = "coverage-7.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e2f6fe3654468d061942591aef56686131335b7a8325684eda85dacdf311356c"}, + {file = "coverage-7.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76090fab50610798cc05241bf83b603477c40ee87acd358b66196ab0ca44ffa1"}, + {file = "coverage-7.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bd0a0a5054be160777a7920b731a0570284db5142abaaf81bcbb282b8d99279"}, + {file = "coverage-7.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da23ce9a3d356d0affe9c7036030b5c8f14556bd970c9b224f9c8205505e3b99"}, + {file = "coverage-7.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9392773cffeb8d7e042a7b15b82a414011e9d2b5fdbbd3f7e6a6b17d5e21b20"}, + {file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:876cbfd0b09ce09d81585d266c07a32657beb3eaec896f39484b631555be0fe2"}, + {file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3da9b771c98977a13fbc3830f6caa85cae6c9c83911d24cb2d218e9394259c57"}, + {file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a990f6510b3292686713bfef26d0049cd63b9c7bb17e0864f133cbfd2e6167f"}, + {file = "coverage-7.8.2-cp312-cp312-win32.whl", hash = "sha256:bf8111cddd0f2b54d34e96613e7fbdd59a673f0cf5574b61134ae75b6f5a33b8"}, + {file = "coverage-7.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:86a323a275e9e44cdf228af9b71c5030861d4d2610886ab920d9945672a81223"}, + {file = "coverage-7.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:820157de3a589e992689ffcda8639fbabb313b323d26388d02e154164c57b07f"}, + {file = "coverage-7.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea561010914ec1c26ab4188aef8b1567272ef6de096312716f90e5baa79ef8ca"}, + {file = "coverage-7.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cb86337a4fcdd0e598ff2caeb513ac604d2f3da6d53df2c8e368e07ee38e277d"}, + {file = "coverage-7.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26a4636ddb666971345541b59899e969f3b301143dd86b0ddbb570bd591f1e85"}, + {file = "coverage-7.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5040536cf9b13fb033f76bcb5e1e5cb3b57c4807fef37db9e0ed129c6a094257"}, + {file = "coverage-7.8.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc67994df9bcd7e0150a47ef41278b9e0a0ea187caba72414b71dc590b99a108"}, + {file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e6c86888fd076d9e0fe848af0a2142bf606044dc5ceee0aa9eddb56e26895a0"}, + {file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:684ca9f58119b8e26bef860db33524ae0365601492e86ba0b71d513f525e7050"}, + {file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8165584ddedb49204c4e18da083913bdf6a982bfb558632a79bdaadcdafd0d48"}, + {file = "coverage-7.8.2-cp313-cp313-win32.whl", hash = "sha256:34759ee2c65362163699cc917bdb2a54114dd06d19bab860725f94ef45a3d9b7"}, + {file = "coverage-7.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:2f9bc608fbafaee40eb60a9a53dbfb90f53cc66d3d32c2849dc27cf5638a21e3"}, + {file = "coverage-7.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:9fe449ee461a3b0c7105690419d0b0aba1232f4ff6d120a9e241e58a556733f7"}, + {file = "coverage-7.8.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8369a7c8ef66bded2b6484053749ff220dbf83cba84f3398c84c51a6f748a008"}, + {file = "coverage-7.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:159b81df53a5fcbc7d45dae3adad554fdbde9829a994e15227b3f9d816d00b36"}, + {file = "coverage-7.8.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6fcbbd35a96192d042c691c9e0c49ef54bd7ed865846a3c9d624c30bb67ce46"}, + {file = "coverage-7.8.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05364b9cc82f138cc86128dc4e2e1251c2981a2218bfcd556fe6b0fbaa3501be"}, + {file = "coverage-7.8.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46d532db4e5ff3979ce47d18e2fe8ecad283eeb7367726da0e5ef88e4fe64740"}, + {file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4000a31c34932e7e4fa0381a3d6deb43dc0c8f458e3e7ea6502e6238e10be625"}, + {file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:43ff5033d657cd51f83015c3b7a443287250dc14e69910577c3e03bd2e06f27b"}, + {file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94316e13f0981cbbba132c1f9f365cac1d26716aaac130866ca812006f662199"}, + {file = "coverage-7.8.2-cp313-cp313t-win32.whl", hash = "sha256:3f5673888d3676d0a745c3d0e16da338c5eea300cb1f4ada9c872981265e76d8"}, + {file = "coverage-7.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:2c08b05ee8d7861e45dc5a2cc4195c8c66dca5ac613144eb6ebeaff2d502e73d"}, + {file = "coverage-7.8.2-cp313-cp313t-win_arm64.whl", hash = "sha256:1e1448bb72b387755e1ff3ef1268a06617afd94188164960dba8d0245a46004b"}, + {file = "coverage-7.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:496948261eaac5ac9cf43f5d0a9f6eb7a6d4cb3bedb2c5d294138142f5c18f2a"}, + {file = "coverage-7.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eacd2de0d30871eff893bab0b67840a96445edcb3c8fd915e6b11ac4b2f3fa6d"}, + {file = "coverage-7.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b039ffddc99ad65d5078ef300e0c7eed08c270dc26570440e3ef18beb816c1ca"}, + {file = "coverage-7.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e49824808d4375ede9dd84e9961a59c47f9113039f1a525e6be170aa4f5c34d"}, + {file = "coverage-7.8.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b069938961dfad881dc2f8d02b47645cd2f455d3809ba92a8a687bf513839787"}, + {file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:de77c3ba8bb686d1c411e78ee1b97e6e0b963fb98b1637658dd9ad2c875cf9d7"}, + {file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1676628065a498943bd3f64f099bb573e08cf1bc6088bbe33cf4424e0876f4b3"}, + {file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8e1a26e7e50076e35f7afafde570ca2b4d7900a491174ca357d29dece5aacee7"}, + {file = "coverage-7.8.2-cp39-cp39-win32.whl", hash = "sha256:6782a12bf76fa61ad9350d5a6ef5f3f020b57f5e6305cbc663803f2ebd0f270a"}, + {file = "coverage-7.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1efa4166ba75ccefd647f2d78b64f53f14fb82622bc94c5a5cb0a622f50f1c9e"}, + {file = "coverage-7.8.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:ec455eedf3ba0bbdf8f5a570012617eb305c63cb9f03428d39bf544cb2b94837"}, + {file = "coverage-7.8.2-py3-none-any.whl", hash = "sha256:726f32ee3713f7359696331a18daf0c3b3a70bb0ae71141b9d3c52be7c595e32"}, + {file = "coverage-7.8.2.tar.gz", hash = "sha256:a886d531373a1f6ff9fad2a2ba4a045b68467b779ae729ee0b3b10ac20033b27"}, ] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] -toml = ["tomli"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "deptry" -version = "0.16.1" +version = "0.16.2" description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "deptry-0.16.1-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:29ed8ae61b8f5664dd484717c79eef7ec66d965940efd828fca0d3c09220a1db"}, - {file = "deptry-0.16.1-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:738a772b538f51e9a7bb8d5cb9a61cfea8794a79371d171919b01cff0dc895bf"}, - {file = "deptry-0.16.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56b78f7c860def8000e93f88345a24809f1b91e2f7836ac9a08285cb405e2762"}, - {file = "deptry-0.16.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3e86a04ea87ddece0f68ba204feb950f588205808c8320e6628300f03ff66dc"}, - {file = "deptry-0.16.1-cp38-abi3-win_amd64.whl", hash = "sha256:01b5098739a56c93f3e1e40efec5f20452f22a9a8436a59809d46201fcb94bcf"}, - {file = "deptry-0.16.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7e29dc4c1bbb933c9482e8cef85fafe2be7f46aeb90a8a07ba5f2b22af60876f"}, - {file = "deptry-0.16.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8dfab68c247566c87a40f55f405be8549ffe4cea0b9b5384b7ae73a6f1d5cd1"}, - {file = "deptry-0.16.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1228493926b6e59cd2df7cb6016e10c255553cc31db24edcf7fc8d5474b81be6"}, - {file = "deptry-0.16.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:99c3ac60b78ad1b8fb9844c25393e7ebc969cc950601ce3c050f56d196da5a79"}, - {file = "deptry-0.16.1.tar.gz", hash = "sha256:39fb62da4a8f4d17ed282310f7bcaadec55a95a8c471b01e0fcdf5351a7ac323"}, + {file = "deptry-0.16.2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:24bfbae07bd6533c852c795e8d88d05a8ad0801bec0d3662e1a37db763c52540"}, + {file = "deptry-0.16.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:fc881688a2eaeafe51c0617d32a6535057bccdb74559cc667109f48f81cd976e"}, + {file = "deptry-0.16.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fed4b692f556e4c80acb42cec93e3b5fdc7fc2323049c2a0cfd9dfc4a9c7033e"}, + {file = "deptry-0.16.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ec508a932d8f06c3bd1aa7a4548d5dbec92c3060d42eedcda3be9729bd7c3b"}, + {file = "deptry-0.16.2-cp38-abi3-win_amd64.whl", hash = "sha256:eb92e9aacde66cfe001d6318eb0851ae0ca26fea441defed4765a47644daf8bb"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dfdceca2fbc87f4bce04df4207914a5eb37e67fb2107579ad2e88107c22d2456"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:96ab62dd5f4658735aac72d0e49f6d896eabf50a0e4e2cdecb436a1362aa696b"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e4408fa5a8d146b55bc40f0829fb875efef33174a2679bd9954ce988b9bc0d7"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af976afc2a0583f48dc25f616d2566fecd7af5080675c8eccb161def88d93503"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd86c9d34aa75b91fb72b34110f0660b2277bf9a95fe9cae3ead36d465bc44ac"}, + {file = "deptry-0.16.2.tar.gz", hash = "sha256:f0f752cf6f5e9f7445a79fcf195b772cd2d4b889cd260e23867dd8013caa74c1"}, ] [package.dependencies] @@ -390,55 +431,63 @@ tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [[package]] name = "distlib" -version = "0.3.7" +version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" +groups = ["dev"] files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] name = "docutils" -version = "0.20.1" +version = "0.21.2" description = "Docutils -- Python Documentation Utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, - {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, ] [[package]] name = "exceptiongroup" -version = "1.1.2" +version = "1.3.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.11\"" files = [ - {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"}, - {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"}, + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + [package.extras] test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.13.1" +version = "3.18.0" description = "A platform independent file lock." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, + {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, + {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] +typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] [[package]] name = "flake8" @@ -446,6 +495,7 @@ version = "5.0.4" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.6.1" +groups = ["dev"] files = [ {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, @@ -458,13 +508,14 @@ pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "flynt" -version = "1.0.1" +version = "1.0.2" description = "CLI tool to convert a python project's %-formatted strings to f-strings." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ - {file = "flynt-1.0.1-py3-none-any.whl", hash = "sha256:65d1c546434827275123222a98408e9561bcd67db832dd58f530ff17b8329ec1"}, - {file = "flynt-1.0.1.tar.gz", hash = "sha256:988aac00672a5469726cc0a17cef7d1178c284a9fe8563458db2475d0aaed965"}, + {file = "flynt-1.0.2-py3-none-any.whl", hash = "sha256:0388f44acf5c5ccaf96dbd23b7817f56a1b0e54b36df7993b6e64e07939f7dab"}, + {file = "flynt-1.0.2.tar.gz", hash = "sha256:e725eaf2d6b5de8ba356599b638bc3561c6a37c0b92f4979cd4cd451be2c0ce5"}, ] [package.dependencies] @@ -476,13 +527,14 @@ dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] [[package]] name = "identify" -version = "2.5.24" +version = "2.6.12" description = "File identification library for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"}, - {file = "identify-2.5.24.tar.gz", hash = "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4"}, + {file = "identify-2.6.12-py2.py3-none-any.whl", hash = "sha256:ad9672d5a72e0d2ff7c5c8809b62dfa60458626352fb0eb7b55e69bdc45334a2"}, + {file = "identify-2.6.12.tar.gz", hash = "sha256:d8de45749f1efb108badef65ee8386f0f7bb19a7f26185f74de6367bffbaf0e6"}, ] [package.extras] @@ -490,21 +542,26 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.7" +version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" +groups = ["main", "docs"] files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + [[package]] name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["docs"] files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, @@ -512,50 +569,39 @@ files = [ [[package]] name = "importlib-metadata" -version = "6.8.0" +version = "8.7.0" description = "Read metadata from Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["docs"] +markers = "python_version < \"3.10\"" files = [ - {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, - {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, + {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, + {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, ] [package.dependencies] -zipp = ">=0.5" +zipp = ">=3.20" [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] - -[[package]] -name = "importlib-resources" -version = "6.4.0" -description = "Read resources from Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"}, - {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"}, -] - -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] [[package]] name = "iniconfig" -version = "2.0.0" +version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, + {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, + {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] [[package]] @@ -564,6 +610,7 @@ version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, @@ -574,13 +621,14 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.4" +version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["docs"] files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, + {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, + {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] [package.dependencies] @@ -591,172 +639,152 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.22.0" +version = "4.24.0" description = "An implementation of JSON Schema validation for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "jsonschema-4.22.0-py3-none-any.whl", hash = "sha256:ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802"}, - {file = "jsonschema-4.22.0.tar.gz", hash = "sha256:5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7"}, + {file = "jsonschema-4.24.0-py3-none-any.whl", hash = "sha256:a462455f19f5faf404a7902952b6f0e3ce868f3ee09a359b05eca6673bd8412d"}, + {file = "jsonschema-4.24.0.tar.gz", hash = "sha256:0b4e8069eb12aedfa881333004bccaec24ecef5a8a6a4b6df142b2cc9599d196"}, ] [package.dependencies] attrs = ">=22.2.0" -importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} jsonschema-specifications = ">=2023.03.6" -pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} referencing = ">=0.28.4" rpds-py = ">=0.7.1" [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] [[package]] name = "jsonschema-path" -version = "0.3.2" +version = "0.3.4" description = "JSONSchema Spec with object-oriented paths" optional = false -python-versions = ">=3.8.0,<4.0.0" +python-versions = "<4.0.0,>=3.8.0" +groups = ["main"] files = [ - {file = "jsonschema_path-0.3.2-py3-none-any.whl", hash = "sha256:271aedfefcd161a0f467bdf23e1d9183691a61eaabf4b761046a914e369336c7"}, - {file = "jsonschema_path-0.3.2.tar.gz", hash = "sha256:4d0dababf341e36e9b91a5fb2a3e3fd300b0150e7fe88df4e55cc8253c5a3989"}, + {file = "jsonschema_path-0.3.4-py3-none-any.whl", hash = "sha256:f502191fdc2b22050f9a81c9237be9d27145b9001c55842bece5e94e382e52f8"}, + {file = "jsonschema_path-0.3.4.tar.gz", hash = "sha256:8365356039f16cc65fddffafda5f58766e34bebab7d6d105616ab52bc4297001"}, ] [package.dependencies] pathable = ">=0.4.1,<0.5.0" PyYAML = ">=5.1" -referencing = ">=0.28.0,<0.32.0" +referencing = "<0.37.0" requests = ">=2.31.0,<3.0.0" [[package]] name = "jsonschema-specifications" -version = "2023.6.1" +version = "2025.4.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "jsonschema_specifications-2023.6.1-py3-none-any.whl", hash = "sha256:3d2b82663aff01815f744bb5c7887e2121a63399b49b104a3c96145474d091d7"}, - {file = "jsonschema_specifications-2023.6.1.tar.gz", hash = "sha256:ca1c4dd059a9e7b34101cf5b3ab7ff1d18b139f35950d598d629837ef66e8f28"}, + {file = "jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af"}, + {file = "jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608"}, ] [package.dependencies] -importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} -referencing = ">=0.28.0" +referencing = ">=0.31.0" [[package]] name = "lazy-object-proxy" -version = "1.10.0" +version = "1.11.0" description = "A fast and thorough lazy object proxy." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, - {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, + {file = "lazy_object_proxy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:132bc8a34f2f2d662a851acfd1b93df769992ed1b81e2b1fda7db3e73b0d5a18"}, + {file = "lazy_object_proxy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:01261a3afd8621a1accb5682df2593dc7ec7d21d38f411011a5712dcd418fbed"}, + {file = "lazy_object_proxy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:090935756cc041e191f22f4f9c7fd4fe9a454717067adf5b1bbd2ce3046b556e"}, + {file = "lazy_object_proxy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:76ec715017f06410f57df442c1a8d66e6b5f7035077785b129817f5ae58810a4"}, + {file = "lazy_object_proxy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9a9f39098e93a63618a79eef2889ae3cf0605f676cd4797fdfd49fcd7ddc318b"}, + {file = "lazy_object_proxy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:ee13f67f4fcd044ef27bfccb1c93d39c100046fec1fad6e9a1fcdfd17492aeb3"}, + {file = "lazy_object_proxy-1.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fd4c84eafd8dd15ea16f7d580758bc5c2ce1f752faec877bb2b1f9f827c329cd"}, + {file = "lazy_object_proxy-1.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:d2503427bda552d3aefcac92f81d9e7ca631e680a2268cbe62cd6a58de6409b7"}, + {file = "lazy_object_proxy-1.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0613116156801ab3fccb9e2b05ed83b08ea08c2517fdc6c6bc0d4697a1a376e3"}, + {file = "lazy_object_proxy-1.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:bb03c507d96b65f617a6337dedd604399d35face2cdf01526b913fb50c4cb6e8"}, + {file = "lazy_object_proxy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28c174db37946f94b97a97b579932ff88f07b8d73a46b6b93322b9ac06794a3b"}, + {file = "lazy_object_proxy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:d662f0669e27704495ff1f647070eb8816931231c44e583f4d0701b7adf6272f"}, + {file = "lazy_object_proxy-1.11.0-py3-none-any.whl", hash = "sha256:a56a5093d433341ff7da0e89f9b486031ccd222ec8e52ec84d0ec1cdc819674b"}, + {file = "lazy_object_proxy-1.11.0.tar.gz", hash = "sha256:18874411864c9fbbbaa47f9fc1dd7aea754c86cfde21278ef427639d1dd78e9c"}, ] [[package]] name = "markupsafe" -version = "2.1.3" +version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +python-versions = ">=3.9" +groups = ["docs"] +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] [[package]] @@ -765,6 +793,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -772,175 +801,179 @@ files = [ [[package]] name = "mypy" -version = "1.10.1" +version = "1.16.0" description = "Optional static typing for Python" optional = false -python-versions = ">=3.8" -files = [ - {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, - {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, - {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, - {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, - {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, - {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, - {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, - {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, - {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, - {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, - {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, - {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, - {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, - {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, - {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, - {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, - {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, - {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, - {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "mypy-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7909541fef256527e5ee9c0a7e2aeed78b6cda72ba44298d1334fe7881b05c5c"}, + {file = "mypy-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e71d6f0090c2256c713ed3d52711d01859c82608b5d68d4fa01a3fe30df95571"}, + {file = "mypy-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:936ccfdd749af4766be824268bfe22d1db9eb2f34a3ea1d00ffbe5b5265f5491"}, + {file = "mypy-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4086883a73166631307fdd330c4a9080ce24913d4f4c5ec596c601b3a4bdd777"}, + {file = "mypy-1.16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:feec38097f71797da0231997e0de3a58108c51845399669ebc532c815f93866b"}, + {file = "mypy-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:09a8da6a0ee9a9770b8ff61b39c0bb07971cda90e7297f4213741b48a0cc8d93"}, + {file = "mypy-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9f826aaa7ff8443bac6a494cf743f591488ea940dd360e7dd330e30dd772a5ab"}, + {file = "mypy-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82d056e6faa508501af333a6af192c700b33e15865bda49611e3d7d8358ebea2"}, + {file = "mypy-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:089bedc02307c2548eb51f426e085546db1fa7dd87fbb7c9fa561575cf6eb1ff"}, + {file = "mypy-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6a2322896003ba66bbd1318c10d3afdfe24e78ef12ea10e2acd985e9d684a666"}, + {file = "mypy-1.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:021a68568082c5b36e977d54e8f1de978baf401a33884ffcea09bd8e88a98f4c"}, + {file = "mypy-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:54066fed302d83bf5128632d05b4ec68412e1f03ef2c300434057d66866cea4b"}, + {file = "mypy-1.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c5436d11e89a3ad16ce8afe752f0f373ae9620841c50883dc96f8b8805620b13"}, + {file = "mypy-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f2622af30bf01d8fc36466231bdd203d120d7a599a6d88fb22bdcb9dbff84090"}, + {file = "mypy-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d045d33c284e10a038f5e29faca055b90eee87da3fc63b8889085744ebabb5a1"}, + {file = "mypy-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b4968f14f44c62e2ec4a038c8797a87315be8df7740dc3ee8d3bfe1c6bf5dba8"}, + {file = "mypy-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb14a4a871bb8efb1e4a50360d4e3c8d6c601e7a31028a2c79f9bb659b63d730"}, + {file = "mypy-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:bd4e1ebe126152a7bbaa4daedd781c90c8f9643c79b9748caa270ad542f12bec"}, + {file = "mypy-1.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a9e056237c89f1587a3be1a3a70a06a698d25e2479b9a2f57325ddaaffc3567b"}, + {file = "mypy-1.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b07e107affb9ee6ce1f342c07f51552d126c32cd62955f59a7db94a51ad12c0"}, + {file = "mypy-1.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6fb60cbd85dc65d4d63d37cb5c86f4e3a301ec605f606ae3a9173e5cf34997b"}, + {file = "mypy-1.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7e32297a437cc915599e0578fa6bc68ae6a8dc059c9e009c628e1c47f91495d"}, + {file = "mypy-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:afe420c9380ccec31e744e8baff0d406c846683681025db3531b32db56962d52"}, + {file = "mypy-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:55f9076c6ce55dd3f8cd0c6fff26a008ca8e5131b89d5ba6d86bd3f47e736eeb"}, + {file = "mypy-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f56236114c425620875c7cf71700e3d60004858da856c6fc78998ffe767b73d3"}, + {file = "mypy-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:15486beea80be24ff067d7d0ede673b001d0d684d0095803b3e6e17a886a2a92"}, + {file = "mypy-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f2ed0e0847a80655afa2c121835b848ed101cc7b8d8d6ecc5205aedc732b1436"}, + {file = "mypy-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb5fbc8063cb4fde7787e4c0406aa63094a34a2daf4673f359a1fb64050e9cb2"}, + {file = "mypy-1.16.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a5fcfdb7318c6a8dd127b14b1052743b83e97a970f0edb6c913211507a255e20"}, + {file = "mypy-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:2e7e0ad35275e02797323a5aa1be0b14a4d03ffdb2e5f2b0489fa07b89c67b21"}, + {file = "mypy-1.16.0-py3-none-any.whl", hash = "sha256:29e1499864a3888bca5c1542f2d7232c6e586295183320caa95758fc84034031"}, + {file = "mypy-1.16.0.tar.gz", hash = "sha256:84b94283f817e2aa6350a14b4a8fb2a35a53c286f97c9d30f53b63620e7af8ab"}, ] [package.dependencies] -mypy-extensions = ">=1.0.0" +mypy_extensions = ">=1.0.0" +pathspec = ">=0.9.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.1.0" +typing_extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] install-types = ["pip"] mypyc = ["setuptools (>=50)"] reports = ["lxml"] [[package]] name = "mypy-extensions" -version = "1.0.0" +version = "1.1.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, + {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, + {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, ] [[package]] name = "nodeenv" -version = "1.8.0" +version = "1.9.1" description = "Node.js virtual environment builder" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, ] -[package.dependencies] -setuptools = "*" - [[package]] name = "openapi-schema-validator" -version = "0.6.2" +version = "0.6.3" description = "OpenAPI schema validation for Python" optional = false -python-versions = ">=3.8.0,<4.0.0" +python-versions = "<4.0.0,>=3.8.0" +groups = ["main"] files = [ - {file = "openapi_schema_validator-0.6.2-py3-none-any.whl", hash = "sha256:c4887c1347c669eb7cded9090f4438b710845cd0f90d1fb9e1b3303fb37339f8"}, - {file = "openapi_schema_validator-0.6.2.tar.gz", hash = "sha256:11a95c9c9017912964e3e5f2545a5b11c3814880681fcacfb73b1759bb4f2804"}, + {file = "openapi_schema_validator-0.6.3-py3-none-any.whl", hash = "sha256:f3b9870f4e556b5a62a1c39da72a6b4b16f3ad9c73dc80084b1b11e74ba148a3"}, + {file = "openapi_schema_validator-0.6.3.tar.gz", hash = "sha256:f37bace4fc2a5d96692f4f8b31dc0f8d7400fd04f3a937798eaf880d425de6ee"}, ] [package.dependencies] jsonschema = ">=4.19.1,<5.0.0" -jsonschema-specifications = ">=2023.5.2,<2024.0.0" +jsonschema-specifications = ">=2023.5.2" rfc3339-validator = "*" [[package]] name = "packaging" -version = "23.2" +version = "25.0" description = "Core utilities for Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["dev", "docs"] files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, + {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, ] [[package]] name = "pathable" -version = "0.4.3" +version = "0.4.4" description = "Object-oriented paths" optional = false -python-versions = ">=3.7.0,<4.0.0" +python-versions = "<4.0.0,>=3.7.0" +groups = ["main"] files = [ - {file = "pathable-0.4.3-py3-none-any.whl", hash = "sha256:cdd7b1f9d7d5c8b8d3315dbf5a86b2596053ae845f056f57d97c0eefff84da14"}, - {file = "pathable-0.4.3.tar.gz", hash = "sha256:5c869d315be50776cc8a993f3af43e0c60dc01506b399643f919034ebf4cdcab"}, + {file = "pathable-0.4.4-py3-none-any.whl", hash = "sha256:5ae9e94793b6ef5a4cbe0a7ce9dbbefc1eec38df253763fd0aeeacf2762dbbc2"}, + {file = "pathable-0.4.4.tar.gz", hash = "sha256:6905a3cd17804edfac7875b5f6c9142a218c7caef78693c2dbbbfbac186d88b2"}, ] [[package]] name = "pathspec" -version = "0.11.1" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = ">=3.7" -files = [ - {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, - {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, -] - -[[package]] -name = "pkgutil-resolve-name" -version = "1.3.10" -description = "Resolve a name to an object." -optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.3.8" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, + {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, + {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.14.1)"] [[package]] name = "pluggy" -version = "1.5.0" +version = "1.6.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, + {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, + {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] [package.extras] dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] +testing = ["coverage", "pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.5.0" +version = "4.2.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "pre_commit-3.5.0-py2.py3-none-any.whl", hash = "sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660"}, - {file = "pre_commit-3.5.0.tar.gz", hash = "sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32"}, + {file = "pre_commit-4.2.0-py2.py3-none-any.whl", hash = "sha256:a009ca7205f1eb497d10b845e52c838a98b6cdd2102a6c8e4540e94ee75c58bd"}, + {file = "pre_commit-4.2.0.tar.gz", hash = "sha256:601283b9757afd87d40c4c4a9b2b5de9637a8ea02eaff7adc2d0fb4e04841146"}, ] [package.dependencies] @@ -956,6 +989,7 @@ version = "2.9.1" description = "Python style guide checker" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, @@ -963,136 +997,133 @@ files = [ [[package]] name = "pydantic" -version = "2.4.2" +version = "2.11.5" description = "Data validation using Python type hints" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "pydantic-2.4.2-py3-none-any.whl", hash = "sha256:bc3ddf669d234f4220e6e1c4d96b061abe0998185a8d7855c0126782b7abc8c1"}, - {file = "pydantic-2.4.2.tar.gz", hash = "sha256:94f336138093a5d7f426aac732dcfe7ab4eb4da243c88f891d65deb4a2556ee7"}, + {file = "pydantic-2.11.5-py3-none-any.whl", hash = "sha256:f9c26ba06f9747749ca1e5c94d6a85cb84254577553c8785576fd38fa64dc0f7"}, + {file = "pydantic-2.11.5.tar.gz", hash = "sha256:7f853db3d0ce78ce8bbb148c401c2cdd6431b3473c0cdff2755c7690952a7b7a"}, ] [package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.10.1" -typing-extensions = ">=4.6.1" +annotated-types = ">=0.6.0" +pydantic-core = "2.33.2" +typing-extensions = ">=4.12.2" +typing-inspection = ">=0.4.0" [package.extras] email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] [[package]] name = "pydantic-core" -version = "2.10.1" -description = "" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"}, - {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"}, - {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"}, - {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"}, - {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"}, - {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"}, - {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"}, - {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"}, - {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"}, - {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"}, - {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"}, - {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"}, - {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"}, - {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"}, - {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"}, - {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"}, - {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"}, - {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"}, - {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"}, - {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"}, - {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"}, - {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"}, - {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"}, - {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"}, - {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"}, - {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"}, - {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"}, - {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"}, - {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"}, - {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"}, - {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"}, - {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"}, - {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"}, - {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"}, - {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"}, +version = "2.33.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.9" +groups = ["docs"] +files = [ + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a2b911a5b90e0374d03813674bf0a5fbbb7741570dcd4b4e85a2e48d17def29d"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6fa6dfc3e4d1f734a34710f391ae822e0a8eb8559a85c6979e14e65ee6ba2954"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c54c939ee22dc8e2d545da79fc5381f1c020d6d3141d3bd747eab59164dc89fb"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53a57d2ed685940a504248187d5685e49eb5eef0f696853647bf37c418c538f7"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09fb9dd6571aacd023fe6aaca316bd01cf60ab27240d7eb39ebd66a3a15293b4"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0e6116757f7959a712db11f3e9c0a99ade00a5bbedae83cb801985aa154f071b"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d55ab81c57b8ff8548c3e4947f119551253f4e3787a7bbc0b6b3ca47498a9d3"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c20c462aa4434b33a2661701b861604913f912254e441ab8d78d30485736115a"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44857c3227d3fb5e753d5fe4a3420d6376fa594b07b621e220cd93703fe21782"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:eb9b459ca4df0e5c87deb59d37377461a538852765293f9e6ee834f0435a93b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9fcd347d2cc5c23b06de6d3b7b8275be558a0c90549495c699e379a80bf8379e"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win32.whl", hash = "sha256:83aa99b1285bc8f038941ddf598501a86f1536789740991d7d8756e34f1e74d9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win_amd64.whl", hash = "sha256:f481959862f57f29601ccced557cc2e817bce7533ab8e01a797a48b49c9692b3"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:87acbfcf8e90ca885206e98359d7dca4bcbb35abdc0ff66672a293e1d7a19101"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f92c15cd1e97d4b12acd1cc9004fa092578acfa57b67ad5e43a197175d01a64"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3f26877a748dc4251cfcfda9dfb5f13fcb034f5308388066bcfe9031b63ae7d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac89aea9af8cd672fa7b510e7b8c33b0bba9a43186680550ccf23020f32d535"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:970919794d126ba8645f3837ab6046fb4e72bbc057b3709144066204c19a455d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3eb3fe62804e8f859c49ed20a8451342de53ed764150cb14ca71357c765dc2a6"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:3abcd9392a36025e3bd55f9bd38d908bd17962cc49bc6da8e7e96285336e2bca"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3a1c81334778f9e3af2f8aeb7a960736e5cab1dfebfb26aabca09afd2906c039"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27"}, + {file = "pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc"}, ] [package.dependencies] @@ -1100,20 +1131,27 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydantic-extra-types" -version = "2.0.0" +version = "2.10.5" description = "Extra Pydantic types." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["docs"] files = [ - {file = "pydantic_extra_types-2.0.0-py3-none-any.whl", hash = "sha256:63e5109f00815e71fff2b82090ff0523baef6b8a51889356fd984ef50c184e64"}, - {file = "pydantic_extra_types-2.0.0.tar.gz", hash = "sha256:137ddacb168d95ea77591dbb3739ec4da5eeac0fc4df7f797371d9904451a178"}, + {file = "pydantic_extra_types-2.10.5-py3-none-any.whl", hash = "sha256:b60c4e23d573a69a4f1a16dd92888ecc0ef34fb0e655b4f305530377fa70e7a8"}, + {file = "pydantic_extra_types-2.10.5.tar.gz", hash = "sha256:1dcfa2c0cf741a422f088e0dbb4690e7bfadaaf050da3d6f80d6c3cf58a2bad8"}, ] [package.dependencies] -pydantic = ">=2.0b3" +pydantic = ">=2.5.2" +typing-extensions = "*" [package.extras] -all = ["phonenumbers (>=8,<9)", "pycountry (>=22,<23)"] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<10)", "pycountry (>=23)", "pymongo (>=4.0.0,<5.0.0)", "python-ulid (>=1,<2) ; python_version < \"3.9\"", "python-ulid (>=1,<4) ; python_version >= \"3.9\"", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] +pendulum = ["pendulum (>=3.0.0,<4.0.0)"] +phonenumbers = ["phonenumbers (>=8,<10)"] +pycountry = ["pycountry (>=23)"] +python-ulid = ["python-ulid (>=1,<2) ; python_version < \"3.9\"", "python-ulid (>=1,<4) ; python_version >= \"3.9\""] +semver = ["semver (>=3.0.2)"] [[package]] name = "pyflakes" @@ -1121,6 +1159,7 @@ version = "2.5.0" description = "passive checker of Python programs" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, @@ -1128,58 +1167,62 @@ files = [ [[package]] name = "pygments" -version = "2.15.1" +version = "2.19.1" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["dev", "docs"] files = [ - {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, - {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, ] [package.extras] -plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyproject-api" -version = "1.6.1" +version = "1.9.1" description = "API to interact with the python pyproject.toml based projects" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "pyproject_api-1.6.1-py3-none-any.whl", hash = "sha256:4c0116d60476b0786c88692cf4e325a9814965e2469c5998b830bba16b183675"}, - {file = "pyproject_api-1.6.1.tar.gz", hash = "sha256:1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"}, + {file = "pyproject_api-1.9.1-py3-none-any.whl", hash = "sha256:7d6238d92f8962773dd75b5f0c4a6a27cce092a14b623b811dba656f3b628948"}, + {file = "pyproject_api-1.9.1.tar.gz", hash = "sha256:43c9918f49daab37e302038fc1aed54a8c7a91a9fa935d00b9a485f37e0f5335"}, ] [package.dependencies] -packaging = ">=23.1" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} +packaging = ">=25" +tomli = {version = ">=2.2.1", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (<7.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "setuptools (>=68.1.2)", "wheel (>=0.41.2)"] +docs = ["furo (>=2024.8.6)", "sphinx-autodoc-typehints (>=3.2)"] +testing = ["covdefaults (>=2.3)", "pytest (>=8.3.5)", "pytest-cov (>=6.1.1)", "pytest-mock (>=3.14)", "setuptools (>=80.3.1)"] [[package]] name = "pytest" -version = "8.2.2" +version = "8.4.0" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"}, - {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"}, + {file = "pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e"}, + {file = "pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6"}, ] [package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2.0" +colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} +iniconfig = ">=1" +packaging = ">=20" +pluggy = ">=1.5,<2" +pygments = ">=2.7.2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -1187,6 +1230,7 @@ version = "4.1.0" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, @@ -1205,6 +1249,7 @@ version = "1.1.1" description = "pytest plugin to check FLAKE8 requirements" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "pytest-flake8-1.1.1.tar.gz", hash = "sha256:ba4f243de3cb4c2486ed9e70752c80dd4b636f7ccb27d4eba763c35ed0cd316e"}, {file = "pytest_flake8-1.1.1-py2.py3-none-any.whl", hash = "sha256:e0661a786f8cbf976c185f706fdaf5d6df0b1667c3bcff8e823ba263618627e7"}, @@ -1214,101 +1259,96 @@ files = [ flake8 = ">=4.0" pytest = ">=7.0" -[[package]] -name = "pytz" -version = "2023.3" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, - {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, -] - [[package]] name = "pyyaml" -version = "6.0.1" +version = "6.0.2" description = "YAML parser and emitter for Python" optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +python-versions = ">=3.8" +groups = ["main", "dev"] +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] name = "referencing" -version = "0.29.1" +version = "0.36.2" description = "JSON Referencing + Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "referencing-0.29.1-py3-none-any.whl", hash = "sha256:d3c8f323ee1480095da44d55917cfb8278d73d6b4d5f677e3e40eb21314ac67f"}, - {file = "referencing-0.29.1.tar.gz", hash = "sha256:90cb53782d550ba28d2166ef3f55731f38397def8832baac5d45235f1995e35e"}, + {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, + {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, ] [package.dependencies] attrs = ">=22.2.0" rpds-py = ">=0.7.0" +typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} [[package]] name = "requests" -version = "2.32.0" +version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["main", "docs"] files = [ - {file = "requests-2.32.0-py3-none-any.whl", hash = "sha256:f2c3881dddb70d056c5bd7600a4fae312b2a300e39be6a118d30b90bd27262b5"}, - {file = "requests-2.32.0.tar.gz", hash = "sha256:fa5490319474c82ef1d2c9bc459d3652e3ae4ef4c4ebdd18a21145a47ca4b6b8"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -1327,6 +1367,7 @@ version = "0.1.4" description = "A pure python RFC3339 validator" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] files = [ {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, @@ -1337,181 +1378,191 @@ six = "*" [[package]] name = "rpds-py" -version = "0.8.10" +version = "0.25.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false -python-versions = ">=3.8" -files = [ - {file = "rpds_py-0.8.10-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:93d06cccae15b3836247319eee7b6f1fdcd6c10dabb4e6d350d27bd0bdca2711"}, - {file = "rpds_py-0.8.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3816a890a6a9e9f1de250afa12ca71c9a7a62f2b715a29af6aaee3aea112c181"}, - {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7c6304b894546b5a6bdc0fe15761fa53fe87d28527a7142dae8de3c663853e1"}, - {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad3bfb44c8840fb4be719dc58e229f435e227fbfbe133dc33f34981ff622a8f8"}, - {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14f1c356712f66653b777ecd8819804781b23dbbac4eade4366b94944c9e78ad"}, - {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:82bb361cae4d0a627006dadd69dc2f36b7ad5dc1367af9d02e296ec565248b5b"}, - {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2e3c4f2a8e3da47f850d7ea0d7d56720f0f091d66add889056098c4b2fd576c"}, - {file = "rpds_py-0.8.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15a90d0ac11b4499171067ae40a220d1ca3cb685ec0acc356d8f3800e07e4cb8"}, - {file = "rpds_py-0.8.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:70bb9c8004b97b4ef7ae56a2aa56dfaa74734a0987c78e7e85f00004ab9bf2d0"}, - {file = "rpds_py-0.8.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d64f9f88d5203274a002b54442cafc9c7a1abff2a238f3e767b70aadf919b451"}, - {file = "rpds_py-0.8.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ccbbd276642788c4376fbe8d4e6c50f0fb4972ce09ecb051509062915891cbf0"}, - {file = "rpds_py-0.8.10-cp310-none-win32.whl", hash = "sha256:fafc0049add8043ad07ab5382ee80d80ed7e3699847f26c9a5cf4d3714d96a84"}, - {file = "rpds_py-0.8.10-cp310-none-win_amd64.whl", hash = "sha256:915031002c86a5add7c6fd4beb601b2415e8a1c956590a5f91d825858e92fe6e"}, - {file = "rpds_py-0.8.10-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:84eb541a44f7a18f07a6bfc48b95240739e93defe1fdfb4f2a295f37837945d7"}, - {file = "rpds_py-0.8.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f59996d0550894affaad8743e97b9b9c98f638b221fac12909210ec3d9294786"}, - {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9adb5664b78fcfcd830000416c8cc69853ef43cb084d645b3f1f0296edd9bae"}, - {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f96f3f98fbff7af29e9edf9a6584f3c1382e7788783d07ba3721790625caa43e"}, - {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:376b8de737401050bd12810003d207e824380be58810c031f10ec563ff6aef3d"}, - {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d1c2bc319428d50b3e0fa6b673ab8cc7fa2755a92898db3a594cbc4eeb6d1f7"}, - {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73a1e48430f418f0ac3dfd87860e4cc0d33ad6c0f589099a298cb53724db1169"}, - {file = "rpds_py-0.8.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134ec8f14ca7dbc6d9ae34dac632cdd60939fe3734b5d287a69683c037c51acb"}, - {file = "rpds_py-0.8.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4b519bac7c09444dd85280fd60f28c6dde4389c88dddf4279ba9b630aca3bbbe"}, - {file = "rpds_py-0.8.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9cd57981d9fab04fc74438d82460f057a2419974d69a96b06a440822d693b3c0"}, - {file = "rpds_py-0.8.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:69d089c026f6a8b9d64a06ff67dc3be196707b699d7f6ca930c25f00cf5e30d8"}, - {file = "rpds_py-0.8.10-cp311-none-win32.whl", hash = "sha256:220bdcad2d2936f674650d304e20ac480a3ce88a40fe56cd084b5780f1d104d9"}, - {file = "rpds_py-0.8.10-cp311-none-win_amd64.whl", hash = "sha256:6c6a0225b8501d881b32ebf3f5807a08ad3685b5eb5f0a6bfffd3a6e039b2055"}, - {file = "rpds_py-0.8.10-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:e3d0cd3dff0e7638a7b5390f3a53057c4e347f4ef122ee84ed93fc2fb7ea4aa2"}, - {file = "rpds_py-0.8.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d77dff3a5aa5eedcc3da0ebd10ff8e4969bc9541aa3333a8d41715b429e99f47"}, - {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41c89a366eae49ad9e65ed443a8f94aee762931a1e3723749d72aeac80f5ef2f"}, - {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3793c21494bad1373da517001d0849eea322e9a049a0e4789e50d8d1329df8e7"}, - {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:805a5f3f05d186c5d50de2e26f765ba7896d0cc1ac5b14ffc36fae36df5d2f10"}, - {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b01b39ad5411563031ea3977bbbc7324d82b088e802339e6296f082f78f6115c"}, - {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3f1e860be21f3e83011116a65e7310486300e08d9a3028e73e8d13bb6c77292"}, - {file = "rpds_py-0.8.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a13c8e56c46474cd5958d525ce6a9996727a83d9335684e41f5192c83deb6c58"}, - {file = "rpds_py-0.8.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:93d99f957a300d7a4ced41615c45aeb0343bb8f067c42b770b505de67a132346"}, - {file = "rpds_py-0.8.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:148b0b38d719c0760e31ce9285a9872972bdd7774969a4154f40c980e5beaca7"}, - {file = "rpds_py-0.8.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3cc5e5b5514796f45f03a568981971b12a3570f3de2e76114f7dc18d4b60a3c4"}, - {file = "rpds_py-0.8.10-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e8e24b210a4deb5a7744971f8f77393005bae7f873568e37dfd9effe808be7f7"}, - {file = "rpds_py-0.8.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b41941583adce4242af003d2a8337b066ba6148ca435f295f31ac6d9e4ea2722"}, - {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c490204e16bca4f835dba8467869fe7295cdeaa096e4c5a7af97f3454a97991"}, - {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee45cd1d84beed6cbebc839fd85c2e70a3a1325c8cfd16b62c96e2ffb565eca"}, - {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a8ca409f1252e1220bf09c57290b76cae2f14723746215a1e0506472ebd7bdf"}, - {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96b293c0498c70162effb13100624c5863797d99df75f2f647438bd10cbf73e4"}, - {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4627520a02fccbd324b33c7a83e5d7906ec746e1083a9ac93c41ac7d15548c7"}, - {file = "rpds_py-0.8.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e39d7ab0c18ac99955b36cd19f43926450baba21e3250f053e0704d6ffd76873"}, - {file = "rpds_py-0.8.10-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ba9f1d1ebe4b63801977cec7401f2d41e888128ae40b5441270d43140efcad52"}, - {file = "rpds_py-0.8.10-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:802f42200d8caf7f25bbb2a6464cbd83e69d600151b7e3b49f49a47fa56b0a38"}, - {file = "rpds_py-0.8.10-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d19db6ba816e7f59fc806c690918da80a7d186f00247048cd833acdab9b4847b"}, - {file = "rpds_py-0.8.10-cp38-none-win32.whl", hash = "sha256:7947e6e2c2ad68b1c12ee797d15e5f8d0db36331200b0346871492784083b0c6"}, - {file = "rpds_py-0.8.10-cp38-none-win_amd64.whl", hash = "sha256:fa326b3505d5784436d9433b7980171ab2375535d93dd63fbcd20af2b5ca1bb6"}, - {file = "rpds_py-0.8.10-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:7b38a9ac96eeb6613e7f312cd0014de64c3f07000e8bf0004ad6ec153bac46f8"}, - {file = "rpds_py-0.8.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c4d42e83ddbf3445e6514f0aff96dca511421ed0392d9977d3990d9f1ba6753c"}, - {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b21575031478609db6dbd1f0465e739fe0e7f424a8e7e87610a6c7f68b4eb16"}, - {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:574868858a7ff6011192c023a5289158ed20e3f3b94b54f97210a773f2f22921"}, - {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae40f4a70a1f40939d66ecbaf8e7edc144fded190c4a45898a8cfe19d8fc85ea"}, - {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37f7ee4dc86db7af3bac6d2a2cedbecb8e57ce4ed081f6464510e537589f8b1e"}, - {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:695f642a3a5dbd4ad2ffbbacf784716ecd87f1b7a460843b9ddf965ccaeafff4"}, - {file = "rpds_py-0.8.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f43ab4cb04bde6109eb2555528a64dfd8a265cc6a9920a67dcbde13ef53a46c8"}, - {file = "rpds_py-0.8.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a11ab0d97be374efd04f640c04fe5c2d3dabc6dfb998954ea946ee3aec97056d"}, - {file = "rpds_py-0.8.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:92cf5b3ee60eef41f41e1a2cabca466846fb22f37fc580ffbcb934d1bcab225a"}, - {file = "rpds_py-0.8.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ceaac0c603bf5ac2f505a78b2dcab78d3e6b706be6596c8364b64cc613d208d2"}, - {file = "rpds_py-0.8.10-cp39-none-win32.whl", hash = "sha256:dd4f16e57c12c0ae17606c53d1b57d8d1c8792efe3f065a37cb3341340599d49"}, - {file = "rpds_py-0.8.10-cp39-none-win_amd64.whl", hash = "sha256:c03a435d26c3999c2a8642cecad5d1c4d10c961817536af52035f6f4ee2f5dd0"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0da53292edafecba5e1d8c1218f99babf2ed0bf1c791d83c0ab5c29b57223068"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d20a8ed227683401cc508e7be58cba90cc97f784ea8b039c8cd01111e6043e0"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97cab733d303252f7c2f7052bf021a3469d764fc2b65e6dbef5af3cbf89d4892"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c398fda6df361a30935ab4c4bccb7f7a3daef2964ca237f607c90e9f3fdf66f"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2eb4b08c45f8f8d8254cdbfacd3fc5d6b415d64487fb30d7380b0d0569837bf1"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7dfb1cbb895810fa2b892b68153c17716c6abaa22c7dc2b2f6dcf3364932a1c"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89c92b74e8bf6f53a6f4995fd52f4bd510c12f103ee62c99e22bc9e05d45583c"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e9c0683cb35a9b5881b41bc01d5568ffc667910d9dbc632a1fba4e7d59e98773"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0eeb2731708207d0fe2619afe6c4dc8cb9798f7de052da891de5f19c0006c315"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:7495010b658ec5b52835f21d8c8b1a7e52e194c50f095d4223c0b96c3da704b1"}, - {file = "rpds_py-0.8.10-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c72ebc22e70e04126158c46ba56b85372bc4d54d00d296be060b0db1671638a4"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:2cd3045e7f6375dda64ed7db1c5136826facb0159ea982f77d9cf6125025bd34"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:2418cf17d653d24ffb8b75e81f9f60b7ba1b009a23298a433a4720b2a0a17017"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a2edf8173ac0c7a19da21bc68818be1321998528b5e3f748d6ee90c0ba2a1fd"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f29b8c55fd3a2bc48e485e37c4e2df3317f43b5cc6c4b6631c33726f52ffbb3"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a7d20c1cf8d7b3960c5072c265ec47b3f72a0c608a9a6ee0103189b4f28d531"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:521fc8861a86ae54359edf53a15a05fabc10593cea7b3357574132f8427a5e5a"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5c191713e98e7c28800233f039a32a42c1a4f9a001a8a0f2448b07391881036"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:083df0fafe199371206111583c686c985dddaf95ab3ee8e7b24f1fda54515d09"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:ed41f3f49507936a6fe7003985ea2574daccfef999775525d79eb67344e23767"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:2614c2732bf45de5c7f9e9e54e18bc78693fa2f635ae58d2895b7965e470378c"}, - {file = "rpds_py-0.8.10-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c60528671d9d467009a6ec284582179f6b88651e83367d0ab54cb739021cd7de"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:ee744fca8d1ea822480a2a4e7c5f2e1950745477143668f0b523769426060f29"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a38b9f526d0d6cbdaa37808c400e3d9f9473ac4ff64d33d9163fd05d243dbd9b"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60e0e86e870350e03b3e25f9b1dd2c6cc72d2b5f24e070249418320a6f9097b7"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f53f55a8852f0e49b0fc76f2412045d6ad9d5772251dea8f55ea45021616e7d5"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c493365d3fad241d52f096e4995475a60a80f4eba4d3ff89b713bc65c2ca9615"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:300eb606e6b94a7a26f11c8cc8ee59e295c6649bd927f91e1dbd37a4c89430b6"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a665f6f1a87614d1c3039baf44109094926dedf785e346d8b0a728e9cabd27a"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:927d784648211447201d4c6f1babddb7971abad922b32257ab74de2f2750fad0"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:c200b30dd573afa83847bed7e3041aa36a8145221bf0cfdfaa62d974d720805c"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:08166467258fd0240a1256fce272f689f2360227ee41c72aeea103e9e4f63d2b"}, - {file = "rpds_py-0.8.10-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:996cc95830de9bc22b183661d95559ec6b3cd900ad7bc9154c4cbf5be0c9b734"}, - {file = "rpds_py-0.8.10.tar.gz", hash = "sha256:13e643ce8ad502a0263397362fb887594b49cf84bf518d6038c16f235f2bcea4"}, -] - -[[package]] -name = "setuptools" -version = "70.0.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, - {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "rpds_py-0.25.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f4ad628b5174d5315761b67f212774a32f5bad5e61396d38108bd801c0a8f5d9"}, + {file = "rpds_py-0.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c742af695f7525e559c16f1562cf2323db0e3f0fbdcabdf6865b095256b2d40"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:605ffe7769e24b1800b4d024d24034405d9404f0bc2f55b6db3362cd34145a6f"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ccc6f3ddef93243538be76f8e47045b4aad7a66a212cd3a0f23e34469473d36b"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f70316f760174ca04492b5ab01be631a8ae30cadab1d1081035136ba12738cfa"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1dafef8df605fdb46edcc0bf1573dea0d6d7b01ba87f85cd04dc855b2b4479e"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0701942049095741a8aeb298a31b203e735d1c61f4423511d2b1a41dcd8a16da"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e87798852ae0b37c88babb7f7bbbb3e3fecc562a1c340195b44c7e24d403e380"}, + {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3bcce0edc1488906c2d4c75c94c70a0417e83920dd4c88fec1078c94843a6ce9"}, + {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e2f6a2347d3440ae789505693a02836383426249d5293541cd712e07e7aecf54"}, + {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4fd52d3455a0aa997734f3835cbc4c9f32571345143960e7d7ebfe7b5fbfa3b2"}, + {file = "rpds_py-0.25.1-cp310-cp310-win32.whl", hash = "sha256:3f0b1798cae2bbbc9b9db44ee068c556d4737911ad53a4e5093d09d04b3bbc24"}, + {file = "rpds_py-0.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:3ebd879ab996537fc510a2be58c59915b5dd63bccb06d1ef514fee787e05984a"}, + {file = "rpds_py-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5f048bbf18b1f9120685c6d6bb70cc1a52c8cc11bdd04e643d28d3be0baf666d"}, + {file = "rpds_py-0.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fbb0dbba559959fcb5d0735a0f87cdbca9e95dac87982e9b95c0f8f7ad10255"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4ca54b9cf9d80b4016a67a0193ebe0bcf29f6b0a96f09db942087e294d3d4c2"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee3e26eb83d39b886d2cb6e06ea701bba82ef30a0de044d34626ede51ec98b0"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89706d0683c73a26f76a5315d893c051324d771196ae8b13e6ffa1ffaf5e574f"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2013ee878c76269c7b557a9a9c042335d732e89d482606990b70a839635feb7"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45e484db65e5380804afbec784522de84fa95e6bb92ef1bd3325d33d13efaebd"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48d64155d02127c249695abb87d39f0faf410733428d499867606be138161d65"}, + {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:048893e902132fd6548a2e661fb38bf4896a89eea95ac5816cf443524a85556f"}, + {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0317177b1e8691ab5879f4f33f4b6dc55ad3b344399e23df2e499de7b10a548d"}, + {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bffcf57826d77a4151962bf1701374e0fc87f536e56ec46f1abdd6a903354042"}, + {file = "rpds_py-0.25.1-cp311-cp311-win32.whl", hash = "sha256:cda776f1967cb304816173b30994faaf2fd5bcb37e73118a47964a02c348e1bc"}, + {file = "rpds_py-0.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc3c1ff0abc91444cd20ec643d0f805df9a3661fcacf9c95000329f3ddf268a4"}, + {file = "rpds_py-0.25.1-cp311-cp311-win_arm64.whl", hash = "sha256:5a3ddb74b0985c4387719fc536faced33cadf2172769540c62e2a94b7b9be1c4"}, + {file = "rpds_py-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5ffe453cde61f73fea9430223c81d29e2fbf412a6073951102146c84e19e34c"}, + {file = "rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:115874ae5e2fdcfc16b2aedc95b5eef4aebe91b28e7e21951eda8a5dc0d3461b"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a714bf6e5e81b0e570d01f56e0c89c6375101b8463999ead3a93a5d2a4af91fa"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35634369325906bcd01577da4c19e3b9541a15e99f31e91a02d010816b49bfda"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4cb2b3ddc16710548801c6fcc0cfcdeeff9dafbc983f77265877793f2660309"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ceca1cf097ed77e1a51f1dbc8d174d10cb5931c188a4505ff9f3e119dfe519b"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c2cd1a4b0c2b8c5e31ffff50d09f39906fe351389ba143c195566056c13a7ea"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1de336a4b164c9188cb23f3703adb74a7623ab32d20090d0e9bf499a2203ad65"}, + {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9fca84a15333e925dd59ce01da0ffe2ffe0d6e5d29a9eeba2148916d1824948c"}, + {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88ec04afe0c59fa64e2f6ea0dd9657e04fc83e38de90f6de201954b4d4eb59bd"}, + {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8bd2f19e312ce3e1d2c635618e8a8d8132892bb746a7cf74780a489f0f6cdcb"}, + {file = "rpds_py-0.25.1-cp312-cp312-win32.whl", hash = "sha256:e5e2f7280d8d0d3ef06f3ec1b4fd598d386cc6f0721e54f09109a8132182fbfe"}, + {file = "rpds_py-0.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:db58483f71c5db67d643857404da360dce3573031586034b7d59f245144cc192"}, + {file = "rpds_py-0.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:6d50841c425d16faf3206ddbba44c21aa3310a0cebc3c1cdfc3e3f4f9f6f5728"}, + {file = "rpds_py-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:659d87430a8c8c704d52d094f5ba6fa72ef13b4d385b7e542a08fc240cb4a559"}, + {file = "rpds_py-0.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68f6f060f0bbdfb0245267da014d3a6da9be127fe3e8cc4a68c6f833f8a23bb1"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:083a9513a33e0b92cf6e7a6366036c6bb43ea595332c1ab5c8ae329e4bcc0a9c"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:816568614ecb22b18a010c7a12559c19f6fe993526af88e95a76d5a60b8b75fb"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c6564c0947a7f52e4792983f8e6cf9bac140438ebf81f527a21d944f2fd0a40"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c4a128527fe415d73cf1f70a9a688d06130d5810be69f3b553bf7b45e8acf79"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e1d7a4978ed554f095430b89ecc23f42014a50ac385eb0c4d163ce213c325"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d74ec9bc0e2feb81d3f16946b005748119c0f52a153f6db6a29e8cd68636f295"}, + {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3af5b4cc10fa41e5bc64e5c198a1b2d2864337f8fcbb9a67e747e34002ce812b"}, + {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79dc317a5f1c51fd9c6a0c4f48209c6b8526d0524a6904fc1076476e79b00f98"}, + {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1521031351865e0181bc585147624d66b3b00a84109b57fcb7a779c3ec3772cd"}, + {file = "rpds_py-0.25.1-cp313-cp313-win32.whl", hash = "sha256:5d473be2b13600b93a5675d78f59e63b51b1ba2d0476893415dfbb5477e65b31"}, + {file = "rpds_py-0.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7b74e92a3b212390bdce1d93da9f6488c3878c1d434c5e751cbc202c5e09500"}, + {file = "rpds_py-0.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:dd326a81afe332ede08eb39ab75b301d5676802cdffd3a8f287a5f0b694dc3f5"}, + {file = "rpds_py-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:a58d1ed49a94d4183483a3ce0af22f20318d4a1434acee255d683ad90bf78129"}, + {file = "rpds_py-0.25.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f251bf23deb8332823aef1da169d5d89fa84c89f67bdfb566c49dea1fccfd50d"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbd586bfa270c1103ece2109314dd423df1fa3d9719928b5d09e4840cec0d72"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d273f136e912aa101a9274c3145dcbddbe4bac560e77e6d5b3c9f6e0ed06d34"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:666fa7b1bd0a3810a7f18f6d3a25ccd8866291fbbc3c9b912b917a6715874bb9"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:921954d7fbf3fccc7de8f717799304b14b6d9a45bbeec5a8d7408ccbf531faf5"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3d86373ff19ca0441ebeb696ef64cb58b8b5cbacffcda5a0ec2f3911732a194"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c8980cde3bb8575e7c956a530f2c217c1d6aac453474bf3ea0f9c89868b531b6"}, + {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8eb8c84ecea987a2523e057c0d950bcb3f789696c0499290b8d7b3107a719d78"}, + {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e43a005671a9ed5a650f3bc39e4dbccd6d4326b24fb5ea8be5f3a43a6f576c72"}, + {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58f77c60956501a4a627749a6dcb78dac522f249dd96b5c9f1c6af29bfacfb66"}, + {file = "rpds_py-0.25.1-cp313-cp313t-win32.whl", hash = "sha256:2cb9e5b5e26fc02c8a4345048cd9998c2aca7c2712bd1b36da0c72ee969a3523"}, + {file = "rpds_py-0.25.1-cp313-cp313t-win_amd64.whl", hash = "sha256:401ca1c4a20cc0510d3435d89c069fe0a9ae2ee6495135ac46bdd49ec0495763"}, + {file = "rpds_py-0.25.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ce4c8e485a3c59593f1a6f683cf0ea5ab1c1dc94d11eea5619e4fb5228b40fbd"}, + {file = "rpds_py-0.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d8222acdb51a22929c3b2ddb236b69c59c72af4019d2cba961e2f9add9b6e634"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4593c4eae9b27d22df41cde518b4b9e4464d139e4322e2127daa9b5b981b76be"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd035756830c712b64725a76327ce80e82ed12ebab361d3a1cdc0f51ea21acb0"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:114a07e85f32b125404f28f2ed0ba431685151c037a26032b213c882f26eb908"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dec21e02e6cc932538b5203d3a8bd6aa1480c98c4914cb88eea064ecdbc6396a"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09eab132f41bf792c7a0ea1578e55df3f3e7f61888e340779b06050a9a3f16e9"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c98f126c4fc697b84c423e387337d5b07e4a61e9feac494362a59fd7a2d9ed80"}, + {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0e6a327af8ebf6baba1c10fadd04964c1965d375d318f4435d5f3f9651550f4a"}, + {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bc120d1132cff853ff617754196d0ac0ae63befe7c8498bd67731ba368abe451"}, + {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:140f61d9bed7839446bdd44852e30195c8e520f81329b4201ceead4d64eb3a9f"}, + {file = "rpds_py-0.25.1-cp39-cp39-win32.whl", hash = "sha256:9c006f3aadeda131b438c3092124bd196b66312f0caa5823ef09585a669cf449"}, + {file = "rpds_py-0.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:a61d0b2c7c9a0ae45732a77844917b427ff16ad5464b4d4f5e4adb955f582890"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b24bf3cd93d5b6ecfbedec73b15f143596c88ee249fa98cefa9a9dc9d92c6f28"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:0eb90e94f43e5085623932b68840b6f379f26db7b5c2e6bcef3179bd83c9330f"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d50e4864498a9ab639d6d8854b25e80642bd362ff104312d9770b05d66e5fb13"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c9409b47ba0650544b0bb3c188243b83654dfe55dcc173a86832314e1a6a35d"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:796ad874c89127c91970652a4ee8b00d56368b7e00d3477f4415fe78164c8000"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85608eb70a659bf4c1142b2781083d4b7c0c4e2c90eff11856a9754e965b2540"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4feb9211d15d9160bc85fa72fed46432cdc143eb9cf6d5ca377335a921ac37b"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ccfa689b9246c48947d31dd9d8b16d89a0ecc8e0e26ea5253068efb6c542b76e"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3c5b317ecbd8226887994852e85de562f7177add602514d4ac40f87de3ae45a8"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:454601988aab2c6e8fd49e7634c65476b2b919647626208e376afcd22019eeb8"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:1c0c434a53714358532d13539272db75a5ed9df75a4a090a753ac7173ec14e11"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f73ce1512e04fbe2bc97836e89830d6b4314c171587a99688082d090f934d20a"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee86d81551ec68a5c25373c5643d343150cc54672b5e9a0cafc93c1870a53954"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89c24300cd4a8e4a51e55c31a8ff3918e6651b241ee8876a42cc2b2a078533ba"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:771c16060ff4e79584dc48902a91ba79fd93eade3aa3a12d6d2a4aadaf7d542b"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:785ffacd0ee61c3e60bdfde93baa6d7c10d86f15655bd706c89da08068dc5038"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a40046a529cc15cef88ac5ab589f83f739e2d332cb4d7399072242400ed68c9"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85fc223d9c76cabe5d0bff82214459189720dc135db45f9f66aa7cffbf9ff6c1"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0be9965f93c222fb9b4cc254235b3b2b215796c03ef5ee64f995b1b69af0762"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8378fa4a940f3fb509c081e06cb7f7f2adae8cf46ef258b0e0ed7519facd573e"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:33358883a4490287e67a2c391dfaea4d9359860281db3292b6886bf0be3d8692"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1d1fadd539298e70cac2f2cb36f5b8a65f742b9b9f1014dd4ea1f7785e2470bf"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9a46c2fb2545e21181445515960006e85d22025bd2fe6db23e76daec6eb689fe"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:50f2c501a89c9a5f4e454b126193c5495b9fb441a75b298c60591d8a2eb92e1b"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d779b325cc8238227c47fbc53964c8cc9a941d5dbae87aa007a1f08f2f77b23"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:036ded36bedb727beeabc16dc1dad7cb154b3fa444e936a03b67a86dc6a5066e"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:245550f5a1ac98504147cba96ffec8fabc22b610742e9150138e5d60774686d7"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff7c23ba0a88cb7b104281a99476cccadf29de2a0ef5ce864959a52675b1ca83"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e37caa8cdb3b7cf24786451a0bdb853f6347b8b92005eeb64225ae1db54d1c2b"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2f48ab00181600ee266a095fe815134eb456163f7d6699f525dee471f312cf"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e5fc7484fa7dce57e25063b0ec9638ff02a908304f861d81ea49273e43838c1"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d3c10228d6cf6fe2b63d2e7985e94f6916fa46940df46b70449e9ff9297bd3d1"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:5d9e40f32745db28c1ef7aad23f6fc458dc1e29945bd6781060f0d15628b8ddf"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:35a8d1a24b5936b35c5003313bc177403d8bdef0f8b24f28b1c4a255f94ea992"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6099263f526efff9cf3883dfef505518730f7a7a93049b1d90d42e50a22b4793"}, + {file = "rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3"}, ] -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] - [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +version = "3.0.1" +description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." optional = false -python-versions = "*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" +groups = ["docs"] files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, + {file = "snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064"}, + {file = "snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895"}, ] [[package]] name = "sphinx" -version = "7.1.2" +version = "7.4.7" description = "Python documentation generator" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, - {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, + {file = "sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239"}, + {file = "sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe"}, ] [package.dependencies] -alabaster = ">=0.7,<0.8" -babel = ">=2.9" -colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.21" +alabaster = ">=0.7.14,<0.8.0" +babel = ">=2.13" +colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} +docutils = ">=0.20,<0.22" imagesize = ">=1.3" -importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} -Jinja2 = ">=3.0" -packaging = ">=21.0" -Pygments = ">=2.13" -requests = ">=2.25.0" -snowballstemmer = ">=2.0" +importlib-metadata = {version = ">=6.0", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.1" +packaging = ">=23.0" +Pygments = ">=2.17" +requests = ">=2.30.0" +snowballstemmer = ">=2.2" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.5" +sphinxcontrib-serializinghtml = ">=1.1.9" +tomli = {version = ">=2", markers = "python_version < \"3.11\""} [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] -test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] +lint = ["flake8 (>=6.0)", "importlib-metadata (>=6.0)", "mypy (==1.10.1)", "pytest (>=6.0)", "ruff (==0.5.2)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-docutils (==0.21.0.20240711)", "types-requests (>=2.30.0)"] +test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] [[package]] name = "sphinx-immaterial" @@ -1519,6 +1570,7 @@ version = "0.11.14" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false python-versions = ">=3.8" +groups = ["docs"] files = [ {file = "sphinx_immaterial-0.11.14-py3-none-any.whl", hash = "sha256:dd1a30614c8ecaa931155189e7d54f211232e31cf3e5c6d28ba9f04a4817f0a3"}, {file = "sphinx_immaterial-0.11.14.tar.gz", hash = "sha256:e1e8ba93c78a3e007743fede01a3be43f5ae97c5cc19b8e2a4d2aa058abead61"}, @@ -1542,47 +1594,53 @@ keys = ["pymdown-extensions"] [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.4" +version = "2.0.0" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, - {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, + {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, + {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.2" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +version = "2.0.0" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, + {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, + {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.1" +version = "2.1.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, - {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, + {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, + {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] @@ -1591,6 +1649,7 @@ version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" +groups = ["docs"] files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, @@ -1601,109 +1660,165 @@ test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.3" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +version = "2.0.0" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, + {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, + {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] -test = ["pytest"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] +test = ["defusedxml (>=0.7.1)", "pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.5" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +version = "2.0.0" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" +groups = ["docs"] files = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, + {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, + {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "tomli" -version = "2.0.1" +version = "2.2.1" description = "A lil' TOML parser" optional = false -python-versions = ">=3.7" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] +python-versions = ">=3.8" +groups = ["dev", "docs"] +files = [ + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +] +markers = {dev = "python_full_version <= \"3.11.0a6\"", docs = "python_version < \"3.11\""} [[package]] name = "tox" -version = "4.15.0" +version = "4.26.0" description = "tox is a generic virtualenv management and test command line tool" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "tox-4.15.0-py3-none-any.whl", hash = "sha256:300055f335d855b2ab1b12c5802de7f62a36d4fd53f30bd2835f6a201dda46ea"}, - {file = "tox-4.15.0.tar.gz", hash = "sha256:7a0beeef166fbe566f54f795b4906c31b428eddafc0102ac00d20998dd1933f6"}, + {file = "tox-4.26.0-py3-none-any.whl", hash = "sha256:75f17aaf09face9b97bd41645028d9f722301e912be8b4c65a3f938024560224"}, + {file = "tox-4.26.0.tar.gz", hash = "sha256:a83b3b67b0159fa58e44e646505079e35a43317a62d2ae94725e0586266faeca"}, ] [package.dependencies] -cachetools = ">=5.3.2" +cachetools = ">=5.5.1" chardet = ">=5.2" colorama = ">=0.4.6" -filelock = ">=3.13.1" -packaging = ">=23.2" -platformdirs = ">=4.1" -pluggy = ">=1.3" -pyproject-api = ">=1.6.1" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.25" +filelock = ">=3.16.1" +packaging = ">=24.2" +platformdirs = ">=4.3.6" +pluggy = ">=1.5" +pyproject-api = ">=1.8" +tomli = {version = ">=2.2.1", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.12.2", markers = "python_version < \"3.11\""} +virtualenv = ">=20.31" [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.25.2)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.11)"] -testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1)", "diff-cover (>=8.0.2)", "distlib (>=0.3.8)", "flaky (>=3.7)", "hatch-vcs (>=0.4)", "hatchling (>=1.21)", "psutil (>=5.9.7)", "pytest (>=7.4.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-xdist (>=3.5)", "re-assert (>=1.1)", "time-machine (>=2.13)", "wheel (>=0.42)"] +test = ["devpi-process (>=1.0.2)", "pytest (>=8.3.4)", "pytest-mock (>=3.14)"] [[package]] name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.14.0" +description = "Backported and Experimental Type Hints for Python 3.9+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" +groups = ["main", "dev", "docs"] files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, + {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, + {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, ] +markers = {main = "python_version < \"3.13\""} + +[[package]] +name = "typing-inspection" +version = "0.4.1" +description = "Runtime typing introspection tools" +optional = false +python-versions = ">=3.9" +groups = ["docs"] +files = [ + {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, + {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, +] + +[package.dependencies] +typing-extensions = ">=4.12.0" [[package]] name = "urllib3" -version = "2.2.2" +version = "2.4.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main", "docs"] files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, + {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, + {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.25.1" +version = "20.31.2" description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, - {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, + {file = "virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11"}, + {file = "virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af"}, ] [package.dependencies] @@ -1712,28 +1827,34 @@ filelock = ">=3.12.2,<4" platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"GraalVM\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] [[package]] name = "zipp" -version = "3.19.1" +version = "3.22.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["docs"] +markers = "python_version < \"3.10\"" files = [ - {file = "zipp-3.19.1-py3-none-any.whl", hash = "sha256:2828e64edb5386ea6a52e7ba7cdb17bb30a73a858f5eb6eb93d8d36f5ea26091"}, - {file = "zipp-3.19.1.tar.gz", hash = "sha256:35427f6d5594f4acf82d25541438348c26736fa9b3afa2754bcd63cdb99d8e8f"}, + {file = "zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343"}, + {file = "zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5"}, ] [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib_resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] [extras] docs = [] [metadata] -lock-version = "2.0" -python-versions = "^3.8.0" -content-hash = "b028c5f0cacaba8fd5d69662e625203a80035158aa9ca1b30609c2a8a6079b46" +lock-version = "2.1" +python-versions = "^3.9.0" +content-hash = "9790f4adfba3ec08574956b4e718d475ed49e63961be5056c370c53d9ed25cf7" diff --git a/pyproject.toml b/pyproject.toml index f94a978..22780de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,11 +40,11 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries", "Typing :: Typed", ] @@ -53,10 +53,9 @@ include = [ ] [tool.poetry.dependencies] -jsonschema = "^4.18.0" +jsonschema = "^4.24.0" openapi-schema-validator = "^0.6.0" -python = "^3.8.0" -importlib-resources = {version = ">=5.8,<7.0", python = "<3.9" } +python = "^3.9.0" jsonschema-path = "^0.3.1" lazy-object-proxy = "^1.7.1" From ae91d807018fbcee7c350c7d443c3b029425f185 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 15:36:43 +0100 Subject: [PATCH 313/371] Added _collect_properties function missing type annotation --- openapi_spec_validator/validation/keywords.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index 8811dd0..869c9fd 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -73,7 +73,7 @@ def __init__(self, registry: "KeywordValidatorRegistry"): def default_validator(self) -> ValueValidator: return cast(ValueValidator, self.registry["default"]) - def _collect_properties(self, schema) -> set[str]: + def _collect_properties(self, schema: SchemaPath) -> set[str]: """Return *all* property names reachable from this schema.""" props: set[str] = set() From 42dad2f29c34fc3f4fc99c59ab5bd262ee6a9e7a Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 15:41:27 +0100 Subject: [PATCH 314/371] Version 0.7.2 --- .bumpversion.cfg | 2 +- Dockerfile | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 1f05763..8b6006c 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.7.1 +current_version = 0.7.2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/Dockerfile b/Dockerfile index 103c3d0..eeefd9c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.1 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.2 FROM python:3.12.6-alpine as builder diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 6c6d67d..5491aab 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -14,7 +14,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.7.1" +__version__ = "0.7.2" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index f94a978..f350b15 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.7.1" +version = "0.7.2" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" From 1f1a292e5272cca39d678bc58f8d4c803f286b15 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 15:47:05 +0100 Subject: [PATCH 315/371] Python publish workflow process fix --- .github/workflows/python-publish.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index f60fc56..e6b1ef5 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -12,22 +12,23 @@ on: jobs: publish: runs-on: ubuntu-latest + permissions: + id-token: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.x' - name: Set up poetry - uses: Gr1N/setup-poetry@v8 + uses: Gr1N/setup-poetry@v9 - name: Build run: poetry build - name: Publish - env: - POETRY_HTTP_BASIC_PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }} - POETRY_HTTP_BASIC_PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: poetry publish + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: dist/ From cd31512b9ef953aca28adc2717f230261da72ab0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 14:52:08 +0000 Subject: [PATCH 316/371] Bump python from 3.12.6-alpine to 3.13.3-alpine Bumps python from 3.12.6-alpine to 3.13.3-alpine. --- updated-dependencies: - dependency-name: python dependency-version: 3.13.3-alpine dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index eeefd9c..792e767 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.2 -FROM python:3.12.6-alpine as builder +FROM python:3.13.4-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.12.6-alpine +FROM python:3.13.4-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From 984e8f5c06260d8bf6b09210cd75ef5b7d658112 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 15:03:31 +0000 Subject: [PATCH 317/371] Bump deptry from 0.16.1 to 0.20.0 Bumps [deptry](https://github.com/fpgmaas/deptry) from 0.16.1 to 0.20.0. - [Release notes](https://github.com/fpgmaas/deptry/releases) - [Changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md) - [Commits](https://github.com/fpgmaas/deptry/compare/0.16.1...0.20.0) --- updated-dependencies: - dependency-name: deptry dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 50 ++++++++++++++++++++++++++++++++++++-------------- pyproject.toml | 2 +- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/poetry.lock b/poetry.lock index d3594ba..7dba8c4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -405,28 +405,35 @@ toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "deptry" -version = "0.16.2" +version = "0.23.0" description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "deptry-0.16.2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:24bfbae07bd6533c852c795e8d88d05a8ad0801bec0d3662e1a37db763c52540"}, - {file = "deptry-0.16.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:fc881688a2eaeafe51c0617d32a6535057bccdb74559cc667109f48f81cd976e"}, - {file = "deptry-0.16.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fed4b692f556e4c80acb42cec93e3b5fdc7fc2323049c2a0cfd9dfc4a9c7033e"}, - {file = "deptry-0.16.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ec508a932d8f06c3bd1aa7a4548d5dbec92c3060d42eedcda3be9729bd7c3b"}, - {file = "deptry-0.16.2-cp38-abi3-win_amd64.whl", hash = "sha256:eb92e9aacde66cfe001d6318eb0851ae0ca26fea441defed4765a47644daf8bb"}, - {file = "deptry-0.16.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dfdceca2fbc87f4bce04df4207914a5eb37e67fb2107579ad2e88107c22d2456"}, - {file = "deptry-0.16.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:96ab62dd5f4658735aac72d0e49f6d896eabf50a0e4e2cdecb436a1362aa696b"}, - {file = "deptry-0.16.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e4408fa5a8d146b55bc40f0829fb875efef33174a2679bd9954ce988b9bc0d7"}, - {file = "deptry-0.16.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af976afc2a0583f48dc25f616d2566fecd7af5080675c8eccb161def88d93503"}, - {file = "deptry-0.16.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd86c9d34aa75b91fb72b34110f0660b2277bf9a95fe9cae3ead36d465bc44ac"}, - {file = "deptry-0.16.2.tar.gz", hash = "sha256:f0f752cf6f5e9f7445a79fcf195b772cd2d4b889cd260e23867dd8013caa74c1"}, + {file = "deptry-0.23.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:1f2a6817a37d76e8f6b667381b7caf6ea3e6d6c18b5be24d36c625f387c79852"}, + {file = "deptry-0.23.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:9601b64cc0aed42687fdd5c912d5f1e90d7f7333fb589b14e35bfdfebae866f3"}, + {file = "deptry-0.23.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6172b2205f6e84bcc9df25226693d4deb9576a6f746c2ace828f6d13401d357"}, + {file = "deptry-0.23.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cfa4b3a46ee8a026eaa38e4b9ba43fe6036a07fe16bf0a663cb611b939f6af8"}, + {file = "deptry-0.23.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9d03cc99a61c348df92074a50e0a71b28f264f0edbf686084ca90e6fd44e3abe"}, + {file = "deptry-0.23.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9a46f78098f145100dc582a59af8548b26cdfa16cf0fbd85d2d44645e724cb6a"}, + {file = "deptry-0.23.0-cp39-abi3-win_amd64.whl", hash = "sha256:d53e803b280791d89a051b6183d9dc40411200e22a8ab7e6c32c6b169822a664"}, + {file = "deptry-0.23.0-cp39-abi3-win_arm64.whl", hash = "sha256:da7678624f4626d839c8c03675452cefc59d6cf57d25c84a9711dae514719279"}, + {file = "deptry-0.23.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:40706dcbed54141f2d23afa70a272171c8c46531cd6f0f9c8ef482c906b3cee2"}, + {file = "deptry-0.23.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:889541844092f18e7b48631852195f36c25c5afd4d7e074b19ba824b430add50"}, + {file = "deptry-0.23.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aff9156228eb16cd81792f920c1623c00cb59091ae572600ba0eac587da33c0c"}, + {file = "deptry-0.23.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:583154732cfd438a4a090b7d13d8b2016f1ac2732534f34fb689345768d8538b"}, + {file = "deptry-0.23.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:736e7bc557aec6118b2a4d454f0d81f070782faeaa9d8d3c9a15985c9f265372"}, + {file = "deptry-0.23.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:5f7e4b1a5232ed6d352fca7173750610a169377d1951d3e9782947191942a765"}, + {file = "deptry-0.23.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:04afae204654542406318fd3dd6f4a6697579597f37195437daf84a53ee0ebbf"}, + {file = "deptry-0.23.0.tar.gz", hash = "sha256:4915a3590ccf38ad7a9176aee376745aa9de121f50f8da8fb9ccec87fa93e676"}, ] [package.dependencies] click = ">=8.0.0,<9" colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} +packaging = ">=23.2" +requirements-parser = ">=0.11.0,<1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [[package]] @@ -1361,6 +1368,21 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "requirements-parser" +version = "0.13.0" +description = "This is a small Python module for parsing Pip requirement files." +optional = false +python-versions = "<4.0,>=3.8" +groups = ["dev"] +files = [ + {file = "requirements_parser-0.13.0-py3-none-any.whl", hash = "sha256:2b3173faecf19ec5501971b7222d38f04cb45bb9d87d0ad629ca71e2e62ded14"}, + {file = "requirements_parser-0.13.0.tar.gz", hash = "sha256:0843119ca2cb2331de4eb31b10d70462e39ace698fd660a915c247d2301a4418"}, +] + +[package.dependencies] +packaging = ">=23.2" + [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -1857,4 +1879,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "9790f4adfba3ec08574956b4e718d475ed49e63961be5056c370c53d9ed25cf7" +content-hash = "33d9d91d81da4755a54c3bb79f6a02d019242cad4836c19b21bb8b4a02ef6afc" diff --git a/pyproject.toml b/pyproject.toml index 99f6ef9..11a5c52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,7 +72,7 @@ mypy = "^1.10" isort = "^5.13.2" black = "^24.8.0" flynt = "^1.0" -deptry = "^0.16.1" +deptry = "^0.23.0" flake8 = "^5.0.4" pyflakes = "^2.5.0" bump2version = "^1.0.1" From e71c59760e0e632dfd92a305617b2bd8e55fcbb2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 15:07:33 +0000 Subject: [PATCH 318/371] Bump pytest-cov from 4.1.0 to 5.0.0 Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 4.1.0 to 5.0.0. - [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest-cov/compare/v4.1.0...v5.0.0) --- updated-dependencies: - dependency-name: pytest-cov dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 14 +++++++------- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 7dba8c4..3e304b2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1233,22 +1233,22 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests [[package]] name = "pytest-cov" -version = "4.1.0" +version = "6.1.1" description = "Pytest plugin for measuring coverage." optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, + {file = "pytest_cov-6.1.1-py3-none-any.whl", hash = "sha256:bddf29ed2d0ab6f4df17b4c55b0a657287db8684af9c42ea546b21b1041b3dde"}, + {file = "pytest_cov-6.1.1.tar.gz", hash = "sha256:46935f7aaefba760e716c2ebfbe1c216240b9592966e7da99ea8292d4d3e2a0a"}, ] [package.dependencies] -coverage = {version = ">=5.2.1", extras = ["toml"]} +coverage = {version = ">=7.5", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "pytest-flake8" @@ -1879,4 +1879,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "33d9d91d81da4755a54c3bb79f6a02d019242cad4836c19b21bb8b4a02ef6afc" +content-hash = "896344b6fe0a1a347ea37b85090feb34da7fb80bcca154ea69a3ec43ea2590bf" diff --git a/pyproject.toml b/pyproject.toml index 11a5c52..769c4ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -66,7 +66,7 @@ docs = ["sphinx", "sphinx-immaterial"] pre-commit = "*" pytest = "^8.2.2" pytest-flake8 = "=1.1.1" -pytest-cov = "^4.1.0" +pytest-cov = "^6.1.1" tox = "*" mypy = "^1.10" isort = "^5.13.2" From 272a1dbd2a881a2a411898c1d2a9805926719f59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 15:13:05 +0000 Subject: [PATCH 319/371] Bump pytest-flake8 from 1.1.1 to 1.3.0 Bumps [pytest-flake8](https://github.com/coherent-oss/pytest-flake8) from 1.1.1 to 1.3.0. - [Release notes](https://github.com/coherent-oss/pytest-flake8/releases) - [Changelog](https://github.com/coherent-oss/pytest-flake8/blob/main/NEWS.rst) - [Commits](https://github.com/coherent-oss/pytest-flake8/compare/1.1.1...v1.3.0) --- updated-dependencies: - dependency-name: pytest-flake8 dependency-version: 1.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 18 +++++++++++++----- pyproject.toml | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3e304b2..3aac83e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1252,20 +1252,28 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "pytest-flake8" -version = "1.1.1" +version = "1.3.0" description = "pytest plugin to check FLAKE8 requirements" optional = false -python-versions = "*" +python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pytest-flake8-1.1.1.tar.gz", hash = "sha256:ba4f243de3cb4c2486ed9e70752c80dd4b636f7ccb27d4eba763c35ed0cd316e"}, - {file = "pytest_flake8-1.1.1-py2.py3-none-any.whl", hash = "sha256:e0661a786f8cbf976c185f706fdaf5d6df0b1667c3bcff8e823ba263618627e7"}, + {file = "pytest_flake8-1.3.0-py3-none-any.whl", hash = "sha256:de10517c59fce25c0a7abb2a2b2a9d0b0ceb59ff0add7fa8e654d613bb25e218"}, + {file = "pytest_flake8-1.3.0.tar.gz", hash = "sha256:88fb35562ce32d915c6ba41ef0d5e1cfcdd8ff884a32b7d46aa99fc77a3d1fe6"}, ] [package.dependencies] flake8 = ">=4.0" pytest = ">=7.0" +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["pytest (>=6,!=8.1.*)"] +type = ["pytest-mypy"] + [[package]] name = "pyyaml" version = "6.0.2" @@ -1879,4 +1887,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "896344b6fe0a1a347ea37b85090feb34da7fb80bcca154ea69a3ec43ea2590bf" +content-hash = "d7b2a01074c4c5e13cc513ed0f67708d863ed181f6d1bb053cc60c6b45f5f78a" diff --git a/pyproject.toml b/pyproject.toml index 769c4ef..14b2540 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,7 +65,7 @@ docs = ["sphinx", "sphinx-immaterial"] [tool.poetry.dev-dependencies] pre-commit = "*" pytest = "^8.2.2" -pytest-flake8 = "=1.1.1" +pytest-flake8 = "=1.3.0" pytest-cov = "^6.1.1" tox = "*" mypy = "^1.10" From 19717d7fb198f934d78445a7bcaa6b5ade5b3809 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 15:20:16 +0000 Subject: [PATCH 320/371] Bump isort from 5.13.2 to 6.0.1 Bumps [isort](https://github.com/PyCQA/isort) from 5.13.2 to 6.0.1. - [Release notes](https://github.com/PyCQA/isort/releases) - [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md) - [Commits](https://github.com/PyCQA/isort/compare/5.13.2...6.0.1) --- updated-dependencies: - dependency-name: isort dependency-version: 6.0.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 13 +++++++------ pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3aac83e..f2d16f2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -613,18 +613,19 @@ files = [ [[package]] name = "isort" -version = "5.13.2" +version = "6.0.1" description = "A Python utility / library to sort Python imports." optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.9.0" groups = ["dev"] files = [ - {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, - {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, + {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"}, + {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"}, ] [package.extras] -colors = ["colorama (>=0.4.6)"] +colors = ["colorama"] +plugins = ["setuptools"] [[package]] name = "jinja2" @@ -1887,4 +1888,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "d7b2a01074c4c5e13cc513ed0f67708d863ed181f6d1bb053cc60c6b45f5f78a" +content-hash = "e183a111c98b70cd7056c9754d297d3e605d57b72743e45e57f4a4be1b9c8634" diff --git a/pyproject.toml b/pyproject.toml index 14b2540..676c25d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ pytest-flake8 = "=1.3.0" pytest-cov = "^6.1.1" tox = "*" mypy = "^1.10" -isort = "^5.13.2" +isort = "^6.0.1" black = "^24.8.0" flynt = "^1.0" deptry = "^0.23.0" From 29bdba085578bc5717bc01ea0dd1ea50000052a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 15:26:05 +0000 Subject: [PATCH 321/371] Bump black from 24.10.0 to 25.1.0 Bumps [black](https://github.com/psf/black) from 24.10.0 to 25.1.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/24.10.0...25.1.0) --- updated-dependencies: - dependency-name: black dependency-version: 25.1.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 48 ++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/poetry.lock b/poetry.lock index f2d16f2..59fe3c2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -85,34 +85,34 @@ dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)" [[package]] name = "black" -version = "24.10.0" +version = "25.1.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812"}, - {file = "black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea"}, - {file = "black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f"}, - {file = "black-24.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e"}, - {file = "black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad"}, - {file = "black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50"}, - {file = "black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392"}, - {file = "black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175"}, - {file = "black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3"}, - {file = "black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65"}, - {file = "black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f"}, - {file = "black-24.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8"}, - {file = "black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981"}, - {file = "black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b"}, - {file = "black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2"}, - {file = "black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b"}, - {file = "black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd"}, - {file = "black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f"}, - {file = "black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800"}, - {file = "black-24.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7"}, - {file = "black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d"}, - {file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"}, + {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"}, + {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"}, + {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"}, + {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"}, + {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"}, + {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"}, + {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"}, + {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"}, + {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"}, + {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"}, + {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"}, + {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"}, + {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"}, + {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"}, + {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"}, + {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"}, + {file = "black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0"}, + {file = "black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f"}, + {file = "black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e"}, + {file = "black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355"}, + {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"}, + {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"}, ] [package.dependencies] @@ -1888,4 +1888,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "e183a111c98b70cd7056c9754d297d3e605d57b72743e45e57f4a4be1b9c8634" +content-hash = "a2ee217769b1d5cb2f51e1bd46836dc174cbebea5d710eeb3c09198c91f7267f" diff --git a/pyproject.toml b/pyproject.toml index 676c25d..ceb9605 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ pytest-cov = "^6.1.1" tox = "*" mypy = "^1.10" isort = "^6.0.1" -black = "^24.8.0" +black = "^25.1.0" flynt = "^1.0" deptry = "^0.23.0" flake8 = "^5.0.4" From 2160a143d4091738a949d3182272027181cd11eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 15:35:36 +0000 Subject: [PATCH 322/371] Bump sphinx-immaterial from 0.11.14 to 0.12.5 Bumps [sphinx-immaterial](https://github.com/jbms/sphinx-immaterial) from 0.11.14 to 0.12.5. - [Release notes](https://github.com/jbms/sphinx-immaterial/releases) - [Commits](https://github.com/jbms/sphinx-immaterial/compare/v0.11.14...v0.12.5) --- updated-dependencies: - dependency-name: sphinx-immaterial dependency-version: 0.12.5 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 11 ++++++----- pyproject.toml | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 59fe3c2..5903926 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1597,14 +1597,14 @@ test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools [[package]] name = "sphinx-immaterial" -version = "0.11.14" +version = "0.12.5" description = "Adaptation of mkdocs-material theme for the Sphinx documentation system" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["docs"] files = [ - {file = "sphinx_immaterial-0.11.14-py3-none-any.whl", hash = "sha256:dd1a30614c8ecaa931155189e7d54f211232e31cf3e5c6d28ba9f04a4817f0a3"}, - {file = "sphinx_immaterial-0.11.14.tar.gz", hash = "sha256:e1e8ba93c78a3e007743fede01a3be43f5ae97c5cc19b8e2a4d2aa058abead61"}, + {file = "sphinx_immaterial-0.12.5-py3-none-any.whl", hash = "sha256:4173b22ad343fd9c75b51baf305851d89b98b94603c474b428e30e8c8476673b"}, + {file = "sphinx_immaterial-0.12.5.tar.gz", hash = "sha256:a7c0c4be3dcb4960eb7b299dfee07cdf8a02bf56821f5d0d62e5d31b7b7b5ec5"}, ] [package.dependencies] @@ -1617,6 +1617,7 @@ sphinx = ">=4.5" typing-extensions = "*" [package.extras] +black = ["black"] clang-format = ["clang-format"] cpp = ["libclang"] json = ["pyyaml"] @@ -1888,4 +1889,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "a2ee217769b1d5cb2f51e1bd46836dc174cbebea5d710eeb3c09198c91f7267f" +content-hash = "27d9ece6cbd06df707419ed7b67c143176f9c3ff3124347924a63d6ac8fe4602" diff --git a/pyproject.toml b/pyproject.toml index ceb9605..ec02457 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,7 +82,7 @@ openapi-spec-validator = "openapi_spec_validator.__main__:main" [tool.poetry.group.docs.dependencies] sphinx = ">=5.3,<8.0" -sphinx-immaterial = "^0.11.0" +sphinx-immaterial = ">=0.11,<0.13" [tool.pytest.ini_options] addopts = """ From 0ca6aedf15e510aa327c869b16e9c8ba98f3d653 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 18:28:07 +0100 Subject: [PATCH 323/371] Switch to tbump --- .bumpversion.cfg | 17 -------- poetry.lock | 111 +++++++++++++++++++++++++++++++++++++++++------ pyproject.toml | 45 +++++++++++++++---- 3 files changed, 134 insertions(+), 39 deletions(-) delete mode 100644 .bumpversion.cfg diff --git a/.bumpversion.cfg b/.bumpversion.cfg deleted file mode 100644 index 8b6006c..0000000 --- a/.bumpversion.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[bumpversion] -current_version = 0.7.2 -commit = True -tag = True -parse = (?P\d+)\.(?P\d+)\.(?P\d+) -serialize = - {major}.{minor}.{patch} -tag_name = {new_version} -message = Version {new_version} - -[bumpversion:file:openapi_spec_validator/__init__.py] - -[bumpversion:file:Dockerfile] - -[bumpversion:file:pyproject.toml] -search = version = "{current_version}" -replace = version = "{new_version}" diff --git a/poetry.lock b/poetry.lock index 5903926..a9fcd89 100644 --- a/poetry.lock +++ b/poetry.lock @@ -130,18 +130,6 @@ d = ["aiohttp (>=3.10)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] -[[package]] -name = "bump2version" -version = "1.0.1" -description = "Version-bump your software with a single command!" -optional = false -python-versions = ">=3.5" -groups = ["dev"] -files = [ - {file = "bump2version-1.0.1-py2.py3-none-any.whl", hash = "sha256:37f927ea17cde7ae2d7baf832f8e80ce3777624554a653006c9144f8017fe410"}, - {file = "bump2version-1.0.1.tar.gz", hash = "sha256:762cb2bfad61f4ec8e2bdf452c7c267416f8c70dd9ecb1653fd0bbb01fa936e6"}, -] - [[package]] name = "cachetools" version = "6.0.0" @@ -292,6 +280,23 @@ files = [ {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, ] +[[package]] +name = "cli-ui" +version = "0.19.0" +description = "Build Nice User Interfaces In The Terminal" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["dev"] +files = [ + {file = "cli_ui-0.19.0-py3-none-any.whl", hash = "sha256:1cf1b93328f7377730db29507e10bcb29ccc1427ceef45714b522d1f2055e7cd"}, + {file = "cli_ui-0.19.0.tar.gz", hash = "sha256:59cdab0c6a2a6703c61b31cb75a1943076888907f015fffe15c5a8eb41a933aa"}, +] + +[package.dependencies] +colorama = ">=0.4.1,<0.5.0" +tabulate = ">=0.9.0,<0.10.0" +unidecode = ">=1.3.6,<2.0.0" + [[package]] name = "click" version = "8.1.8" @@ -448,6 +453,17 @@ files = [ {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] +[[package]] +name = "docopt" +version = "0.6.2" +description = "Pythonic argument parser, that will make you smile" +optional = false +python-versions = "*" +groups = ["dev"] +files = [ + {file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"}, +] + [[package]] name = "docutils" version = "0.21.2" @@ -1534,6 +1550,18 @@ files = [ {file = "rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3"}, ] +[[package]] +name = "schema" +version = "0.7.7" +description = "Simple data validation library" +optional = false +python-versions = "*" +groups = ["dev"] +files = [ + {file = "schema-0.7.7-py2.py3-none-any.whl", hash = "sha256:5d976a5b50f36e74e2157b47097b60002bd4d42e65425fcc9c9befadb4255dde"}, + {file = "schema-0.7.7.tar.gz", hash = "sha256:7da553abd2958a19dc2547c388cde53398b39196175a9be59ea1caf5ab0a1807"}, +] + [[package]] name = "six" version = "1.17.0" @@ -1724,6 +1752,39 @@ lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] +[[package]] +name = "tabulate" +version = "0.9.0" +description = "Pretty-print tabular data" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, + {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, +] + +[package.extras] +widechars = ["wcwidth"] + +[[package]] +name = "tbump" +version = "6.11.0" +description = "Bump software releases" +optional = false +python-versions = ">=3.7,<4.0" +groups = ["dev"] +files = [ + {file = "tbump-6.11.0-py3-none-any.whl", hash = "sha256:6b181fe6f3ae84ce0b9af8cc2009a8bca41ded34e73f623a7413b9684f1b4526"}, + {file = "tbump-6.11.0.tar.gz", hash = "sha256:385e710eedf0a8a6ff959cf1e9f3cfd17c873617132fc0ec5f629af0c355c870"}, +] + +[package.dependencies] +cli-ui = ">=0.10.3" +docopt = ">=0.6.2,<0.7.0" +schema = ">=0.7.1,<0.8.0" +tomlkit = ">=0.11,<0.12" + [[package]] name = "tomli" version = "2.2.1" @@ -1767,6 +1828,18 @@ files = [ ] markers = {dev = "python_full_version <= \"3.11.0a6\"", docs = "python_version < \"3.11\""} +[[package]] +name = "tomlkit" +version = "0.11.8" +description = "Style preserving TOML library" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "tomlkit-0.11.8-py3-none-any.whl", hash = "sha256:8c726c4c202bdb148667835f68d68780b9a003a9ec34167b6c673b38eff2a171"}, + {file = "tomlkit-0.11.8.tar.gz", hash = "sha256:9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3"}, +] + [[package]] name = "tox" version = "4.26.0" @@ -1823,6 +1896,18 @@ files = [ [package.dependencies] typing-extensions = ">=4.12.0" +[[package]] +name = "unidecode" +version = "1.4.0" +description = "ASCII transliterations of Unicode text" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "Unidecode-1.4.0-py3-none-any.whl", hash = "sha256:c3c7606c27503ad8d501270406e345ddb480a7b5f38827eafe4fa82a137f0021"}, + {file = "Unidecode-1.4.0.tar.gz", hash = "sha256:ce35985008338b676573023acc382d62c264f307c8f7963733405add37ea2b23"}, +] + [[package]] name = "urllib3" version = "2.4.0" @@ -1889,4 +1974,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "27d9ece6cbd06df707419ed7b67c143176f9c3ff3124347924a63d6ac8fe4602" +content-hash = "cc97a2a2a1dabc2dd6aff33bfd9842bffbb3c0ac85434979d809fb2c4c63c5f4" diff --git a/pyproject.toml b/pyproject.toml index ec02457..62b20de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,7 +62,15 @@ lazy-object-proxy = "^1.7.1" [tool.poetry.extras] docs = ["sphinx", "sphinx-immaterial"] -[tool.poetry.dev-dependencies] +[tool.poetry.scripts] +openapi-spec-validator = "openapi_spec_validator.__main__:main" + +[tool.poetry.group.docs.dependencies] +sphinx = ">=5.3,<8.0" +sphinx-immaterial = ">=0.11,<0.13" + +[tool.poetry.group.dev.dependencies] +tbump = "^6.11.0" pre-commit = "*" pytest = "^8.2.2" pytest-flake8 = "=1.3.0" @@ -75,14 +83,6 @@ flynt = "^1.0" deptry = "^0.23.0" flake8 = "^5.0.4" pyflakes = "^2.5.0" -bump2version = "^1.0.1" - -[tool.poetry.scripts] -openapi-spec-validator = "openapi_spec_validator.__main__:main" - -[tool.poetry.group.docs.dependencies] -sphinx = ">=5.3,<8.0" -sphinx-immaterial = ">=0.11,<0.13" [tool.pytest.ini_options] addopts = """ @@ -105,3 +105,30 @@ line-length = 79 profile = "black" line_length = 79 force_single_line = true + +[tool.tbump] + +[tool.tbump.git] +message_template = "Version {new_version}" +tag_template = "{new_version}" + +[tool.tbump.version] +current = "0.7.2" +regex = ''' + (?P\d+) + \. + (?P\d+) + \. + (?P\d+) + (?P[a-z]+\d+)? +''' + +[[tool.tbump.file]] +src = "openapi_spec_validator/__init__.py" + +[[tool.tbump.file]] +src = "Dockerfile" + +[[tool.tbump.file]] +src = "pyproject.toml" +search = 'version = "{current_version}"' From f88020fd8bac12b4786d86a7ac2544c0c0b71952 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 18:36:38 +0100 Subject: [PATCH 324/371] Add hook version to tbump --- README.rst | 2 +- docs/hook.rst | 2 +- docs/index.rst | 2 +- pyproject.toml | 9 +++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index f765651..f8f66de 100644 --- a/README.rst +++ b/README.rst @@ -87,7 +87,7 @@ pre-commit hook repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.7.1 # The version to use or 'master' for latest + rev: 0.7.2 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/docs/hook.rst b/docs/hook.rst index 3be1251..0c1fdff 100644 --- a/docs/hook.rst +++ b/docs/hook.rst @@ -16,7 +16,7 @@ A full .pre-commit-config.yaml example you can use in your repository: repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.7.1 # The version to use or 'master' for latest + rev: 0.7.2 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/docs/index.rst b/docs/index.rst index f203f08..1031842 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -77,7 +77,7 @@ Usage repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.7.1 # The version to use or 'master' for latest + rev: 0.7.2 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/pyproject.toml b/pyproject.toml index 62b20de..d5d3b6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -123,12 +123,21 @@ regex = ''' (?P[a-z]+\d+)? ''' +[[tool.tbump.file]] +src = "docs/index.rst" + +[[tool.tbump.file]] +src = "docs/hook.rst" + [[tool.tbump.file]] src = "openapi_spec_validator/__init__.py" [[tool.tbump.file]] src = "Dockerfile" +[[tool.tbump.file]] +src = "README.rst" + [[tool.tbump.file]] src = "pyproject.toml" search = 'version = "{current_version}"' From 400d4552f0cd2af3bf16e4ad49bd18a34d55fd54 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 18:45:55 +0100 Subject: [PATCH 325/371] Jsonschema-path upgrade --- openapi_spec_validator/readers.py | 8 +- openapi_spec_validator/schemas/utils.py | 8 +- openapi_spec_validator/validation/keywords.py | 58 ++++++++------ .../validation/protocols.py | 11 ++- openapi_spec_validator/validation/proxies.py | 8 +- .../validation/validators.py | 2 +- poetry.lock | 80 +++++++++++++++---- pyproject.toml | 2 +- 8 files changed, 116 insertions(+), 61 deletions(-) diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index e56944a..4af9270 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -1,20 +1,18 @@ import sys -from collections.abc import Hashable from os import path from pathlib import Path -from typing import Any -from typing import Mapping from typing import Tuple from jsonschema_path.handlers import all_urls_handler from jsonschema_path.handlers import file_handler +from jsonschema_path.typing import Schema -def read_from_stdin(filename: str) -> Tuple[Mapping[Hashable, Any], str]: +def read_from_stdin(filename: str) -> Tuple[Schema, str]: return file_handler(sys.stdin), "" # type: ignore -def read_from_filename(filename: str) -> Tuple[Mapping[Hashable, Any], str]: +def read_from_filename(filename: str) -> Tuple[Schema, str]: if not path.isfile(filename): raise OSError(f"No such file: {filename}") diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index ca437e6..7b2fd92 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -1,16 +1,14 @@ """OpenAIP spec validator schemas utils module.""" -from collections.abc import Hashable from importlib.resources import as_file from importlib.resources import files from os import path -from typing import Any -from typing import Mapping from typing import Tuple from jsonschema_path.readers import FilePathReader +from jsonschema_path.typing import Schema -def get_schema(version: str) -> Tuple[Mapping[Hashable, Any], str]: +def get_schema(version: str) -> Tuple[Schema, str]: schema_path = f"resources/schemas/v{version}/schema.json" ref = files("openapi_spec_validator") / schema_path with as_file(ref) as resource_path: @@ -18,6 +16,6 @@ def get_schema(version: str) -> Tuple[Mapping[Hashable, Any], str]: return FilePathReader(schema_path_full).read() -def get_schema_content(version: str) -> Mapping[Hashable, Any]: +def get_schema_content(version: str) -> Schema: content, _ = get_schema(version) return content diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index 869c9fd..877a3fe 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -1,6 +1,7 @@ import string from typing import TYPE_CHECKING from typing import Any +from typing import Sequence from typing import Iterator from typing import List from typing import Optional @@ -78,7 +79,8 @@ def _collect_properties(self, schema: SchemaPath) -> set[str]: props: set[str] = set() if "properties" in schema: - props.update((schema / "properties").keys()) + schema_props = (schema / "properties").keys() + props.update(cast(Sequence[str], schema_props)) for kw in ("allOf", "anyOf", "oneOf"): if kw in schema: @@ -96,11 +98,12 @@ def _collect_properties(self, schema: SchemaPath) -> set[str]: def __call__( self, schema: SchemaPath, require_properties: bool = True ) -> Iterator[ValidationError]: - if not hasattr(schema.content(), "__getitem__"): + schema_value = schema.read_value() + if not hasattr(schema_value, "__getitem__"): return assert self.schema_ids_registry is not None - schema_id = id(schema.content()) + schema_id = id(schema_value) if schema_id in self.schema_ids_registry: return self.schema_ids_registry.append(schema_id) @@ -151,8 +154,8 @@ def __call__( require_properties=False, ) - required = schema.getkey("required", []) - properties = schema.get("properties", {}).keys() + required = "required" in schema and (schema / "required").read_value() or [] + properties = "properties" in schema and (schema / "properties").keys() or [] if "allOf" in schema: extra_properties = list( set(required) - set(properties) - set(nested_properties) @@ -166,10 +169,12 @@ def __call__( ) if "default" in schema: - default = schema["default"] - nullable = schema.get("nullable", False) - if default is not None or nullable is not True: - yield from self.default_validator(schema, default) + default_value = (schema / "default").read_value() + nullable_value = False + if "nullable" in schema: + nullable_value = (schema / "nullable").read_value() + if default_value is not None or nullable_value is not True: + yield from self.default_validator(schema, default_value) class SchemasValidator(KeywordValidator): @@ -203,9 +208,9 @@ def __call__(self, parameter: SchemaPath) -> Iterator[ValidationError]: if "default" in parameter: # only possible in swagger 2.0 - default = parameter.getkey("default") - if default is not None: - yield from self.default_validator(parameter, default) + if "default" in parameter: + default_value = (parameter / "default").read_value() + yield from self.default_validator(parameter, default_value) class ParametersValidator(KeywordValidator): @@ -246,6 +251,7 @@ def media_type_validator(self) -> MediaTypeValidator: def __call__(self, content: SchemaPath) -> Iterator[ValidationError]: for mimetype, media_type in content.items(): + assert isinstance(mimetype, str) yield from self.media_type_validator(mimetype, media_type) @@ -291,6 +297,7 @@ def response_validator(self) -> ResponseValidator: def __call__(self, responses: SchemaPath) -> Iterator[ValidationError]: for response_code, response in responses.items(): + assert isinstance(response_code, str) yield from self.response_validator(response_code, response) @@ -317,15 +324,17 @@ def __call__( ) -> Iterator[ValidationError]: assert self.operation_ids_registry is not None - operation_id = operation.getkey("operationId") - if ( - operation_id is not None - and operation_id in self.operation_ids_registry - ): - yield DuplicateOperationIDError( - f"Operation ID '{operation_id}' for '{name}' in '{url}' is not unique" - ) - self.operation_ids_registry.append(operation_id) + if "operationId" in operation: + operation_id_value = (operation / "operationId").read_value() + if ( + operation_id_value is not None + and operation_id_value in self.operation_ids_registry + ): + yield DuplicateOperationIDError( + f"Operation ID '{operation_id_value}' for " + f"'{name}' in '{url}' is not unique" + ) + self.operation_ids_registry.append(operation_id_value) if "responses" in operation: responses = operation / "responses" @@ -392,6 +401,7 @@ def __call__( yield from self.parameters_validator(parameters) for field_name, operation in path_item.items(): + assert isinstance(field_name, str) if field_name not in self.OPERATIONS: continue @@ -407,6 +417,7 @@ def path_validator(self) -> PathValidator: def __call__(self, paths: SchemaPath) -> Iterator[ValidationError]: for url, path_item in paths.items(): + assert isinstance(url, str) yield from self.path_validator(url, path_item) @@ -416,8 +427,9 @@ def schemas_validator(self) -> SchemasValidator: return cast(SchemasValidator, self.registry["schemas"]) def __call__(self, components: SchemaPath) -> Iterator[ValidationError]: - schemas = components.get("schemas", {}) - yield from self.schemas_validator(schemas) + if "schemas" in components: + schemas = components / "schemas" + yield from self.schemas_validator(schemas) class RootValidator(KeywordValidator): diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py index f6aa41a..3e7403c 100644 --- a/openapi_spec_validator/validation/protocols.py +++ b/openapi_spec_validator/validation/protocols.py @@ -1,22 +1,21 @@ -from typing import Any -from typing import Hashable from typing import Iterator -from typing import Mapping from typing import Optional from typing import Protocol from typing import runtime_checkable +from jsonschema_path.typing import Schema + from openapi_spec_validator.validation.exceptions import OpenAPIValidationError @runtime_checkable class SupportsValidation(Protocol): - def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: + def is_valid(self, instance: Schema) -> bool: ... def iter_errors( self, - instance: Mapping[Hashable, Any], + instance: Schema, base_uri: str = "", spec_url: Optional[str] = None, ) -> Iterator[OpenAPIValidationError]: @@ -24,7 +23,7 @@ def iter_errors( def validate( self, - instance: Mapping[Hashable, Any], + instance: Schema, base_uri: str = "", spec_url: Optional[str] = None, ) -> None: diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 8651dfa..964266d 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -62,7 +62,7 @@ class DetectValidatorProxy: def __init__(self, choices: Mapping[Tuple[str, str], SpecValidatorProxy]): self.choices = choices - def detect(self, instance: Mapping[Hashable, Any]) -> SpecValidatorProxy: + def detect(self, instance: Schema) -> SpecValidatorProxy: for (key, value), validator in self.choices.items(): if key in instance and instance[key].startswith(value): return validator @@ -70,7 +70,7 @@ def detect(self, instance: Mapping[Hashable, Any]) -> SpecValidatorProxy: def validate( self, - instance: Mapping[Hashable, Any], + instance: Schema, base_uri: str = "", spec_url: Optional[str] = None, ) -> None: @@ -80,14 +80,14 @@ def validate( ): raise err - def is_valid(self, instance: Mapping[Hashable, Any]) -> bool: + def is_valid(self, instance: Schema) -> bool: validator = self.detect(instance) error = next(validator.iter_errors(instance), None) return error is None def iter_errors( self, - instance: Mapping[Hashable, Any], + instance: Schema, base_uri: str = "", spec_url: Optional[str] = None, ) -> Iterator[OpenAPIValidationError]: diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index f4d889d..397f022 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -53,7 +53,7 @@ def __init__( if isinstance(schema, SchemaPath): self.schema_path = schema - self.schema = schema.contents() + self.schema = schema.read_value() else: self.schema = schema self.schema_path = SchemaPath.from_dict( diff --git a/poetry.lock b/poetry.lock index a9fcd89..3fa1795 100644 --- a/poetry.lock +++ b/poetry.lock @@ -148,7 +148,7 @@ version = "2025.4.26" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" -groups = ["main", "docs"] +groups = ["docs"] files = [ {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, @@ -184,7 +184,7 @@ version = "3.4.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" -groups = ["main", "docs"] +groups = ["docs"] files = [ {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, @@ -569,7 +569,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" -groups = ["main", "docs"] +groups = ["docs"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -685,21 +685,24 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-path" -version = "0.3.4" +version = "0.4.0b1" description = "JSONSchema Spec with object-oriented paths" optional = false -python-versions = "<4.0.0,>=3.8.0" +python-versions = "<4.0.0,>=3.9.0" groups = ["main"] files = [ - {file = "jsonschema_path-0.3.4-py3-none-any.whl", hash = "sha256:f502191fdc2b22050f9a81c9237be9d27145b9001c55842bece5e94e382e52f8"}, - {file = "jsonschema_path-0.3.4.tar.gz", hash = "sha256:8365356039f16cc65fddffafda5f58766e34bebab7d6d105616ab52bc4297001"}, + {file = "jsonschema_path-0.4.0b1-py3-none-any.whl", hash = "sha256:f0cd42238c1445cecac3b2796fa24dcc62b8426623d1cb4d8d755f3715abf3ba"}, + {file = "jsonschema_path-0.4.0b1.tar.gz", hash = "sha256:4678dcb27e5fbc58b39baf7ca8c36a6a7de3bcafacaaafc1b8a1d54038ce8d8a"}, ] [package.dependencies] -pathable = ">=0.4.1,<0.5.0" +pathable = ">=0.5.0b2,<0.6.0" +pyrsistent = ">=0.20.0,<0.21.0" PyYAML = ">=5.1" referencing = "<0.37.0" -requests = ">=2.31.0,<3.0.0" + +[package.extras] +requests = ["requests (>=2.31.0,<3.0.0)"] [[package]] name = "jsonschema-specifications" @@ -933,16 +936,19 @@ files = [ [[package]] name = "pathable" -version = "0.4.4" +version = "0.5.0b2" description = "Object-oriented paths" optional = false -python-versions = "<4.0.0,>=3.7.0" +python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "pathable-0.4.4-py3-none-any.whl", hash = "sha256:5ae9e94793b6ef5a4cbe0a7ce9dbbefc1eec38df253763fd0aeeacf2762dbbc2"}, - {file = "pathable-0.4.4.tar.gz", hash = "sha256:6905a3cd17804edfac7875b5f6c9142a218c7caef78693c2dbbbfbac186d88b2"}, + {file = "pathable-0.5.0b2-py3-none-any.whl", hash = "sha256:4c78bc5dae0c64a6191b955b7975bab58f0e298e197f591d4f0172886824a52b"}, + {file = "pathable-0.5.0b2.tar.gz", hash = "sha256:0005483148dc1991ab32e4cb4cde7e2b8f376f081a1639631e424db0792860e9"}, ] +[package.dependencies] +pyrsistent = ">=0.20.0,<0.21.0" + [[package]] name = "pathspec" version = "0.12.1" @@ -1224,6 +1230,48 @@ tomli = {version = ">=2.2.1", markers = "python_version < \"3.11\""} docs = ["furo (>=2024.8.6)", "sphinx-autodoc-typehints (>=3.2)"] testing = ["covdefaults (>=2.3)", "pytest (>=8.3.5)", "pytest-cov (>=6.1.1)", "pytest-mock (>=3.14)", "setuptools (>=80.3.1)"] +[[package]] +name = "pyrsistent" +version = "0.20.0" +description = "Persistent/Functional/Immutable data structures" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "pyrsistent-0.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c3aba3e01235221e5b229a6c05f585f344734bd1ad42a8ac51493d74722bbce"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1beb78af5423b879edaf23c5591ff292cf7c33979734c99aa66d5914ead880f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cc459636983764e692b9eba7144cdd54fdec23ccdb1e8ba392a63666c60c34"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5ac696f02b3fc01a710427585c855f65cd9c640e14f52abe52020722bb4906b"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win32.whl", hash = "sha256:0724c506cd8b63c69c7f883cc233aac948c1ea946ea95996ad8b1380c25e1d3f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:8441cf9616d642c475684d6cf2520dd24812e996ba9af15e606df5f6fd9d04a7"}, + {file = "pyrsistent-0.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0f3b1bcaa1f0629c978b355a7c37acd58907390149b7311b5db1b37648eb6958"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdd7ef1ea7a491ae70d826b6cc64868de09a1d5ff9ef8d574250d0940e275b8"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cae40a9e3ce178415040a0383f00e8d68b569e97f31928a3a8ad37e3fde6df6a"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6288b3fa6622ad8a91e6eb759cfc48ff3089e7c17fb1d4c59a919769314af224"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win32.whl", hash = "sha256:7d29c23bdf6e5438c755b941cef867ec2a4a172ceb9f50553b6ed70d50dfd656"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:59a89bccd615551391f3237e00006a26bcf98a4d18623a19909a2c48b8e986ee"}, + {file = "pyrsistent-0.20.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:09848306523a3aba463c4b49493a760e7a6ca52e4826aa100ee99d8d39b7ad1e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a14798c3005ec892bbada26485c2eea3b54109cb2533713e355c806891f63c5e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b14decb628fac50db5e02ee5a35a9c0772d20277824cfe845c8a8b717c15daa3"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e2c116cc804d9b09ce9814d17df5edf1df0c624aba3b43bc1ad90411487036d"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win32.whl", hash = "sha256:e78d0c7c1e99a4a45c99143900ea0546025e41bb59ebc10182e947cf1ece9174"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:4021a7f963d88ccd15b523787d18ed5e5269ce57aa4037146a2377ff607ae87d"}, + {file = "pyrsistent-0.20.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:79ed12ba79935adaac1664fd7e0e585a22caa539dfc9b7c7c6d5ebf91fb89054"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f920385a11207dc372a028b3f1e1038bb244b3ec38d448e6d8e43c6b3ba20e98"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f5c2d012671b7391803263419e31b5c7c21e7c95c8760d7fc35602353dee714"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef3992833fbd686ee783590639f4b8343a57f1f75de8633749d984dc0eb16c86"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win32.whl", hash = "sha256:881bbea27bbd32d37eb24dd320a5e745a2a5b092a17f6debc1349252fac85423"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:6d270ec9dd33cdb13f4d62c95c1a5a50e6b7cdd86302b494217137f760495b9d"}, + {file = "pyrsistent-0.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca52d1ceae015859d16aded12584c59eb3825f7b50c6cfd621d4231a6cc624ce"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b318ca24db0f0518630e8b6f3831e9cba78f099ed5c1d65ffe3e023003043ba0"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed2c3216a605dc9a6ea50c7e84c82906e3684c4e80d2908208f662a6cbf9022"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e14c95c16211d166f59c6611533d0dacce2e25de0f76e4c140fde250997b3ca"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win32.whl", hash = "sha256:f058a615031eea4ef94ead6456f5ec2026c19fb5bd6bfe86e9665c4158cf802f"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:58b8f6366e152092194ae68fefe18b9f0b4f89227dfd86a07770c3d86097aebf"}, + {file = "pyrsistent-0.20.0-py3-none-any.whl", hash = "sha256:c55acc4733aad6560a7f5f818466631f07efc001fd023f34a6c203f8b6df0f0b"}, + {file = "pyrsistent-0.20.0.tar.gz", hash = "sha256:4c48f78f62ab596c679086084d0dd13254ae4f3d6c72a83ffdf5ebdef8f265a4"}, +] + [[package]] name = "pytest" version = "8.4.0" @@ -1377,7 +1425,7 @@ version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" -groups = ["main", "docs"] +groups = ["docs"] files = [ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, @@ -1914,7 +1962,7 @@ version = "2.4.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" -groups = ["main", "docs"] +groups = ["docs"] files = [ {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, @@ -1974,4 +2022,4 @@ docs = [] [metadata] lock-version = "2.1" python-versions = "^3.9.0" -content-hash = "cc97a2a2a1dabc2dd6aff33bfd9842bffbb3c0ac85434979d809fb2c4c63c5f4" +content-hash = "ea67a83adf2a39d5b8904bf095e3ecafade4ad9a7aed80d4850edb108e9abe24" diff --git a/pyproject.toml b/pyproject.toml index d5d3b6e..ce03731 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,7 +56,7 @@ include = [ jsonschema = "^4.24.0" openapi-schema-validator = "^0.6.0" python = "^3.9.0" -jsonschema-path = "^0.3.1" +jsonschema-path = {version = "^0.4.0b1", allow-prereleases = true} lazy-object-proxy = "^1.7.1" [tool.poetry.extras] From 49109f703b0c48dae9714c4dcb67c099d3d36a86 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 7 Jun 2025 22:21:16 +0100 Subject: [PATCH 326/371] Version 0.8.0b1 --- Dockerfile | 2 +- README.rst | 2 +- docs/hook.rst | 2 +- docs/index.rst | 2 +- openapi_spec_validator/__init__.py | 2 +- pyproject.toml | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 792e767..ca87bc4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.7.2 +ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.8.0b1 FROM python:3.13.4-alpine as builder diff --git a/README.rst b/README.rst index f8f66de..2948cca 100644 --- a/README.rst +++ b/README.rst @@ -87,7 +87,7 @@ pre-commit hook repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.7.2 # The version to use or 'master' for latest + rev: 0.8.0b1 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/docs/hook.rst b/docs/hook.rst index 0c1fdff..5af2756 100644 --- a/docs/hook.rst +++ b/docs/hook.rst @@ -16,7 +16,7 @@ A full .pre-commit-config.yaml example you can use in your repository: repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.7.2 # The version to use or 'master' for latest + rev: 0.8.0b1 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/docs/index.rst b/docs/index.rst index 1031842..373cebc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -77,7 +77,7 @@ Usage repos: - repo: https://github.com/python-openapi/openapi-spec-validator - rev: 0.7.2 # The version to use or 'master' for latest + rev: 0.8.0b1 # The version to use or 'master' for latest hooks: - id: openapi-spec-validator diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 5491aab..62a25a2 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -14,7 +14,7 @@ __author__ = "Artur Maciag" __email__ = "maciag.artur@gmail.com" -__version__ = "0.7.2" +__version__ = "0.8.0b1" __url__ = "https://github.com/python-openapi/openapi-spec-validator" __license__ = "Apache License, Version 2.0" diff --git a/pyproject.toml b/pyproject.toml index ce03731..cd2bd32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ ignore_missing_imports = true [tool.poetry] name = "openapi-spec-validator" -version = "0.7.2" +version = "0.8.0b1" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" authors = ["Artur Maciag "] license = "Apache-2.0" @@ -113,7 +113,7 @@ message_template = "Version {new_version}" tag_template = "{new_version}" [tool.tbump.version] -current = "0.7.2" +current = "0.8.0b1" regex = ''' (?P\d+) \. From 08b5813d607a9a3ad199140094fe4e03e95aef20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Jun 2025 13:38:56 +0000 Subject: [PATCH 327/371] Bump python from 3.13.4-alpine to 3.13.5-alpine Bumps python from 3.13.4-alpine to 3.13.5-alpine. --- updated-dependencies: - dependency-name: python dependency-version: 3.13.5-alpine dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index ca87bc4..2d0df31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.8.0b1 -FROM python:3.13.4-alpine as builder +FROM python:3.13.5-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.13.4-alpine +FROM python:3.13.5-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From f8579fd00ea59c5866a1458edfc062fc76577d0f Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:14:38 -0500 Subject: [PATCH 328/371] Fix deprecated stage names This was fixed mechanically using the following command: ``` pre-commit migrate-config ``` --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 98d11c1..81cfa2e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,5 @@ --- -default_stages: [commit, push] +default_stages: [pre-commit, pre-push] default_language_version: # force all unspecified python hooks to run python3 python: python3 From 04b80b34dd52609a2bffec0dc71599beb902b54b Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:16:37 -0500 Subject: [PATCH 329/371] Update the existing pre-commit hook This was updated mechanically using the following command: ``` pre-commit autoupdate ``` --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 81cfa2e..a653fae 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: - id: check-hooks-apply - repo: https://github.com/asottile/pyupgrade - rev: v2.19.0 + rev: v3.20.0 hooks: - id: pyupgrade args: ["--py36-plus"] From c68d77ba7e6473ce73c271137a5ee50f36da6fde Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:17:29 -0500 Subject: [PATCH 330/371] Target Python 3.9+ syntax --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a653fae..0f4ae86 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: rev: v3.20.0 hooks: - id: pyupgrade - args: ["--py36-plus"] + args: ["--py39-plus"] - repo: local hooks: From 4b996e7b7c49d49c4d450c0773dabad7519fd32c Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:22:28 -0500 Subject: [PATCH 331/371] Run `pre-commit run pyupgrade -a` --- openapi_spec_validator/__main__.py | 2 +- openapi_spec_validator/readers.py | 4 ++-- openapi_spec_validator/schemas/utils.py | 2 +- openapi_spec_validator/shortcuts.py | 6 +++--- openapi_spec_validator/validation/caches.py | 6 +++--- openapi_spec_validator/validation/decorators.py | 4 ++-- openapi_spec_validator/validation/keywords.py | 11 +++++------ openapi_spec_validator/validation/protocols.py | 2 +- openapi_spec_validator/validation/proxies.py | 6 +++--- openapi_spec_validator/validation/registries.py | 4 ++-- openapi_spec_validator/validation/types.py | 2 +- openapi_spec_validator/validation/validators.py | 8 ++++---- openapi_spec_validator/versions/consts.py | 2 +- openapi_spec_validator/versions/finders.py | 2 +- 14 files changed, 30 insertions(+), 31 deletions(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index bc97714..d2df5fa 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -2,7 +2,7 @@ import sys from argparse import ArgumentParser from typing import Optional -from typing import Sequence +from collections.abc import Sequence from jsonschema.exceptions import ValidationError from jsonschema.exceptions import best_match diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index 4af9270..53a5932 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -8,11 +8,11 @@ from jsonschema_path.typing import Schema -def read_from_stdin(filename: str) -> Tuple[Schema, str]: +def read_from_stdin(filename: str) -> tuple[Schema, str]: return file_handler(sys.stdin), "" # type: ignore -def read_from_filename(filename: str) -> Tuple[Schema, str]: +def read_from_filename(filename: str) -> tuple[Schema, str]: if not path.isfile(filename): raise OSError(f"No such file: {filename}") diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index 7b2fd92..b5daffd 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -8,7 +8,7 @@ from jsonschema_path.typing import Schema -def get_schema(version: str) -> Tuple[Schema, str]: +def get_schema(version: str) -> tuple[Schema, str]: schema_path = f"resources/schemas/v{version}/schema.json" ref = files("openapi_spec_validator") / schema_path with as_file(ref) as resource_path: diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 70c2c8f..9cf8fef 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -1,6 +1,6 @@ """OpenAPI spec validator shortcuts module.""" import warnings -from typing import Mapping +from collections.abc import Mapping from typing import Optional from typing import Type @@ -50,7 +50,7 @@ def validate( def validate_url( spec_url: str, - cls: Optional[Type[SpecValidator]] = None, + cls: Optional[type[SpecValidator]] = None, ) -> None: spec = all_urls_handler(spec_url) return validate(spec, base_uri=spec_url, cls=cls) @@ -82,7 +82,7 @@ def validate_spec( def validate_spec_url( spec_url: str, validator: Optional[SupportsValidation] = None, - cls: Optional[Type[SpecValidator]] = None, + cls: Optional[type[SpecValidator]] = None, ) -> None: warnings.warn( "validate_spec_url shortcut is deprecated. Use validate_url instead.", diff --git a/openapi_spec_validator/validation/caches.py b/openapi_spec_validator/validation/caches.py index acc6b36..f78d86a 100644 --- a/openapi_spec_validator/validation/caches.py +++ b/openapi_spec_validator/validation/caches.py @@ -1,6 +1,6 @@ from typing import Generic -from typing import Iterable -from typing import Iterator +from collections.abc import Iterable +from collections.abc import Iterator from typing import List from typing import TypeVar @@ -14,7 +14,7 @@ class CachedIterable(Iterable[T], Generic[T]): It should not be iterated by his own. """ - cache: List[T] + cache: list[T] iter: Iterator[T] completed: bool diff --git a/openapi_spec_validator/validation/decorators.py b/openapi_spec_validator/validation/decorators.py index 191c035..552e211 100644 --- a/openapi_spec_validator/validation/decorators.py +++ b/openapi_spec_validator/validation/decorators.py @@ -3,8 +3,8 @@ from functools import wraps from typing import Any from typing import Callable -from typing import Iterable -from typing import Iterator +from collections.abc import Iterable +from collections.abc import Iterator from typing import TypeVar from jsonschema.exceptions import ValidationError diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index 877a3fe..e74c098 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -1,8 +1,8 @@ import string from typing import TYPE_CHECKING from typing import Any -from typing import Sequence -from typing import Iterator +from collections.abc import Sequence +from collections.abc import Iterator from typing import List from typing import Optional from typing import cast @@ -68,7 +68,7 @@ class SchemaValidator(KeywordValidator): def __init__(self, registry: "KeywordValidatorRegistry"): super().__init__(registry) - self.schema_ids_registry: Optional[List[int]] = [] + self.schema_ids_registry: Optional[list[int]] = [] @property def default_validator(self) -> ValueValidator: @@ -305,7 +305,7 @@ class OperationValidator(KeywordValidator): def __init__(self, registry: "KeywordValidatorRegistry"): super().__init__(registry) - self.operation_ids_registry: Optional[List[str]] = [] + self.operation_ids_registry: Optional[list[str]] = [] @property def responses_validator(self) -> ResponsesValidator: @@ -356,8 +356,7 @@ def __call__( for path in self._get_path_params_from_url(url): if path not in all_params: yield UnresolvableParameterError( - "Path parameter '{}' for '{}' operation in '{}' " - "was not resolved".format(path, name, url) + f"Path parameter '{path}' for '{name}' operation in '{url}' was not resolved" ) return diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py index 3e7403c..3170112 100644 --- a/openapi_spec_validator/validation/protocols.py +++ b/openapi_spec_validator/validation/protocols.py @@ -1,4 +1,4 @@ -from typing import Iterator +from collections.abc import Iterator from typing import Optional from typing import Protocol from typing import runtime_checkable diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 964266d..06217da 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -2,8 +2,8 @@ import warnings from collections.abc import Hashable from typing import Any -from typing import Iterator -from typing import Mapping +from collections.abc import Iterator +from collections.abc import Mapping from typing import Optional from typing import Tuple @@ -59,7 +59,7 @@ def iter_errors( class DetectValidatorProxy: - def __init__(self, choices: Mapping[Tuple[str, str], SpecValidatorProxy]): + def __init__(self, choices: Mapping[tuple[str, str], SpecValidatorProxy]): self.choices = choices def detect(self, instance: Schema) -> SpecValidatorProxy: diff --git a/openapi_spec_validator/validation/registries.py b/openapi_spec_validator/validation/registries.py index b9ddc5e..e174589 100644 --- a/openapi_spec_validator/validation/registries.py +++ b/openapi_spec_validator/validation/registries.py @@ -1,7 +1,7 @@ from __future__ import annotations from typing import DefaultDict -from typing import Mapping +from collections.abc import Mapping from typing import Type from openapi_spec_validator.validation.keywords import KeywordValidator @@ -9,7 +9,7 @@ class KeywordValidatorRegistry(DefaultDict[str, KeywordValidator]): def __init__( - self, keyword_validators: Mapping[str, Type[KeywordValidator]] + self, keyword_validators: Mapping[str, type[KeywordValidator]] ): super().__init__() self.keyword_validators = keyword_validators diff --git a/openapi_spec_validator/validation/types.py b/openapi_spec_validator/validation/types.py index 90d83ba..511617f 100644 --- a/openapi_spec_validator/validation/types.py +++ b/openapi_spec_validator/validation/types.py @@ -2,4 +2,4 @@ from openapi_spec_validator.validation.validators import SpecValidator -SpecValidatorType = Type[SpecValidator] +SpecValidatorType = type[SpecValidator] diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index 397f022..b96b852 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -2,9 +2,9 @@ import logging import warnings from functools import lru_cache -from typing import Iterator +from collections.abc import Iterator from typing import List -from typing import Mapping +from collections.abc import Mapping from typing import Optional from typing import Type from typing import cast @@ -31,10 +31,10 @@ class SpecValidator: resolver_handlers = default_handlers - keyword_validators: Mapping[str, Type[keywords.KeywordValidator]] = { + keyword_validators: Mapping[str, type[keywords.KeywordValidator]] = { "__root__": keywords.RootValidator, } - root_keywords: List[str] = [] + root_keywords: list[str] = [] schema_validator: Validator = NotImplemented def __init__( diff --git a/openapi_spec_validator/versions/consts.py b/openapi_spec_validator/versions/consts.py index 6b5ea7d..0f803c5 100644 --- a/openapi_spec_validator/versions/consts.py +++ b/openapi_spec_validator/versions/consts.py @@ -20,4 +20,4 @@ minor="1", ) -VERSIONS: List[SpecVersion] = [OPENAPIV2, OPENAPIV30, OPENAPIV31] +VERSIONS: list[SpecVersion] = [OPENAPIV2, OPENAPIV30, OPENAPIV31] diff --git a/openapi_spec_validator/versions/finders.py b/openapi_spec_validator/versions/finders.py index 803cabc..3a35202 100644 --- a/openapi_spec_validator/versions/finders.py +++ b/openapi_spec_validator/versions/finders.py @@ -10,7 +10,7 @@ class SpecVersionFinder: pattern = compile(r"(?P\d+)\.(?P\d+)(\..*)?") - def __init__(self, versions: List[SpecVersion]) -> None: + def __init__(self, versions: list[SpecVersion]) -> None: self.versions = versions def find(self, spec: Schema) -> SpecVersion: From b035ff50b178fb265494f69b44f3090f272aeb1d Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:23:42 -0500 Subject: [PATCH 332/371] Remove `flynt` as a local pre-commit hook `pyupgrade` upgrades `%` and `.format()` usage to f-strings. --- .pre-commit-config.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0f4ae86..3f9eaeb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,12 +17,6 @@ repos: - repo: local hooks: - - id: flynt - name: Convert to f-strings with flynt - entry: flynt - language: python - additional_dependencies: ['flynt==0.76'] - - id: black name: black entry: black From f790769aefaa87d9d4f6629d819f1c7fff08ab75 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:24:48 -0500 Subject: [PATCH 333/371] Migrate to a hosted `black` pre-commit hook --- .pre-commit-config.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3f9eaeb..0578864 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,15 +15,13 @@ repos: - id: pyupgrade args: ["--py39-plus"] - - repo: local + - repo: https://github.com/psf/black-pre-commit-mirror + rev: 25.1.0 hooks: - id: black - name: black - entry: black - language: system - require_serial: true - types: [python] + - repo: local + hooks: - id: isort name: isort entry: isort From 1551af14f20794acc408a8406662d15ef2317ff8 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:25:46 -0500 Subject: [PATCH 334/371] Run `pre-commit run black -a` --- openapi_spec_validator/__init__.py | 1 + openapi_spec_validator/schemas/__init__.py | 1 + openapi_spec_validator/schemas/utils.py | 1 + openapi_spec_validator/shortcuts.py | 1 + openapi_spec_validator/validation/decorators.py | 7 ++++--- openapi_spec_validator/validation/keywords.py | 13 +++++++++---- openapi_spec_validator/validation/protocols.py | 9 +++------ openapi_spec_validator/validation/proxies.py | 1 + openapi_spec_validator/validation/validators.py | 1 + 9 files changed, 22 insertions(+), 13 deletions(-) diff --git a/openapi_spec_validator/__init__.py b/openapi_spec_validator/__init__.py index 62a25a2..11869de 100644 --- a/openapi_spec_validator/__init__.py +++ b/openapi_spec_validator/__init__.py @@ -1,4 +1,5 @@ """OpenAPI spec validator module.""" + from openapi_spec_validator.shortcuts import validate from openapi_spec_validator.shortcuts import validate_spec from openapi_spec_validator.shortcuts import validate_spec_url diff --git a/openapi_spec_validator/schemas/__init__.py b/openapi_spec_validator/schemas/__init__.py index 8141788..e1147bc 100644 --- a/openapi_spec_validator/schemas/__init__.py +++ b/openapi_spec_validator/schemas/__init__.py @@ -1,4 +1,5 @@ """OpenAIP spec validator schemas module.""" + from functools import partial from jsonschema.validators import Draft4Validator diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index b5daffd..c70e73e 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -1,4 +1,5 @@ """OpenAIP spec validator schemas utils module.""" + from importlib.resources import as_file from importlib.resources import files from os import path diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 9cf8fef..4c085b3 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -1,4 +1,5 @@ """OpenAPI spec validator shortcuts module.""" + import warnings from collections.abc import Mapping from typing import Optional diff --git a/openapi_spec_validator/validation/decorators.py b/openapi_spec_validator/validation/decorators.py index 552e211..2a1b022 100644 --- a/openapi_spec_validator/validation/decorators.py +++ b/openapi_spec_validator/validation/decorators.py @@ -1,4 +1,5 @@ """OpenAPI spec validator validation decorators module.""" + import logging from functools import wraps from typing import Any @@ -19,7 +20,7 @@ def wraps_errors( - func: Callable[..., Any] + func: Callable[..., Any], ) -> Callable[..., Iterator[ValidationError]]: @wraps(func) def wrapper(*args: Any, **kwds: Any) -> Iterator[ValidationError]: @@ -35,7 +36,7 @@ def wrapper(*args: Any, **kwds: Any) -> Iterator[ValidationError]: def wraps_cached_iter( - func: Callable[[Args], Iterator[T]] + func: Callable[[Args], Iterator[T]], ) -> Callable[[Args], CachedIterable[T]]: @wraps(func) def wrapper(*args: Any, **kwargs: Any) -> CachedIterable[T]: @@ -46,7 +47,7 @@ def wrapper(*args: Any, **kwargs: Any) -> CachedIterable[T]: def unwraps_iter( - func: Callable[[Args], Iterable[T]] + func: Callable[[Args], Iterable[T]], ) -> Callable[[Args], Iterator[T]]: @wraps(func) def wrapper(*args: Any, **kwargs: Any) -> Iterator[T]: diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index e74c098..29d6391 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -113,8 +113,9 @@ def __call__( all_of = schema / "allOf" for inner_schema in all_of: yield from self(inner_schema, require_properties=False) - nested_properties += list(self._collect_properties(inner_schema)) - + nested_properties += list( + self._collect_properties(inner_schema) + ) if "anyOf" in schema: any_of = schema / "anyOf" @@ -154,8 +155,12 @@ def __call__( require_properties=False, ) - required = "required" in schema and (schema / "required").read_value() or [] - properties = "properties" in schema and (schema / "properties").keys() or [] + required = ( + "required" in schema and (schema / "required").read_value() or [] + ) + properties = ( + "properties" in schema and (schema / "properties").keys() or [] + ) if "allOf" in schema: extra_properties = list( set(required) - set(properties) - set(nested_properties) diff --git a/openapi_spec_validator/validation/protocols.py b/openapi_spec_validator/validation/protocols.py index 3170112..1dd8b00 100644 --- a/openapi_spec_validator/validation/protocols.py +++ b/openapi_spec_validator/validation/protocols.py @@ -10,21 +10,18 @@ @runtime_checkable class SupportsValidation(Protocol): - def is_valid(self, instance: Schema) -> bool: - ... + def is_valid(self, instance: Schema) -> bool: ... def iter_errors( self, instance: Schema, base_uri: str = "", spec_url: Optional[str] = None, - ) -> Iterator[OpenAPIValidationError]: - ... + ) -> Iterator[OpenAPIValidationError]: ... def validate( self, instance: Schema, base_uri: str = "", spec_url: Optional[str] = None, - ) -> None: - ... + ) -> None: ... diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 06217da..9590317 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -1,4 +1,5 @@ """OpenAPI spec validator validation proxies module.""" + import warnings from collections.abc import Hashable from typing import Any diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index b96b852..7ece41c 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -1,4 +1,5 @@ """OpenAPI spec validator validation validators module.""" + import logging import warnings from functools import lru_cache From 35f64545d4a7085016cd6874c2299d90921260cc Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:26:34 -0500 Subject: [PATCH 335/371] Migrate to a hosted `isort` pre-commit hook --- .pre-commit-config.yaml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0578864..88a3d8a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,16 +20,13 @@ repos: hooks: - id: black - - repo: local + - repo: https://github.com/pycqa/isort + rev: 6.0.1 hooks: - id: isort - name: isort - entry: isort - args: ['--filter-files'] - language: system - require_serial: true - types: [python] + - repo: local + hooks: - id: pyflakes name: pyflakes entry: pyflakes From 7b29bd16f8f481ce9885b9438feaa8ee5112d920 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:27:20 -0500 Subject: [PATCH 336/371] Run `pre-commit run isort -a` --- openapi_spec_validator/__main__.py | 2 +- openapi_spec_validator/validation/caches.py | 2 +- openapi_spec_validator/validation/decorators.py | 4 ++-- openapi_spec_validator/validation/keywords.py | 4 ++-- openapi_spec_validator/validation/proxies.py | 2 +- openapi_spec_validator/validation/registries.py | 2 +- openapi_spec_validator/validation/validators.py | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/openapi_spec_validator/__main__.py b/openapi_spec_validator/__main__.py index d2df5fa..aed7114 100644 --- a/openapi_spec_validator/__main__.py +++ b/openapi_spec_validator/__main__.py @@ -1,8 +1,8 @@ import logging import sys from argparse import ArgumentParser -from typing import Optional from collections.abc import Sequence +from typing import Optional from jsonschema.exceptions import ValidationError from jsonschema.exceptions import best_match diff --git a/openapi_spec_validator/validation/caches.py b/openapi_spec_validator/validation/caches.py index f78d86a..3436b9f 100644 --- a/openapi_spec_validator/validation/caches.py +++ b/openapi_spec_validator/validation/caches.py @@ -1,6 +1,6 @@ -from typing import Generic from collections.abc import Iterable from collections.abc import Iterator +from typing import Generic from typing import List from typing import TypeVar diff --git a/openapi_spec_validator/validation/decorators.py b/openapi_spec_validator/validation/decorators.py index 2a1b022..3fa4986 100644 --- a/openapi_spec_validator/validation/decorators.py +++ b/openapi_spec_validator/validation/decorators.py @@ -1,11 +1,11 @@ """OpenAPI spec validator validation decorators module.""" import logging +from collections.abc import Iterable +from collections.abc import Iterator from functools import wraps from typing import Any from typing import Callable -from collections.abc import Iterable -from collections.abc import Iterator from typing import TypeVar from jsonschema.exceptions import ValidationError diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index 29d6391..a8210cc 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -1,8 +1,8 @@ import string +from collections.abc import Iterator +from collections.abc import Sequence from typing import TYPE_CHECKING from typing import Any -from collections.abc import Sequence -from collections.abc import Iterator from typing import List from typing import Optional from typing import cast diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 9590317..22725a1 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -2,9 +2,9 @@ import warnings from collections.abc import Hashable -from typing import Any from collections.abc import Iterator from collections.abc import Mapping +from typing import Any from typing import Optional from typing import Tuple diff --git a/openapi_spec_validator/validation/registries.py b/openapi_spec_validator/validation/registries.py index e174589..70876e8 100644 --- a/openapi_spec_validator/validation/registries.py +++ b/openapi_spec_validator/validation/registries.py @@ -1,7 +1,7 @@ from __future__ import annotations -from typing import DefaultDict from collections.abc import Mapping +from typing import DefaultDict from typing import Type from openapi_spec_validator.validation.keywords import KeywordValidator diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index 7ece41c..1bfe1b2 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -2,10 +2,10 @@ import logging import warnings -from functools import lru_cache from collections.abc import Iterator -from typing import List from collections.abc import Mapping +from functools import lru_cache +from typing import List from typing import Optional from typing import Type from typing import cast From b600698afd5f5311920d457490c4b4c5d4bc1c8e Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:33:01 -0500 Subject: [PATCH 337/371] Migrate to a hosted `flake8` pre-commit hook --- .pre-commit-config.yaml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 88a3d8a..dcdbbaf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,11 +25,7 @@ repos: hooks: - id: isort - - repo: local + - repo: https://github.com/pycqa/flake8 + rev: 7.3.0 hooks: - - id: pyflakes - name: pyflakes - entry: pyflakes - language: system - require_serial: true - types: [python] + - id: flake8 From db761d1cfe902dc7ff87b0066c4d697b001e4a6d Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 15:39:02 -0500 Subject: [PATCH 338/371] Resolve issues reported by flake8 Additionally, add a configuration for flake8. --- openapi_spec_validator/readers.py | 1 - openapi_spec_validator/schemas/utils.py | 1 - openapi_spec_validator/shortcuts.py | 1 - openapi_spec_validator/validation/caches.py | 1 - openapi_spec_validator/validation/keywords.py | 1 - openapi_spec_validator/validation/proxies.py | 3 --- openapi_spec_validator/validation/registries.py | 1 - openapi_spec_validator/validation/types.py | 2 -- openapi_spec_validator/validation/validators.py | 2 -- openapi_spec_validator/versions/consts.py | 2 -- openapi_spec_validator/versions/finders.py | 1 - tests/integration/validation/test_exceptions.py | 1 - tests/integration/validation/test_validators.py | 8 ++++---- tox.ini | 4 ++++ 14 files changed, 8 insertions(+), 21 deletions(-) diff --git a/openapi_spec_validator/readers.py b/openapi_spec_validator/readers.py index 53a5932..ac0480a 100644 --- a/openapi_spec_validator/readers.py +++ b/openapi_spec_validator/readers.py @@ -1,7 +1,6 @@ import sys from os import path from pathlib import Path -from typing import Tuple from jsonschema_path.handlers import all_urls_handler from jsonschema_path.handlers import file_handler diff --git a/openapi_spec_validator/schemas/utils.py b/openapi_spec_validator/schemas/utils.py index c70e73e..34dfe0f 100644 --- a/openapi_spec_validator/schemas/utils.py +++ b/openapi_spec_validator/schemas/utils.py @@ -3,7 +3,6 @@ from importlib.resources import as_file from importlib.resources import files from os import path -from typing import Tuple from jsonschema_path.readers import FilePathReader from jsonschema_path.typing import Schema diff --git a/openapi_spec_validator/shortcuts.py b/openapi_spec_validator/shortcuts.py index 4c085b3..a1e2e57 100644 --- a/openapi_spec_validator/shortcuts.py +++ b/openapi_spec_validator/shortcuts.py @@ -3,7 +3,6 @@ import warnings from collections.abc import Mapping from typing import Optional -from typing import Type from jsonschema_path import SchemaPath from jsonschema_path.handlers import all_urls_handler diff --git a/openapi_spec_validator/validation/caches.py b/openapi_spec_validator/validation/caches.py index 3436b9f..5bbb5c6 100644 --- a/openapi_spec_validator/validation/caches.py +++ b/openapi_spec_validator/validation/caches.py @@ -1,7 +1,6 @@ from collections.abc import Iterable from collections.abc import Iterator from typing import Generic -from typing import List from typing import TypeVar T = TypeVar("T") diff --git a/openapi_spec_validator/validation/keywords.py b/openapi_spec_validator/validation/keywords.py index a8210cc..c752ff4 100644 --- a/openapi_spec_validator/validation/keywords.py +++ b/openapi_spec_validator/validation/keywords.py @@ -3,7 +3,6 @@ from collections.abc import Sequence from typing import TYPE_CHECKING from typing import Any -from typing import List from typing import Optional from typing import cast diff --git a/openapi_spec_validator/validation/proxies.py b/openapi_spec_validator/validation/proxies.py index 22725a1..81250be 100644 --- a/openapi_spec_validator/validation/proxies.py +++ b/openapi_spec_validator/validation/proxies.py @@ -1,12 +1,9 @@ """OpenAPI spec validator validation proxies module.""" import warnings -from collections.abc import Hashable from collections.abc import Iterator from collections.abc import Mapping -from typing import Any from typing import Optional -from typing import Tuple from jsonschema.exceptions import ValidationError from jsonschema_path.typing import Schema diff --git a/openapi_spec_validator/validation/registries.py b/openapi_spec_validator/validation/registries.py index 70876e8..85bcf4e 100644 --- a/openapi_spec_validator/validation/registries.py +++ b/openapi_spec_validator/validation/registries.py @@ -2,7 +2,6 @@ from collections.abc import Mapping from typing import DefaultDict -from typing import Type from openapi_spec_validator.validation.keywords import KeywordValidator diff --git a/openapi_spec_validator/validation/types.py b/openapi_spec_validator/validation/types.py index 511617f..aa54c23 100644 --- a/openapi_spec_validator/validation/types.py +++ b/openapi_spec_validator/validation/types.py @@ -1,5 +1,3 @@ -from typing import Type - from openapi_spec_validator.validation.validators import SpecValidator SpecValidatorType = type[SpecValidator] diff --git a/openapi_spec_validator/validation/validators.py b/openapi_spec_validator/validation/validators.py index 1bfe1b2..5e5703b 100644 --- a/openapi_spec_validator/validation/validators.py +++ b/openapi_spec_validator/validation/validators.py @@ -5,9 +5,7 @@ from collections.abc import Iterator from collections.abc import Mapping from functools import lru_cache -from typing import List from typing import Optional -from typing import Type from typing import cast from jsonschema.exceptions import ValidationError diff --git a/openapi_spec_validator/versions/consts.py b/openapi_spec_validator/versions/consts.py index 0f803c5..e864595 100644 --- a/openapi_spec_validator/versions/consts.py +++ b/openapi_spec_validator/versions/consts.py @@ -1,5 +1,3 @@ -from typing import List - from openapi_spec_validator.versions.datatypes import SpecVersion OPENAPIV2 = SpecVersion( diff --git a/openapi_spec_validator/versions/finders.py b/openapi_spec_validator/versions/finders.py index 3a35202..2fc9405 100644 --- a/openapi_spec_validator/versions/finders.py +++ b/openapi_spec_validator/versions/finders.py @@ -1,5 +1,4 @@ from re import compile -from typing import List from jsonschema_path.typing import Schema diff --git a/tests/integration/validation/test_exceptions.py b/tests/integration/validation/test_exceptions.py index c8f5961..efdcf03 100644 --- a/tests/integration/validation/test_exceptions.py +++ b/tests/integration/validation/test_exceptions.py @@ -3,7 +3,6 @@ from openapi_spec_validator.validation.exceptions import ( DuplicateOperationIDError, ) -from openapi_spec_validator.validation.exceptions import ExtraParametersError from openapi_spec_validator.validation.exceptions import OpenAPIValidationError from openapi_spec_validator.validation.exceptions import ( UnresolvableParameterError, diff --git a/tests/integration/validation/test_validators.py b/tests/integration/validation/test_validators.py index 305e1f8..d5d64b6 100644 --- a/tests/integration/validation/test_validators.py +++ b/tests/integration/validation/test_validators.py @@ -32,7 +32,7 @@ def test_valid(self, factory, spec_file): validator.validate() - assert validator.is_valid() == True + assert validator.is_valid() @pytest.mark.parametrize( "spec_file", @@ -49,7 +49,7 @@ def test_validation_failed(self, factory, spec_file): with pytest.raises(OpenAPIValidationError): validator.validate() - assert validator.is_valid() == False + assert not validator.is_valid() @pytest.mark.parametrize( "spec_file", @@ -90,7 +90,7 @@ def test_valid(self, factory, spec_file): validator.validate() - assert validator.is_valid() == True + assert validator.is_valid() @pytest.mark.parametrize( "spec_file", @@ -107,7 +107,7 @@ def test_failed(self, factory, spec_file): with pytest.raises(OpenAPIValidationError): validator.validate() - assert validator.is_valid() == False + assert not validator.is_valid() @pytest.mark.parametrize( "spec_file", diff --git a/tox.ini b/tox.ini index 0f99522..ad31b6a 100644 --- a/tox.ini +++ b/tox.ini @@ -7,3 +7,7 @@ deps = -rrequirements_dev.txt commands = python setup.py test + +[flake8] +max-line-length = 79 +extend-ignore = E203,E501,E701 From b5ab9719aa5e043d1c9492e8841c90f1ca625386 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 18:55:56 -0500 Subject: [PATCH 339/371] Remove `hooks.yaml`, which is unused by pre-commit --- hooks.yaml | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 hooks.yaml diff --git a/hooks.yaml b/hooks.yaml deleted file mode 100644 index 5e7ce0e..0000000 --- a/hooks.yaml +++ /dev/null @@ -1,6 +0,0 @@ -- id: openapi-spec-validator - name: openapi-spec-validator - entry: openapi-spec-validator - description: Hook to validate Open API specs. - language: python - files: .*openapi.*\.(json|yaml|yml) \ No newline at end of file From 9988698d9f3890fe488d3ad1f7e5fdbf43a1e82a Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 16:10:56 -0500 Subject: [PATCH 340/371] Remove the Travis CI config file and README badge --- .travis.yml | 20 -------------------- README.rst | 2 -- 2 files changed, 22 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 693dc34..0000000 --- a/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -language: python -sudo: false -matrix: - include: - - python: '3.8' - - python: '3.9' - - python: '3.10-dev' - - python: 'nightly' - - python: 'pypy3' - allow_failures: - - python: 'nightly' -before_install: -- python -m pip install --upgrade pip -- pip install "poetry<1.2" -install: -- poetry install -script: -- poetry run pytest -after_success: -- codecov diff --git a/README.rst b/README.rst index 2948cca..31126c0 100644 --- a/README.rst +++ b/README.rst @@ -6,8 +6,6 @@ OpenAPI Spec validator :target: https://hub.docker.com/r/pythonopenapi/openapi-spec-validator .. image:: https://img.shields.io/pypi/v/openapi-spec-validator.svg :target: https://pypi.python.org/pypi/openapi-spec-validator -.. image:: https://travis-ci.org/python-openapi/openapi-spec-validator.svg?branch=master - :target: https://travis-ci.org/python-openapi/openapi-spec-validator .. image:: https://img.shields.io/codecov/c/github/python-openapi/openapi-spec-validator/master.svg?style=flat :target: https://codecov.io/github/python-openapi/openapi-spec-validator?branch=master .. image:: https://img.shields.io/pypi/pyversions/openapi-spec-validator.svg From 42ca18baa8a9cb06da80b905493e062f5b6c9f07 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Tue, 24 Jun 2025 07:24:24 -0500 Subject: [PATCH 341/371] Fix Read the Docs builds Read the Docs builds began permanently failing on February 26, 2024. The differential diagnosis between success and failure seems to be that the last successful build used Poetry 1.7.1; the first failing build used Poetry 1.8.1. For reference, Poetry 1.8.1 was released on February 26, 2024. Read the Docs later updated its "Install dependencies with Poetry" documentation to note that Poetry needs a `$VIRTUAL_ENV` environment variable set. https://docs.readthedocs.com/platform/stable/build-customization.html#install-dependencies-with-poetry This change aligns the Read the Docs config with the documented fix, and simultaneously updates the build OS and Python version, which are both very old. --- .readthedocs.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 59848f9..26116de 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -6,12 +6,10 @@ sphinx: formats: all build: - os: ubuntu-20.04 + os: ubuntu-24.04 tools: - python: "3.9" + python: "3.13" jobs: - post_create_environment: - - pip install poetry - - poetry config virtualenvs.create false post_install: - - poetry install --with docs + - pip install poetry + - VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry install --with docs From 10706ccbe2c519893cfb33b05b5c7dcf6a9b8062 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Tue, 24 Jun 2025 07:55:22 -0500 Subject: [PATCH 342/371] Migrate to PEP 621 project metadata These changes now allow the `poetry check` command to run successfully and without warnings. As a part of this change, the `docs` extra was removed in favor of the Poetry `docs` dependency group. The built sdist was checked and confirmed to still have the `tests/` directory, as well as the `py.typed` file. The built wheel was checked and confirmed to still have the `py.typed` file. --- poetry.lock | 284 ++++++++++++++++++++++++------------------------- pyproject.toml | 88 +++++++-------- 2 files changed, 187 insertions(+), 185 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3fa1795..55fec3c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -132,26 +132,26 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "cachetools" -version = "6.0.0" +version = "6.1.0" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "cachetools-6.0.0-py3-none-any.whl", hash = "sha256:82e73ba88f7b30228b5507dce1a1f878498fc669d972aef2dde4f3a3c24f103e"}, - {file = "cachetools-6.0.0.tar.gz", hash = "sha256:f225782b84438f828328fc2ad74346522f27e5b1440f4e9fd18b20ebfd1aa2cf"}, + {file = "cachetools-6.1.0-py3-none-any.whl", hash = "sha256:1c7bb3cf9193deaf3508b7c5f2a79986c13ea38965c5adcff1f84519cf39163e"}, + {file = "cachetools-6.1.0.tar.gz", hash = "sha256:b4c4f404392848db3ce7aac34950d17be4d864da4b8b66911008e430bc544587"}, ] [[package]] name = "certifi" -version = "2025.4.26" +version = "2025.6.15" description = "Python package for providing Mozilla's CA Bundle." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" groups = ["docs"] files = [ - {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, - {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, + {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"}, + {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}, ] [[package]] @@ -327,79 +327,79 @@ markers = {docs = "sys_platform == \"win32\""} [[package]] name = "coverage" -version = "7.8.2" +version = "7.9.1" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "coverage-7.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd8ec21e1443fd7a447881332f7ce9d35b8fbd2849e761bb290b584535636b0a"}, - {file = "coverage-7.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c26c2396674816deaeae7ded0e2b42c26537280f8fe313335858ffff35019be"}, - {file = "coverage-7.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1aec326ed237e5880bfe69ad41616d333712c7937bcefc1343145e972938f9b3"}, - {file = "coverage-7.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e818796f71702d7a13e50c70de2a1924f729228580bcba1607cccf32eea46e6"}, - {file = "coverage-7.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:546e537d9e24efc765c9c891328f30f826e3e4808e31f5d0f87c4ba12bbd1622"}, - {file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab9b09a2349f58e73f8ebc06fac546dd623e23b063e5398343c5270072e3201c"}, - {file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fd51355ab8a372d89fb0e6a31719e825cf8df8b6724bee942fb5b92c3f016ba3"}, - {file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0774df1e093acb6c9e4d58bce7f86656aeed6c132a16e2337692c12786b32404"}, - {file = "coverage-7.8.2-cp310-cp310-win32.whl", hash = "sha256:00f2e2f2e37f47e5f54423aeefd6c32a7dbcedc033fcd3928a4f4948e8b96af7"}, - {file = "coverage-7.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:145b07bea229821d51811bf15eeab346c236d523838eda395ea969d120d13347"}, - {file = "coverage-7.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b99058eef42e6a8dcd135afb068b3d53aff3921ce699e127602efff9956457a9"}, - {file = "coverage-7.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5feb7f2c3e6ea94d3b877def0270dff0947b8d8c04cfa34a17be0a4dc1836879"}, - {file = "coverage-7.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:670a13249b957bb9050fab12d86acef7bf8f6a879b9d1a883799276e0d4c674a"}, - {file = "coverage-7.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0bdc8bf760459a4a4187b452213e04d039990211f98644c7292adf1e471162b5"}, - {file = "coverage-7.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07a989c867986c2a75f158f03fdb413128aad29aca9d4dbce5fc755672d96f11"}, - {file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2db10dedeb619a771ef0e2949ccba7b75e33905de959c2643a4607bef2f3fb3a"}, - {file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e6ea7dba4e92926b7b5f0990634b78ea02f208d04af520c73a7c876d5a8d36cb"}, - {file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ef2f22795a7aca99fc3c84393a55a53dd18ab8c93fb431004e4d8f0774150f54"}, - {file = "coverage-7.8.2-cp311-cp311-win32.whl", hash = "sha256:641988828bc18a6368fe72355df5f1703e44411adbe49bba5644b941ce6f2e3a"}, - {file = "coverage-7.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8ab4a51cb39dc1933ba627e0875046d150e88478dbe22ce145a68393e9652975"}, - {file = "coverage-7.8.2-cp311-cp311-win_arm64.whl", hash = "sha256:8966a821e2083c74d88cca5b7dcccc0a3a888a596a04c0b9668a891de3a0cc53"}, - {file = "coverage-7.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e2f6fe3654468d061942591aef56686131335b7a8325684eda85dacdf311356c"}, - {file = "coverage-7.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76090fab50610798cc05241bf83b603477c40ee87acd358b66196ab0ca44ffa1"}, - {file = "coverage-7.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bd0a0a5054be160777a7920b731a0570284db5142abaaf81bcbb282b8d99279"}, - {file = "coverage-7.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da23ce9a3d356d0affe9c7036030b5c8f14556bd970c9b224f9c8205505e3b99"}, - {file = "coverage-7.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9392773cffeb8d7e042a7b15b82a414011e9d2b5fdbbd3f7e6a6b17d5e21b20"}, - {file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:876cbfd0b09ce09d81585d266c07a32657beb3eaec896f39484b631555be0fe2"}, - {file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3da9b771c98977a13fbc3830f6caa85cae6c9c83911d24cb2d218e9394259c57"}, - {file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a990f6510b3292686713bfef26d0049cd63b9c7bb17e0864f133cbfd2e6167f"}, - {file = "coverage-7.8.2-cp312-cp312-win32.whl", hash = "sha256:bf8111cddd0f2b54d34e96613e7fbdd59a673f0cf5574b61134ae75b6f5a33b8"}, - {file = "coverage-7.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:86a323a275e9e44cdf228af9b71c5030861d4d2610886ab920d9945672a81223"}, - {file = "coverage-7.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:820157de3a589e992689ffcda8639fbabb313b323d26388d02e154164c57b07f"}, - {file = "coverage-7.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea561010914ec1c26ab4188aef8b1567272ef6de096312716f90e5baa79ef8ca"}, - {file = "coverage-7.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cb86337a4fcdd0e598ff2caeb513ac604d2f3da6d53df2c8e368e07ee38e277d"}, - {file = "coverage-7.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26a4636ddb666971345541b59899e969f3b301143dd86b0ddbb570bd591f1e85"}, - {file = "coverage-7.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5040536cf9b13fb033f76bcb5e1e5cb3b57c4807fef37db9e0ed129c6a094257"}, - {file = "coverage-7.8.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc67994df9bcd7e0150a47ef41278b9e0a0ea187caba72414b71dc590b99a108"}, - {file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e6c86888fd076d9e0fe848af0a2142bf606044dc5ceee0aa9eddb56e26895a0"}, - {file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:684ca9f58119b8e26bef860db33524ae0365601492e86ba0b71d513f525e7050"}, - {file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8165584ddedb49204c4e18da083913bdf6a982bfb558632a79bdaadcdafd0d48"}, - {file = "coverage-7.8.2-cp313-cp313-win32.whl", hash = "sha256:34759ee2c65362163699cc917bdb2a54114dd06d19bab860725f94ef45a3d9b7"}, - {file = "coverage-7.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:2f9bc608fbafaee40eb60a9a53dbfb90f53cc66d3d32c2849dc27cf5638a21e3"}, - {file = "coverage-7.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:9fe449ee461a3b0c7105690419d0b0aba1232f4ff6d120a9e241e58a556733f7"}, - {file = "coverage-7.8.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8369a7c8ef66bded2b6484053749ff220dbf83cba84f3398c84c51a6f748a008"}, - {file = "coverage-7.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:159b81df53a5fcbc7d45dae3adad554fdbde9829a994e15227b3f9d816d00b36"}, - {file = "coverage-7.8.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6fcbbd35a96192d042c691c9e0c49ef54bd7ed865846a3c9d624c30bb67ce46"}, - {file = "coverage-7.8.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05364b9cc82f138cc86128dc4e2e1251c2981a2218bfcd556fe6b0fbaa3501be"}, - {file = "coverage-7.8.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46d532db4e5ff3979ce47d18e2fe8ecad283eeb7367726da0e5ef88e4fe64740"}, - {file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4000a31c34932e7e4fa0381a3d6deb43dc0c8f458e3e7ea6502e6238e10be625"}, - {file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:43ff5033d657cd51f83015c3b7a443287250dc14e69910577c3e03bd2e06f27b"}, - {file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94316e13f0981cbbba132c1f9f365cac1d26716aaac130866ca812006f662199"}, - {file = "coverage-7.8.2-cp313-cp313t-win32.whl", hash = "sha256:3f5673888d3676d0a745c3d0e16da338c5eea300cb1f4ada9c872981265e76d8"}, - {file = "coverage-7.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:2c08b05ee8d7861e45dc5a2cc4195c8c66dca5ac613144eb6ebeaff2d502e73d"}, - {file = "coverage-7.8.2-cp313-cp313t-win_arm64.whl", hash = "sha256:1e1448bb72b387755e1ff3ef1268a06617afd94188164960dba8d0245a46004b"}, - {file = "coverage-7.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:496948261eaac5ac9cf43f5d0a9f6eb7a6d4cb3bedb2c5d294138142f5c18f2a"}, - {file = "coverage-7.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eacd2de0d30871eff893bab0b67840a96445edcb3c8fd915e6b11ac4b2f3fa6d"}, - {file = "coverage-7.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b039ffddc99ad65d5078ef300e0c7eed08c270dc26570440e3ef18beb816c1ca"}, - {file = "coverage-7.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e49824808d4375ede9dd84e9961a59c47f9113039f1a525e6be170aa4f5c34d"}, - {file = "coverage-7.8.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b069938961dfad881dc2f8d02b47645cd2f455d3809ba92a8a687bf513839787"}, - {file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:de77c3ba8bb686d1c411e78ee1b97e6e0b963fb98b1637658dd9ad2c875cf9d7"}, - {file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1676628065a498943bd3f64f099bb573e08cf1bc6088bbe33cf4424e0876f4b3"}, - {file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8e1a26e7e50076e35f7afafde570ca2b4d7900a491174ca357d29dece5aacee7"}, - {file = "coverage-7.8.2-cp39-cp39-win32.whl", hash = "sha256:6782a12bf76fa61ad9350d5a6ef5f3f020b57f5e6305cbc663803f2ebd0f270a"}, - {file = "coverage-7.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1efa4166ba75ccefd647f2d78b64f53f14fb82622bc94c5a5cb0a622f50f1c9e"}, - {file = "coverage-7.8.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:ec455eedf3ba0bbdf8f5a570012617eb305c63cb9f03428d39bf544cb2b94837"}, - {file = "coverage-7.8.2-py3-none-any.whl", hash = "sha256:726f32ee3713f7359696331a18daf0c3b3a70bb0ae71141b9d3c52be7c595e32"}, - {file = "coverage-7.8.2.tar.gz", hash = "sha256:a886d531373a1f6ff9fad2a2ba4a045b68467b779ae729ee0b3b10ac20033b27"}, + {file = "coverage-7.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cc94d7c5e8423920787c33d811c0be67b7be83c705f001f7180c7b186dcf10ca"}, + {file = "coverage-7.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16aa0830d0c08a2c40c264cef801db8bc4fc0e1892782e45bcacbd5889270509"}, + {file = "coverage-7.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf95981b126f23db63e9dbe4cf65bd71f9a6305696fa5e2262693bc4e2183f5b"}, + {file = "coverage-7.9.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f05031cf21699785cd47cb7485f67df619e7bcdae38e0fde40d23d3d0210d3c3"}, + {file = "coverage-7.9.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb4fbcab8764dc072cb651a4bcda4d11fb5658a1d8d68842a862a6610bd8cfa3"}, + {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0f16649a7330ec307942ed27d06ee7e7a38417144620bb3d6e9a18ded8a2d3e5"}, + {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cea0a27a89e6432705fffc178064503508e3c0184b4f061700e771a09de58187"}, + {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e980b53a959fa53b6f05343afbd1e6f44a23ed6c23c4b4c56c6662bbb40c82ce"}, + {file = "coverage-7.9.1-cp310-cp310-win32.whl", hash = "sha256:70760b4c5560be6ca70d11f8988ee6542b003f982b32f83d5ac0b72476607b70"}, + {file = "coverage-7.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:a66e8f628b71f78c0e0342003d53b53101ba4e00ea8dabb799d9dba0abbbcebe"}, + {file = "coverage-7.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95c765060e65c692da2d2f51a9499c5e9f5cf5453aeaf1420e3fc847cc060582"}, + {file = "coverage-7.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ba383dc6afd5ec5b7a0d0c23d38895db0e15bcba7fb0fa8901f245267ac30d86"}, + {file = "coverage-7.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37ae0383f13cbdcf1e5e7014489b0d71cc0106458878ccde52e8a12ced4298ed"}, + {file = "coverage-7.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69aa417a030bf11ec46149636314c24c8d60fadb12fc0ee8f10fda0d918c879d"}, + {file = "coverage-7.9.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a4be2a28656afe279b34d4f91c3e26eccf2f85500d4a4ff0b1f8b54bf807338"}, + {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:382e7ddd5289f140259b610e5f5c58f713d025cb2f66d0eb17e68d0a94278875"}, + {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e5532482344186c543c37bfad0ee6069e8ae4fc38d073b8bc836fc8f03c9e250"}, + {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a39d18b3f50cc121d0ce3838d32d58bd1d15dab89c910358ebefc3665712256c"}, + {file = "coverage-7.9.1-cp311-cp311-win32.whl", hash = "sha256:dd24bd8d77c98557880def750782df77ab2b6885a18483dc8588792247174b32"}, + {file = "coverage-7.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:6b55ad10a35a21b8015eabddc9ba31eb590f54adc9cd39bcf09ff5349fd52125"}, + {file = "coverage-7.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:6ad935f0016be24c0e97fc8c40c465f9c4b85cbbe6eac48934c0dc4d2568321e"}, + {file = "coverage-7.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8de12b4b87c20de895f10567639c0797b621b22897b0af3ce4b4e204a743626"}, + {file = "coverage-7.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5add197315a054e92cee1b5f686a2bcba60c4c3e66ee3de77ace6c867bdee7cb"}, + {file = "coverage-7.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600a1d4106fe66f41e5d0136dfbc68fe7200a5cbe85610ddf094f8f22e1b0300"}, + {file = "coverage-7.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a876e4c3e5a2a1715a6608906aa5a2e0475b9c0f68343c2ada98110512ab1d8"}, + {file = "coverage-7.9.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81f34346dd63010453922c8e628a52ea2d2ccd73cb2487f7700ac531b247c8a5"}, + {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:888f8eee13f2377ce86d44f338968eedec3291876b0b8a7289247ba52cb984cd"}, + {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9969ef1e69b8c8e1e70d591f91bbc37fc9a3621e447525d1602801a24ceda898"}, + {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60c458224331ee3f1a5b472773e4a085cc27a86a0b48205409d364272d67140d"}, + {file = "coverage-7.9.1-cp312-cp312-win32.whl", hash = "sha256:5f646a99a8c2b3ff4c6a6e081f78fad0dde275cd59f8f49dc4eab2e394332e74"}, + {file = "coverage-7.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:30f445f85c353090b83e552dcbbdad3ec84c7967e108c3ae54556ca69955563e"}, + {file = "coverage-7.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:af41da5dca398d3474129c58cb2b106a5d93bbb196be0d307ac82311ca234342"}, + {file = "coverage-7.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:31324f18d5969feef7344a932c32428a2d1a3e50b15a6404e97cba1cc9b2c631"}, + {file = "coverage-7.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c804506d624e8a20fb3108764c52e0eef664e29d21692afa375e0dd98dc384f"}, + {file = "coverage-7.9.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef64c27bc40189f36fcc50c3fb8f16ccda73b6a0b80d9bd6e6ce4cffcd810bbd"}, + {file = "coverage-7.9.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4fe2348cc6ec372e25adec0219ee2334a68d2f5222e0cba9c0d613394e12d86"}, + {file = "coverage-7.9.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34ed2186fe52fcc24d4561041979a0dec69adae7bce2ae8d1c49eace13e55c43"}, + {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:25308bd3d00d5eedd5ae7d4357161f4df743e3c0240fa773ee1b0f75e6c7c0f1"}, + {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73e9439310f65d55a5a1e0564b48e34f5369bee943d72c88378f2d576f5a5751"}, + {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37ab6be0859141b53aa89412a82454b482c81cf750de4f29223d52268a86de67"}, + {file = "coverage-7.9.1-cp313-cp313-win32.whl", hash = "sha256:64bdd969456e2d02a8b08aa047a92d269c7ac1f47e0c977675d550c9a0863643"}, + {file = "coverage-7.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:be9e3f68ca9edb897c2184ad0eee815c635565dbe7a0e7e814dc1f7cbab92c0a"}, + {file = "coverage-7.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:1c503289ffef1d5105d91bbb4d62cbe4b14bec4d13ca225f9c73cde9bb46207d"}, + {file = "coverage-7.9.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0b3496922cb5f4215bf5caaef4cf12364a26b0be82e9ed6d050f3352cf2d7ef0"}, + {file = "coverage-7.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9565c3ab1c93310569ec0d86b017f128f027cab0b622b7af288696d7ed43a16d"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2241ad5dbf79ae1d9c08fe52b36d03ca122fb9ac6bca0f34439e99f8327ac89f"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bb5838701ca68b10ebc0937dbd0eb81974bac54447c55cd58dea5bca8451029"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b30a25f814591a8c0c5372c11ac8967f669b97444c47fd794926e175c4047ece"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2d04b16a6062516df97969f1ae7efd0de9c31eb6ebdceaa0d213b21c0ca1a683"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7931b9e249edefb07cd6ae10c702788546341d5fe44db5b6108a25da4dca513f"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52e92b01041151bf607ee858e5a56c62d4b70f4dac85b8c8cb7fb8a351ab2c10"}, + {file = "coverage-7.9.1-cp313-cp313t-win32.whl", hash = "sha256:684e2110ed84fd1ca5f40e89aa44adf1729dc85444004111aa01866507adf363"}, + {file = "coverage-7.9.1-cp313-cp313t-win_amd64.whl", hash = "sha256:437c576979e4db840539674e68c84b3cda82bc824dd138d56bead1435f1cb5d7"}, + {file = "coverage-7.9.1-cp313-cp313t-win_arm64.whl", hash = "sha256:18a0912944d70aaf5f399e350445738a1a20b50fbea788f640751c2ed9208b6c"}, + {file = "coverage-7.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f424507f57878e424d9a95dc4ead3fbdd72fd201e404e861e465f28ea469951"}, + {file = "coverage-7.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:535fde4001b2783ac80865d90e7cc7798b6b126f4cd8a8c54acfe76804e54e58"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02532fd3290bb8fa6bec876520842428e2a6ed6c27014eca81b031c2d30e3f71"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56f5eb308b17bca3bbff810f55ee26d51926d9f89ba92707ee41d3c061257e55"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfa447506c1a52271f1b0de3f42ea0fa14676052549095e378d5bff1c505ff7b"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9ca8e220006966b4a7b68e8984a6aee645a0384b0769e829ba60281fe61ec4f7"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:49f1d0788ba5b7ba65933f3a18864117c6506619f5ca80326b478f72acf3f385"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:68cd53aec6f45b8e4724c0950ce86eacb775c6be01ce6e3669fe4f3a21e768ed"}, + {file = "coverage-7.9.1-cp39-cp39-win32.whl", hash = "sha256:95335095b6c7b1cc14c3f3f17d5452ce677e8490d101698562b2ffcacc304c8d"}, + {file = "coverage-7.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:e1b5191d1648acc439b24721caab2fd0c86679d8549ed2c84d5a7ec1bedcc244"}, + {file = "coverage-7.9.1-pp39.pp310.pp311-none-any.whl", hash = "sha256:db0f04118d1db74db6c9e1cb1898532c7dcc220f1d2718f058601f7c3f499514"}, + {file = "coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c"}, + {file = "coverage-7.9.1.tar.gz", hash = "sha256:6cf43c78c4282708a28e466316935ec7489a9c487518a77fa68f716c67909cec"}, ] [package.dependencies] @@ -597,7 +597,7 @@ description = "Read metadata from Python packages" optional = false python-versions = ">=3.9" groups = ["docs"] -markers = "python_version < \"3.10\"" +markers = "python_version == \"3.9\"" files = [ {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, @@ -828,44 +828,44 @@ files = [ [[package]] name = "mypy" -version = "1.16.0" +version = "1.16.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "mypy-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7909541fef256527e5ee9c0a7e2aeed78b6cda72ba44298d1334fe7881b05c5c"}, - {file = "mypy-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e71d6f0090c2256c713ed3d52711d01859c82608b5d68d4fa01a3fe30df95571"}, - {file = "mypy-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:936ccfdd749af4766be824268bfe22d1db9eb2f34a3ea1d00ffbe5b5265f5491"}, - {file = "mypy-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4086883a73166631307fdd330c4a9080ce24913d4f4c5ec596c601b3a4bdd777"}, - {file = "mypy-1.16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:feec38097f71797da0231997e0de3a58108c51845399669ebc532c815f93866b"}, - {file = "mypy-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:09a8da6a0ee9a9770b8ff61b39c0bb07971cda90e7297f4213741b48a0cc8d93"}, - {file = "mypy-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9f826aaa7ff8443bac6a494cf743f591488ea940dd360e7dd330e30dd772a5ab"}, - {file = "mypy-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82d056e6faa508501af333a6af192c700b33e15865bda49611e3d7d8358ebea2"}, - {file = "mypy-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:089bedc02307c2548eb51f426e085546db1fa7dd87fbb7c9fa561575cf6eb1ff"}, - {file = "mypy-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6a2322896003ba66bbd1318c10d3afdfe24e78ef12ea10e2acd985e9d684a666"}, - {file = "mypy-1.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:021a68568082c5b36e977d54e8f1de978baf401a33884ffcea09bd8e88a98f4c"}, - {file = "mypy-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:54066fed302d83bf5128632d05b4ec68412e1f03ef2c300434057d66866cea4b"}, - {file = "mypy-1.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c5436d11e89a3ad16ce8afe752f0f373ae9620841c50883dc96f8b8805620b13"}, - {file = "mypy-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f2622af30bf01d8fc36466231bdd203d120d7a599a6d88fb22bdcb9dbff84090"}, - {file = "mypy-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d045d33c284e10a038f5e29faca055b90eee87da3fc63b8889085744ebabb5a1"}, - {file = "mypy-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b4968f14f44c62e2ec4a038c8797a87315be8df7740dc3ee8d3bfe1c6bf5dba8"}, - {file = "mypy-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb14a4a871bb8efb1e4a50360d4e3c8d6c601e7a31028a2c79f9bb659b63d730"}, - {file = "mypy-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:bd4e1ebe126152a7bbaa4daedd781c90c8f9643c79b9748caa270ad542f12bec"}, - {file = "mypy-1.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a9e056237c89f1587a3be1a3a70a06a698d25e2479b9a2f57325ddaaffc3567b"}, - {file = "mypy-1.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b07e107affb9ee6ce1f342c07f51552d126c32cd62955f59a7db94a51ad12c0"}, - {file = "mypy-1.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6fb60cbd85dc65d4d63d37cb5c86f4e3a301ec605f606ae3a9173e5cf34997b"}, - {file = "mypy-1.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7e32297a437cc915599e0578fa6bc68ae6a8dc059c9e009c628e1c47f91495d"}, - {file = "mypy-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:afe420c9380ccec31e744e8baff0d406c846683681025db3531b32db56962d52"}, - {file = "mypy-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:55f9076c6ce55dd3f8cd0c6fff26a008ca8e5131b89d5ba6d86bd3f47e736eeb"}, - {file = "mypy-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f56236114c425620875c7cf71700e3d60004858da856c6fc78998ffe767b73d3"}, - {file = "mypy-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:15486beea80be24ff067d7d0ede673b001d0d684d0095803b3e6e17a886a2a92"}, - {file = "mypy-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f2ed0e0847a80655afa2c121835b848ed101cc7b8d8d6ecc5205aedc732b1436"}, - {file = "mypy-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb5fbc8063cb4fde7787e4c0406aa63094a34a2daf4673f359a1fb64050e9cb2"}, - {file = "mypy-1.16.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a5fcfdb7318c6a8dd127b14b1052743b83e97a970f0edb6c913211507a255e20"}, - {file = "mypy-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:2e7e0ad35275e02797323a5aa1be0b14a4d03ffdb2e5f2b0489fa07b89c67b21"}, - {file = "mypy-1.16.0-py3-none-any.whl", hash = "sha256:29e1499864a3888bca5c1542f2d7232c6e586295183320caa95758fc84034031"}, - {file = "mypy-1.16.0.tar.gz", hash = "sha256:84b94283f817e2aa6350a14b4a8fb2a35a53c286f97c9d30f53b63620e7af8ab"}, + {file = "mypy-1.16.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b4f0fed1022a63c6fec38f28b7fc77fca47fd490445c69d0a66266c59dd0b88a"}, + {file = "mypy-1.16.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86042bbf9f5a05ea000d3203cf87aa9d0ccf9a01f73f71c58979eb9249f46d72"}, + {file = "mypy-1.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea7469ee5902c95542bea7ee545f7006508c65c8c54b06dc2c92676ce526f3ea"}, + {file = "mypy-1.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:352025753ef6a83cb9e7f2427319bb7875d1fdda8439d1e23de12ab164179574"}, + {file = "mypy-1.16.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ff9fa5b16e4c1364eb89a4d16bcda9987f05d39604e1e6c35378a2987c1aac2d"}, + {file = "mypy-1.16.1-cp310-cp310-win_amd64.whl", hash = "sha256:1256688e284632382f8f3b9e2123df7d279f603c561f099758e66dd6ed4e8bd6"}, + {file = "mypy-1.16.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:472e4e4c100062488ec643f6162dd0d5208e33e2f34544e1fc931372e806c0cc"}, + {file = "mypy-1.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea16e2a7d2714277e349e24d19a782a663a34ed60864006e8585db08f8ad1782"}, + {file = "mypy-1.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08e850ea22adc4d8a4014651575567b0318ede51e8e9fe7a68f25391af699507"}, + {file = "mypy-1.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22d76a63a42619bfb90122889b903519149879ddbf2ba4251834727944c8baca"}, + {file = "mypy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c7ce0662b6b9dc8f4ed86eb7a5d505ee3298c04b40ec13b30e572c0e5ae17c4"}, + {file = "mypy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:211287e98e05352a2e1d4e8759c5490925a7c784ddc84207f4714822f8cf99b6"}, + {file = "mypy-1.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:af4792433f09575d9eeca5c63d7d90ca4aeceda9d8355e136f80f8967639183d"}, + {file = "mypy-1.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66df38405fd8466ce3517eda1f6640611a0b8e70895e2a9462d1d4323c5eb4b9"}, + {file = "mypy-1.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44e7acddb3c48bd2713994d098729494117803616e116032af192871aed80b79"}, + {file = "mypy-1.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ab5eca37b50188163fa7c1b73c685ac66c4e9bdee4a85c9adac0e91d8895e15"}, + {file = "mypy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb6229b2c9086247e21a83c309754b9058b438704ad2f6807f0d8227f6ebdd"}, + {file = "mypy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:1f0435cf920e287ff68af3d10a118a73f212deb2ce087619eb4e648116d1fe9b"}, + {file = "mypy-1.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ddc91eb318c8751c69ddb200a5937f1232ee8efb4e64e9f4bc475a33719de438"}, + {file = "mypy-1.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:87ff2c13d58bdc4bbe7dc0dedfe622c0f04e2cb2a492269f3b418df2de05c536"}, + {file = "mypy-1.16.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a7cfb0fe29fe5a9841b7c8ee6dffb52382c45acdf68f032145b75620acfbd6f"}, + {file = "mypy-1.16.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:051e1677689c9d9578b9c7f4d206d763f9bbd95723cd1416fad50db49d52f359"}, + {file = "mypy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d5d2309511cc56c021b4b4e462907c2b12f669b2dbeb68300110ec27723971be"}, + {file = "mypy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:4f58ac32771341e38a853c5d0ec0dfe27e18e27da9cdb8bbc882d2249c71a3ee"}, + {file = "mypy-1.16.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7fc688329af6a287567f45cc1cefb9db662defeb14625213a5b7da6e692e2069"}, + {file = "mypy-1.16.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e198ab3f55924c03ead626ff424cad1732d0d391478dfbf7bb97b34602395da"}, + {file = "mypy-1.16.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09aa4f91ada245f0a45dbc47e548fd94e0dd5a8433e0114917dc3b526912a30c"}, + {file = "mypy-1.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13c7cd5b1cb2909aa318a90fd1b7e31f17c50b242953e7dd58345b2a814f6383"}, + {file = "mypy-1.16.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:58e07fb958bc5d752a280da0e890c538f1515b79a65757bbdc54252ba82e0b40"}, + {file = "mypy-1.16.1-cp39-cp39-win_amd64.whl", hash = "sha256:f895078594d918f93337a505f8add9bd654d1a24962b4c6ed9390e12531eb31b"}, + {file = "mypy-1.16.1-py3-none-any.whl", hash = "sha256:5fc2ac4027d0ef28d6ba69a0343737a23c4d1b83672bf38d1fe237bdc0643b37"}, + {file = "mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab"}, ] [package.dependencies] @@ -1027,14 +1027,14 @@ files = [ [[package]] name = "pydantic" -version = "2.11.5" +version = "2.11.7" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" groups = ["docs"] files = [ - {file = "pydantic-2.11.5-py3-none-any.whl", hash = "sha256:f9c26ba06f9747749ca1e5c94d6a85cb84254577553c8785576fd38fa64dc0f7"}, - {file = "pydantic-2.11.5.tar.gz", hash = "sha256:7f853db3d0ce78ce8bbb148c401c2cdd6431b3473c0cdff2755c7690952a7b7a"}, + {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, + {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, ] [package.dependencies] @@ -1197,14 +1197,14 @@ files = [ [[package]] name = "pygments" -version = "2.19.1" +version = "2.19.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" groups = ["dev", "docs"] files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, + {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, + {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, ] [package.extras] @@ -1274,14 +1274,14 @@ files = [ [[package]] name = "pytest" -version = "8.4.0" +version = "8.4.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e"}, - {file = "pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6"}, + {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"}, + {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"}, ] [package.dependencies] @@ -1298,19 +1298,20 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests [[package]] name = "pytest-cov" -version = "6.1.1" +version = "6.2.1" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pytest_cov-6.1.1-py3-none-any.whl", hash = "sha256:bddf29ed2d0ab6f4df17b4c55b0a657287db8684af9c42ea546b21b1041b3dde"}, - {file = "pytest_cov-6.1.1.tar.gz", hash = "sha256:46935f7aaefba760e716c2ebfbe1c216240b9592966e7da99ea8292d4d3e2a0a"}, + {file = "pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5"}, + {file = "pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2"}, ] [package.dependencies] coverage = {version = ">=7.5", extras = ["toml"]} -pytest = ">=4.6" +pluggy = ">=1.2" +pytest = ">=6.2.5" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] @@ -1421,19 +1422,19 @@ typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} [[package]] name = "requests" -version = "2.32.3" +version = "2.32.4" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" groups = ["docs"] files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, + {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" @@ -1890,14 +1891,14 @@ files = [ [[package]] name = "tox" -version = "4.26.0" +version = "4.27.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "tox-4.26.0-py3-none-any.whl", hash = "sha256:75f17aaf09face9b97bd41645028d9f722301e912be8b4c65a3f938024560224"}, - {file = "tox-4.26.0.tar.gz", hash = "sha256:a83b3b67b0159fa58e44e646505079e35a43317a62d2ae94725e0586266faeca"}, + {file = "tox-4.27.0-py3-none-any.whl", hash = "sha256:2b8a7fb986b82aa2c830c0615082a490d134e0626dbc9189986da46a313c4f20"}, + {file = "tox-4.27.0.tar.gz", hash = "sha256:b97d5ecc0c0d5755bcc5348387fef793e1bfa68eb33746412f4c60881d7f5f57"}, ] [package.dependencies] @@ -1958,14 +1959,14 @@ files = [ [[package]] name = "urllib3" -version = "2.4.0" +version = "2.5.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["docs"] files = [ - {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, - {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, + {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, + {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [package.extras] @@ -1997,15 +1998,15 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "zipp" -version = "3.22.0" +version = "3.23.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" groups = ["docs"] -markers = "python_version < \"3.10\"" +markers = "python_version == \"3.9\"" files = [ - {file = "zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343"}, - {file = "zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5"}, + {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"}, + {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"}, ] [package.extras] @@ -2013,13 +2014,10 @@ check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \" cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib_resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] type = ["pytest-mypy"] -[extras] -docs = [] - [metadata] lock-version = "2.1" -python-versions = "^3.9.0" -content-hash = "ea67a83adf2a39d5b8904bf095e3ecafade4ad9a7aed80d4850edb108e9abe24" +python-versions = ">=3.9,<4.0" +content-hash = "a380423a4badffedaeb02ef3aabe23e428e507ef6ca619806213fd2d739d90fe" diff --git a/pyproject.toml b/pyproject.toml index cd2bd32..1f9b180 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,38 +1,13 @@ -[build-system] -requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" - -[tool.coverage.run] -branch = true -source =["openapi_spec_validator"] - -[tool.coverage.xml] -output = "reports/coverage.xml" - -[tool.mypy] -files = "openapi_spec_validator" -strict = true - -[[tool.mypy.overrides]] -module = "jsonschema.*" -ignore_missing_imports = true - -[[tool.mypy.overrides]] -module = "jsonschema_specifications" -ignore_missing_imports = true - -[[tool.mypy.overrides]] -module = "lazy_object_proxy.*" -ignore_missing_imports = true - -[tool.poetry] +[project] name = "openapi-spec-validator" version = "0.8.0b1" description = "OpenAPI 2.0 (aka Swagger) and OpenAPI 3 spec validator" -authors = ["Artur Maciag "] +authors = [ + { name = "Artur Maciag", email = "maciag.artur@gmail.com" }, +] license = "Apache-2.0" readme = "README.rst" -repository = "https://github.com/python-openapi/openapi-spec-validator" +requires-python = ">=3.9,<4.0" keywords = ["openapi", "swagger", "schema"] classifiers = [ "Development Status :: 4 - Beta", @@ -48,23 +23,29 @@ classifiers = [ "Topic :: Software Development :: Libraries", "Typing :: Typed", ] -include = [ - {path = "tests", format = "sdist"}, +dependencies = [ + "jsonschema >=4.24.0,<4.25.0", + "openapi-schema-validator >=0.6.0,<0.7.0", + "jsonschema-path >=0.4.0b1,<0.5.0", + "lazy-object-proxy >=1.7.1,<2.0", ] -[tool.poetry.dependencies] -jsonschema = "^4.24.0" -openapi-schema-validator = "^0.6.0" -python = "^3.9.0" -jsonschema-path = {version = "^0.4.0b1", allow-prereleases = true} -lazy-object-proxy = "^1.7.1" - -[tool.poetry.extras] -docs = ["sphinx", "sphinx-immaterial"] +[project.urls] +Source = "https://github.com/python-openapi/openapi-spec-validator" +Documentation = "https://openapi-spec-validator.readthedocs.io/en/latest/" -[tool.poetry.scripts] +[project.scripts] openapi-spec-validator = "openapi_spec_validator.__main__:main" +[build-system] +requires = ["poetry-core>=2.0.0,<3.0.0"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry] +include = [ + {path = "tests", format = "sdist"}, +] + [tool.poetry.group.docs.dependencies] sphinx = ">=5.3,<8.0" sphinx-immaterial = ">=0.11,<0.13" @@ -84,6 +65,29 @@ deptry = "^0.23.0" flake8 = "^5.0.4" pyflakes = "^2.5.0" +[tool.coverage.run] +branch = true +source =["openapi_spec_validator"] + +[tool.coverage.xml] +output = "reports/coverage.xml" + +[tool.mypy] +files = "openapi_spec_validator" +strict = true + +[[tool.mypy.overrides]] +module = "jsonschema.*" +ignore_missing_imports = true + +[[tool.mypy.overrides]] +module = "jsonschema_specifications" +ignore_missing_imports = true + +[[tool.mypy.overrides]] +module = "lazy_object_proxy.*" +ignore_missing_imports = true + [tool.pytest.ini_options] addopts = """ --capture=no From 057e397f63fd116201ebd5020c6fd41ff38a7ff9 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Wed, 25 Jun 2025 07:34:18 -0500 Subject: [PATCH 343/371] Manually update all GitHub actions to their latest versions Dependabot doesn't appear to be submitting PRs to maintain these. However, the Dependabot config appears to be valid. There may be a setting that needs to be adjusted at the org level or at the individual repository level. --- .github/workflows/build-docs.yml | 8 ++++---- .github/workflows/docker-publish-manual.yml | 12 ++++++------ .github/workflows/docker-publish.yml | 12 ++++++------ .github/workflows/python-test.yml | 10 +++++----- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 2d52e12..8f381ee 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -9,10 +9,10 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.12 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.12 @@ -21,13 +21,13 @@ jobs: run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - name: Set up poetry - uses: Gr1N/setup-poetry@v8 + uses: Gr1N/setup-poetry@v9 - name: Configure poetry run: poetry config virtualenvs.in-project true - name: Set up cache - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: .venv diff --git a/.github/workflows/docker-publish-manual.yml b/.github/workflows/docker-publish-manual.yml index 55b2d5c..5a02f48 100644 --- a/.github/workflows/docker-publish-manual.yml +++ b/.github/workflows/docker-publish-manual.yml @@ -17,11 +17,11 @@ jobs: docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Docker meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | pythonopenapi/openapi-spec-validator @@ -29,20 +29,20 @@ jobs: type=semver,pattern={{version}},value=${{ github.event.inputs.version }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub if: github.event.inputs.push - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 1e8bf8d..9055b58 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -13,11 +13,11 @@ jobs: docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Docker meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | pythonopenapi/openapi-spec-validator @@ -25,20 +25,20 @@ jobs: type=semver,pattern={{version}} - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 57e0b47..2556acb 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -18,10 +18,10 @@ jobs: os: [windows-latest, ubuntu-latest] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -30,13 +30,13 @@ jobs: run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - name: Set up poetry - uses: Gr1N/setup-poetry@v8 + uses: Gr1N/setup-poetry@v9 - name: Configure poetry run: poetry config virtualenvs.in-project true - name: Set up cache - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: .venv @@ -62,4 +62,4 @@ jobs: run: poetry run deptry . - name: Upload coverage - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v5 From 97e44a91066c573a3e70b22822470a30b2d58293 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Wed, 25 Jun 2025 07:48:26 -0500 Subject: [PATCH 344/371] Migrate off of `set-output`, which is deprecated This change eliminates warnings in CI caused by the deprecation. In addition, using the `python-version` output of the `setup-python` action fixes a bug that prevented Windows caches from containing the Python version. For reference, Windows caches were created with names that lacked the Python version, like: ``` venv-pull_request-Windows--{hash} ``` --- .github/workflows/build-docs.yml | 7 ++----- .github/workflows/python-test.yml | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 8f381ee..6ff3afe 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -12,14 +12,11 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.12 + id: setup-python uses: actions/setup-python@v5 with: python-version: 3.12 - - name: Get full Python version - id: full-python-version - run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - - name: Set up poetry uses: Gr1N/setup-poetry@v9 @@ -31,7 +28,7 @@ jobs: id: cache with: path: .venv - key: venv-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} + key: venv-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - name: Ensure cache is healthy if: steps.cache.outputs.cache-hit == 'true' diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 2556acb..f67449c 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -21,14 +21,11 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} + id: setup-python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - name: Get full Python version - id: full-python-version - run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - - name: Set up poetry uses: Gr1N/setup-poetry@v9 @@ -40,7 +37,7 @@ jobs: id: cache with: path: .venv - key: venv-${{ github.event_name }}-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} + key: venv-${{ github.event_name }}-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - name: Ensure cache is healthy if: steps.cache.outputs.cache-hit == 'true' From 62e95c5298503651f3b630396305f04395c9b9fc Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Wed, 25 Jun 2025 08:10:14 -0500 Subject: [PATCH 345/371] Fix several typos Found and fixed by running `typos` against the codebase. --- docs/index.rst | 2 +- tests/integration/test_shortcuts.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 373cebc..060880b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -22,7 +22,7 @@ Installation .. md-tab-set:: - .. md-tab-item:: Pip + PyPI (recommented) + .. md-tab-item:: Pip + PyPI (recommended) .. code-block:: console diff --git a/tests/integration/test_shortcuts.py b/tests/integration/test_shortcuts.py index e2db344..f6939c6 100644 --- a/tests/integration/test_shortcuts.py +++ b/tests/integration/test_shortcuts.py @@ -56,7 +56,7 @@ def test_valid(self, factory, spec_file): "empty.yaml", ], ) - def test_falied(self, factory, spec_file): + def test_failed(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) @@ -97,7 +97,7 @@ def test_valid(self, factory, spec_file): "empty.yaml", ], ) - def test_falied(self, factory, spec_file): + def test_failed(self, factory, spec_file): spec_path = self.local_test_suite_file_path(spec_file) spec = factory.spec_from_file(spec_path) From bf36baec2adf1e203dcc9a157848ee51aa47ddac Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Thu, 26 Jun 2025 06:04:40 -0500 Subject: [PATCH 346/371] Remove `MANIFEST.in`, which is unused by Poetry --- MANIFEST.in | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 14f5ea3..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ -include README.md -include requirements.txt -include requirements_dev.txt -include openapi_spec_validator/py.typed -include openapi_spec_validator/resources/schemas/*/* -include LICENSE From da5afa19ce2aef0ef4ecc68d7834d71fd8cce119 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Fri, 27 Jun 2025 07:12:26 -0500 Subject: [PATCH 347/371] Move the `docs/contributing.rst` contents to `CONTRIBUTING.rst` This change makes it easier for people to contribute to the project when opening a PR. Currently, GitHub shows links to `CONTRIBUTING.rst` when opening a PR, but when people click on those links they are simply told "Go to a third-party website to view the contributing guidelines". This change replaces the manual redirect with actual content so that no third-party website (in this case, Read the Docs) is necessary to understand the contributing guidelines. In addition, `docs/contributing.rst` now uses a directive to `include` the contents of `CONTRIBUTING.rst`. This was tested by building the documentation locally and confirming that the HTML documentation still contained the contributing guidelines. The result is a streamlined contributing experience from within GitHub, no duplicated content, and no changes to the built documentation. --- CONTRIBUTING.rst | 77 ++++++++++++++++++++++++++++++++++++++++++- docs/contributing.rst | 77 +------------------------------------------ 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 6f67057..ae9464f 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1 +1,76 @@ -Please read the `Contributing `__ guidelines in the documentation site. +Contributing +============ + +Firstly, thank you all for taking the time to contribute. + +The following section describes how you can contribute to the openapi-spec-validator project on GitHub. + +Reporting bugs +-------------- + +Before you report +^^^^^^^^^^^^^^^^^ + +* Check whether your issue does not already exist in the `Issue tracker `__. +* Make sure it is not a support request or question better suited for `Discussion board `__. + +How to submit a report +^^^^^^^^^^^^^^^^^^^^^^ + +* Include clear title. +* Describe your runtime environment with exact versions you use. +* Describe the exact steps which reproduce the problem, including minimal code snippets. +* Describe the behavior you observed after following the steps, pasting console outputs. +* Describe expected behavior to see and why, including links to documentations. + +Code contribution +----------------- + +Prerequisites +^^^^^^^^^^^^^ + +Install `Poetry `__ by following the `official installation instructions `__. Optionally (but recommended), configure Poetry to create a virtual environment in a folder named ``.venv`` within the root directory of the project: + +.. code-block:: console + + poetry config virtualenvs.in-project true + +Setup +^^^^^ + +To create a development environment and install the runtime and development dependencies, run: + +.. code-block:: console + + poetry install + +Then enter the virtual environment created by Poetry: + +.. code-block:: console + + poetry shell + +Static checks +^^^^^^^^^^^^^ + +The project uses static checks using fantastic `pre-commit `__. Every change is checked on CI and if it does not pass the tests it cannot be accepted. If you want to check locally then run following command to install pre-commit. + +To turn on pre-commit checks for commit operations in git, enter: + +.. code-block:: console + + pre-commit install + +To run all checks on your staged files, enter: + +.. code-block:: console + + pre-commit run + +To run all checks on all files, enter: + +.. code-block:: console + + pre-commit run --all-files + +Pre-commit check results are also attached to your PR through integration with Github Action. diff --git a/docs/contributing.rst b/docs/contributing.rst index ae9464f..b6e6c69 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -1,76 +1 @@ -Contributing -============ - -Firstly, thank you all for taking the time to contribute. - -The following section describes how you can contribute to the openapi-spec-validator project on GitHub. - -Reporting bugs --------------- - -Before you report -^^^^^^^^^^^^^^^^^ - -* Check whether your issue does not already exist in the `Issue tracker `__. -* Make sure it is not a support request or question better suited for `Discussion board `__. - -How to submit a report -^^^^^^^^^^^^^^^^^^^^^^ - -* Include clear title. -* Describe your runtime environment with exact versions you use. -* Describe the exact steps which reproduce the problem, including minimal code snippets. -* Describe the behavior you observed after following the steps, pasting console outputs. -* Describe expected behavior to see and why, including links to documentations. - -Code contribution ------------------ - -Prerequisites -^^^^^^^^^^^^^ - -Install `Poetry `__ by following the `official installation instructions `__. Optionally (but recommended), configure Poetry to create a virtual environment in a folder named ``.venv`` within the root directory of the project: - -.. code-block:: console - - poetry config virtualenvs.in-project true - -Setup -^^^^^ - -To create a development environment and install the runtime and development dependencies, run: - -.. code-block:: console - - poetry install - -Then enter the virtual environment created by Poetry: - -.. code-block:: console - - poetry shell - -Static checks -^^^^^^^^^^^^^ - -The project uses static checks using fantastic `pre-commit `__. Every change is checked on CI and if it does not pass the tests it cannot be accepted. If you want to check locally then run following command to install pre-commit. - -To turn on pre-commit checks for commit operations in git, enter: - -.. code-block:: console - - pre-commit install - -To run all checks on your staged files, enter: - -.. code-block:: console - - pre-commit run - -To run all checks on all files, enter: - -.. code-block:: console - - pre-commit run --all-files - -Pre-commit check results are also attached to your PR through integration with Github Action. +.. include:: ../CONTRIBUTING.rst From 043bb9e29d447d0b2871eea119ff615960e7342d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 16:24:40 +0000 Subject: [PATCH 348/371] Bump flynt from 1.0.2 to 1.0.6 Bumps [flynt](https://github.com/ikamensh/flynt) from 1.0.2 to 1.0.6. - [Changelog](https://github.com/ikamensh/flynt/blob/master/CHANGELOG.md) - [Commits](https://github.com/ikamensh/flynt/compare/1.0.2...1.0.6) --- updated-dependencies: - dependency-name: flynt dependency-version: 1.0.6 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/poetry.lock b/poetry.lock index 55fec3c..685eb65 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -36,18 +36,6 @@ files = [ {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, ] -[[package]] -name = "astor" -version = "0.8.1" -description = "Read/rewrite/write Python ASTs" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" -groups = ["dev"] -files = [ - {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, - {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, -] - [[package]] name = "attrs" version = "25.3.0" @@ -531,22 +519,21 @@ pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "flynt" -version = "1.0.2" +version = "1.0.6" description = "CLI tool to convert a python project's %-formatted strings to f-strings." optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "flynt-1.0.2-py3-none-any.whl", hash = "sha256:0388f44acf5c5ccaf96dbd23b7817f56a1b0e54b36df7993b6e64e07939f7dab"}, - {file = "flynt-1.0.2.tar.gz", hash = "sha256:e725eaf2d6b5de8ba356599b638bc3561c6a37c0b92f4979cd4cd451be2c0ce5"}, + {file = "flynt-1.0.6-py3-none-any.whl", hash = "sha256:4e837c9597036b634a347855a89acf1483c4f8b73daa82c49372b10b6e1d1778"}, + {file = "flynt-1.0.6.tar.gz", hash = "sha256:471b7ff00756678e2912d4261dcbcd8fc1395129b66bf6977f88a3b3ad220c90"}, ] [package.dependencies] -astor = "*" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} [package.extras] -dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] +dev = ["build", "pre-commit", "pytest", "pytest-cov", "ruff", "twine"] [[package]] name = "identify" @@ -597,7 +584,7 @@ description = "Read metadata from Python packages" optional = false python-versions = ">=3.9" groups = ["docs"] -markers = "python_version == \"3.9\"" +markers = "python_version < \"3.10\"" files = [ {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, @@ -2003,7 +1990,7 @@ description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" groups = ["docs"] -markers = "python_version == \"3.9\"" +markers = "python_version < \"3.10\"" files = [ {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"}, {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"}, From 22e1a92ea0a4bec754cd77821a8b437bd521f7c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 12:45:19 +0000 Subject: [PATCH 349/371] Bump tox from 4.27.0 to 4.30.3 Bumps [tox](https://github.com/tox-dev/tox) from 4.27.0 to 4.30.3. - [Release notes](https://github.com/tox-dev/tox/releases) - [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/tox/compare/4.27.0...4.30.3) --- updated-dependencies: - dependency-name: tox dependency-version: 4.30.3 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/poetry.lock b/poetry.lock index 55fec3c..a6a5f37 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.0 and should not be changed by hand. [[package]] name = "alabaster" @@ -1891,42 +1891,39 @@ files = [ [[package]] name = "tox" -version = "4.27.0" +version = "4.30.3" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "tox-4.27.0-py3-none-any.whl", hash = "sha256:2b8a7fb986b82aa2c830c0615082a490d134e0626dbc9189986da46a313c4f20"}, - {file = "tox-4.27.0.tar.gz", hash = "sha256:b97d5ecc0c0d5755bcc5348387fef793e1bfa68eb33746412f4c60881d7f5f57"}, + {file = "tox-4.30.3-py3-none-any.whl", hash = "sha256:a9f17b4b2d0f74fe0d76207236925a119095011e5c2e661a133115a8061178c9"}, + {file = "tox-4.30.3.tar.gz", hash = "sha256:f3dd0735f1cd4e8fbea5a3661b77f517456b5f0031a6256432533900e34b90bf"}, ] [package.dependencies] -cachetools = ">=5.5.1" +cachetools = ">=6.1" chardet = ">=5.2" colorama = ">=0.4.6" -filelock = ">=3.16.1" -packaging = ">=24.2" -platformdirs = ">=4.3.6" -pluggy = ">=1.5" -pyproject-api = ">=1.8" +filelock = ">=3.18" +packaging = ">=25" +platformdirs = ">=4.3.8" +pluggy = ">=1.6" +pyproject-api = ">=1.9.1" tomli = {version = ">=2.2.1", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.12.2", markers = "python_version < \"3.11\""} -virtualenv = ">=20.31" - -[package.extras] -test = ["devpi-process (>=1.0.2)", "pytest (>=8.3.4)", "pytest-mock (>=3.14)"] +typing-extensions = {version = ">=4.14.1", markers = "python_version < \"3.11\""} +virtualenv = ">=20.31.2" [[package]] name = "typing-extensions" -version = "4.14.0" +version = "4.15.0" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" groups = ["main", "dev", "docs"] files = [ - {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, - {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, + {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, + {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, ] markers = {main = "python_version < \"3.13\""} From dfe942bb3bc4ad95ffe63073a25e3afdf41d8209 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Thu, 2 Oct 2025 13:23:47 -0500 Subject: [PATCH 350/371] Update the pre-commit hooks again --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index dcdbbaf..1d43d39 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,18 +10,18 @@ repos: - id: check-hooks-apply - repo: https://github.com/asottile/pyupgrade - rev: v3.20.0 + rev: v3.21.2 hooks: - id: pyupgrade args: ["--py39-plus"] - repo: https://github.com/psf/black-pre-commit-mirror - rev: 25.1.0 + rev: 25.12.0 hooks: - id: black - repo: https://github.com/pycqa/isort - rev: 6.0.1 + rev: 7.0.0 hooks: - id: isort From e68384b5f1233cf22f730132c8e98d114b22d953 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 23 Jun 2025 16:01:24 -0500 Subject: [PATCH 351/371] Fix tox so that it can run The following changes are introduced: * Update the list of Python versions to test (3.9+) * Remove the now-unused `default` and `simplejson` factors * Switch to Poetry for dependency installation * Switch to running pytest to execute the test suite --- tox.ini | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tox.ini b/tox.ini index ad31b6a..af594b1 100644 --- a/tox.ini +++ b/tox.ini @@ -1,12 +1,15 @@ [tox] -envlist = {py37,py38,py39,py310}-{default,simplejson} +envlist = + py{3.9,3.10,3.11,3.12,3.13} [testenv] +skip_install = true deps = - -rrequirements.txt - -rrequirements_dev.txt + poetry +commands_pre = + poetry install --with dev commands = - python setup.py test + pytest [flake8] max-line-length = 79 From ce20871d24be77520388455867eb970646b70042 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Jan 2026 07:29:36 +0000 Subject: [PATCH 352/371] Bump urllib3 from 2.5.0 to 2.6.0 Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.5.0 to 2.6.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.5.0...2.6.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.6.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index a6a5f37..aee06b3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -1956,21 +1956,21 @@ files = [ [[package]] name = "urllib3" -version = "2.5.0" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" -groups = ["docs"] +groups = ["dev", "docs"] files = [ - {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, - {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "virtualenv" From 7c68144ac2869e359b5e92a0d9e24f8226af37f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Jan 2026 15:07:40 +0000 Subject: [PATCH 353/371] Bump pre-commit from 4.2.0 to 4.3.0 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.2.0 to 4.3.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.0) --- updated-dependencies: - dependency-name: pre-commit dependency-version: 4.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index aee06b3..fa1216f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -996,14 +996,14 @@ testing = ["coverage", "pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "4.2.0" +version = "4.3.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pre_commit-4.2.0-py2.py3-none-any.whl", hash = "sha256:a009ca7205f1eb497d10b845e52c838a98b6cdd2102a6c8e4540e94ee75c58bd"}, - {file = "pre_commit-4.2.0.tar.gz", hash = "sha256:601283b9757afd87d40c4c4a9b2b5de9637a8ea02eaff7adc2d0fb4e04841146"}, + {file = "pre_commit-4.3.0-py2.py3-none-any.whl", hash = "sha256:2b0747ad7e6e967169136edffee14c16e148a778a54e4f967921aa1ebf2308d8"}, + {file = "pre_commit-4.3.0.tar.gz", hash = "sha256:499fe450cc9d42e9d58e606262795ecb64dd05438943c62b66f6a8673da30b16"}, ] [package.dependencies] @@ -1960,7 +1960,7 @@ version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" -groups = ["dev", "docs"] +groups = ["docs"] files = [ {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, From a4710bad99ece3bcb8d328bd991c9dfdc103cc3b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jan 2026 20:01:12 +0000 Subject: [PATCH 354/371] Bump virtualenv from 20.31.2 to 20.36.1 Bumps [virtualenv](https://github.com/pypa/virtualenv) from 20.31.2 to 20.36.1. - [Release notes](https://github.com/pypa/virtualenv/releases) - [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst) - [Commits](https://github.com/pypa/virtualenv/compare/20.31.2...20.36.1) --- updated-dependencies: - dependency-name: virtualenv dependency-version: 20.36.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index aee06b3..78ece3f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -502,6 +502,7 @@ description = "A platform independent file lock." optional = false python-versions = ">=3.9" groups = ["dev"] +markers = "python_version == \"3.9\"" files = [ {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, @@ -512,6 +513,19 @@ docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3) testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] +[[package]] +name = "filelock" +version = "3.20.3" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.10" +groups = ["dev"] +markers = "python_version >= \"3.10\"" +files = [ + {file = "filelock-3.20.3-py3-none-any.whl", hash = "sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1"}, + {file = "filelock-3.20.3.tar.gz", hash = "sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1"}, +] + [[package]] name = "flake8" version = "5.0.4" @@ -1960,7 +1974,7 @@ version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" -groups = ["dev", "docs"] +groups = ["docs"] files = [ {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, @@ -1974,20 +1988,24 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "virtualenv" -version = "20.31.2" +version = "20.36.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11"}, - {file = "virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af"}, + {file = "virtualenv-20.36.1-py3-none-any.whl", hash = "sha256:575a8d6b124ef88f6f51d56d656132389f961062a9177016a50e4f507bbcc19f"}, + {file = "virtualenv-20.36.1.tar.gz", hash = "sha256:8befb5c81842c641f8ee658481e42641c68b5eab3521d8e092d18320902466ba"}, ] [package.dependencies] distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" +filelock = [ + {version = ">=3.16.1,<4", markers = "python_version < \"3.10\""}, + {version = ">=3.20.1,<4", markers = "python_version >= \"3.10\""}, +] platformdirs = ">=3.9.1,<5" +typing-extensions = {version = ">=4.13.2", markers = "python_version < \"3.11\""} [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] From 4b531488cce6d13de2afca9566780b2f5cecda32 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sun, 1 Feb 2026 14:46:34 +0000 Subject: [PATCH 355/371] Github workflows poetry version fix --- .github/workflows/build-docs.yml | 2 ++ .github/workflows/python-publish.yml | 2 ++ .github/workflows/python-test.yml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 6ff3afe..5787c00 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -19,6 +19,8 @@ jobs: - name: Set up poetry uses: Gr1N/setup-poetry@v9 + with: + poetry-version: "2.2.1" - name: Configure poetry run: poetry config virtualenvs.in-project true diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index e6b1ef5..ec45abd 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -24,6 +24,8 @@ jobs: - name: Set up poetry uses: Gr1N/setup-poetry@v9 + with: + poetry-version: "2.2.1" - name: Build run: poetry build diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index f67449c..24a03c0 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -28,6 +28,8 @@ jobs: - name: Set up poetry uses: Gr1N/setup-poetry@v9 + with: + poetry-version: "2.2.1" - name: Configure poetry run: poetry config virtualenvs.in-project true From 6c93fb1279b4aa8fe3e0522041da64398db56cd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:17:35 +0000 Subject: [PATCH 356/371] Bump python from 3.13.5-alpine to 3.14.3-alpine Bumps python from 3.13.5-alpine to 3.14.3-alpine. --- updated-dependencies: - dependency-name: python dependency-version: 3.14.3-alpine dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2d0df31..d18890c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG OPENAPI_SPEC_VALIDATOR_VERSION=0.8.0b1 -FROM python:3.13.5-alpine as builder +FROM python:3.14.3-alpine as builder ARG OPENAPI_SPEC_VALIDATOR_VERSION @@ -9,7 +9,7 @@ ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse RUN apk add --no-cache cargo RUN python -m pip wheel --wheel-dir /wheels openapi-spec-validator==${OPENAPI_SPEC_VALIDATOR_VERSION} -FROM python:3.13.5-alpine +FROM python:3.14.3-alpine ARG OPENAPI_SPEC_VALIDATOR_VERSION From d1d7be36f7bf51535ffcc216b84431aef6ecbf83 Mon Sep 17 00:00:00 2001 From: p1c2u Date: Sat, 14 Feb 2026 02:12:04 +0000 Subject: [PATCH 357/371] Benchmarks --- tests/bench/runner.py | 333 + tests/bench/specs/docker.yaml | 13852 ++ tests/bench/specs/github.yaml | 236652 ++++++++++++++++++++++++++ tests/bench/specs/kubernetes.yaml | 95912 +++++++++++ tests/bench/specs/petstore-v3.yaml | 119 + tests/bench/specs/stripe.yaml | 161621 ++++++++++++++++++ 6 files changed, 508489 insertions(+) create mode 100644 tests/bench/runner.py create mode 100644 tests/bench/specs/docker.yaml create mode 100644 tests/bench/specs/github.yaml create mode 100644 tests/bench/specs/kubernetes.yaml create mode 100644 tests/bench/specs/petstore-v3.yaml create mode 100644 tests/bench/specs/stripe.yaml diff --git a/tests/bench/runner.py b/tests/bench/runner.py new file mode 100644 index 0000000..26a9dfe --- /dev/null +++ b/tests/bench/runner.py @@ -0,0 +1,333 @@ +#!/usr/bin/env python3 +""" +Benchmark suite for openapi-spec-validator performance testing. + +Usage: + python runner.py --output results.json + python runner.py --profile # Generates profile data +""" + +import argparse +import cProfile +import gc +from io import StringIO +import json +import pstats +import statistics +import time +from dataclasses import dataclass +from functools import cached_property +from pathlib import Path +from typing import Any, Dict, Iterator, List, Optional + +from jsonschema_path import SchemaPath + +from openapi_spec_validator import validate +from openapi_spec_validator.readers import read_from_filename +from openapi_spec_validator.schemas import _FORCE_PYTHON, _FORCE_RUST +from openapi_spec_validator.shortcuts import get_validator_cls + + +@dataclass +class BenchResult: + spec_name: str + spec_version: str + spec_size_kb: float + paths_count: int + schemas_count: int + repeats: int + warmup: int + seconds: List[float] + success: bool + error: Optional[str] = None + + @cached_property + def median_s(self) -> Optional[float]: + if self.seconds: + return statistics.median(self.seconds) + return None + + @cached_property + def mean_s(self) -> Optional[float]: + if self.seconds: + return statistics.mean(self.seconds) + return None + + @cached_property + def stdev_s(self) -> Optional[float]: + if len(self.seconds) > 1: + return statistics.pstdev(self.seconds) + return None + + @cached_property + def validations_per_sec(self) -> Optional[float]: + if self.median_s: + return 1 / self.median_s + return None + + def as_dict(self) -> Dict[str, Any]: + return { + "spec_name": self.spec_name, + "spec_version": self.spec_version, + "spec_size_kb": self.spec_size_kb, + "paths_count": self.paths_count, + "schemas_count": self.schemas_count, + "repeats": self.repeats, + "warmup": self.warmup, + "seconds": self.seconds, + "median_s": self.median_s, + "mean_s": self.mean_s, + "stdev_s": self.stdev_s, + "validations_per_sec": self.validations_per_sec, + "success": self.success, + "error": self.error, + } + + +def count_paths(spec: dict) -> int: + """Count paths in OpenAPI spec.""" + return len(spec.get("paths", {})) + + +def count_schemas(spec: dict) -> int: + """Count schemas in OpenAPI spec.""" + components = spec.get("components", {}) + definitions = spec.get("definitions", {}) # OpenAPI 2.0 + return len(components.get("schemas", {})) + len(definitions) + + +def get_spec_version(spec: dict) -> str: + """Detect OpenAPI version.""" + if "openapi" in spec: + return spec["openapi"] + elif "swagger" in spec: + return spec["swagger"] + return "unknown" + + +def run_once(spec: dict) -> float: + """Run validation once and return elapsed time.""" + t0 = time.perf_counter() + cls = get_validator_cls(spec) + sp = SchemaPath.from_dict(spec) + v = cls(sp) + v.validate() + # validate(spec) + return time.perf_counter() - t0 + + +def benchmark_spec_file( + spec_path: Path, + repeats: int = 7, + warmup: int = 2, + no_gc: bool = False, +) -> BenchResult: + spec_name = spec_path.name + spec_size_kb = spec_path.stat().st_size / 1024 + spec, _ = read_from_filename(str(spec_path)) + return benchmark_spec( + spec, repeats, warmup, no_gc, + spec_name=spec_name, + spec_size_kb=spec_size_kb, + ) + + +def benchmark_spec( + spec: dict, + repeats: int = 7, + warmup: int = 2, + no_gc: bool = False, + profile: str | None = None, + spec_name: str = "spec", + spec_size_kb: float = 0, +) -> BenchResult: + """Benchmark a single OpenAPI spec.""" + try: + spec_version = get_spec_version(spec) + paths_count = count_paths(spec) + schemas_count = count_schemas(spec) + print(f"⚡ Benchmarking {spec_name} spec (version {spec_version}, {paths_count} paths, {schemas_count} schemas)...") + + if no_gc: + gc.disable() + + # Warmup + for _ in range(warmup): + run_once(spec) + + if profile: + print("\n🔬 Profiling mode enabled...") + pr = cProfile.Profile() + pr.enable() + + # Actual benchmark + seconds: List[float] = [] + for _ in range(repeats): + seconds.append(run_once(spec)) + + if profile: + pr.disable() + + # Print profile stats + s = StringIO() + ps = pstats.Stats(pr, stream=s).sort_stats('cumulative') + ps.print_stats(30) + print(s.getvalue()) + + # Save profile data + pr.dump_stats(profile) + print(f"💾 Profile data saved to {profile}") + print(f" View with: python -m pstats {profile}") + + if no_gc: + gc.enable() + + return BenchResult( + spec_name=spec_name, + spec_version=spec_version, + spec_size_kb=spec_size_kb, + paths_count=paths_count, + schemas_count=schemas_count, + repeats=repeats, + warmup=warmup, + seconds=seconds, + success=True, + ) + + except Exception as e: + return BenchResult( + spec_name=spec_name, + spec_version="unknown", + spec_size_kb=spec_size_kb, + paths_count=0, + schemas_count=0, + repeats=repeats, + warmup=warmup, + seconds=[], + success=False, + error=str(e), + ) + + +def generate_synthetic_spec(paths: int, schemas: int, version: str = "3.0.0") -> dict: + """Generate synthetic OpenAPI spec for stress testing.""" + paths_obj = {} + for i in range(paths): + paths_obj[f"/resource/{i}"] = { + "get": { + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": {"$ref": f"#/components/schemas/Schema{i % schemas}"} + } + } + } + } + } + } + + schemas_obj = {} + for i in range(schemas): + schemas_obj[f"Schema{i}"] = { + "type": "object", + "properties": { + "id": {"type": "integer"}, + "name": {"type": "string"}, + "nested": {"$ref": f"#/components/schemas/Schema{(i + 1) % schemas}"} + } + } + + return { + "openapi": version, + "info": {"title": f"Synthetic API ({paths} paths, {schemas} schemas)", "version": "1.0.0"}, + "paths": paths_obj, + "components": {"schemas": schemas_obj} + } + + +def get_synthetic_specs_iterator(configs: List[tuple[int, int, str]]) -> Iterator[dict]: + """Iterator over synthetic specs based on provided configurations.""" + for paths, schemas, size in configs: + spec = generate_synthetic_spec(paths, schemas) + yield spec, f"synthetic_{size}", 0 + + +def get_specs_iterator(spec_files: List[Path]) -> Iterator[dict]: + """Iterator over provided spec files.""" + for spec_file in spec_files: + spec, _ = read_from_filename(str(spec_file)) + yield spec, spec_file.name, spec_file.stat().st_size / 1024 + + +def main(): + parser = argparse.ArgumentParser(description="Benchmark openapi-spec-validator") + parser.add_argument("specs", type=Path, nargs='*', help="File(s) with custom specs to benchmark, otherwise use synthetic specs.") + parser.add_argument("--repeats", type=int, default=1, help="Number of benchmark repeats") + parser.add_argument("--warmup", type=int, default=0, help="Number of warmup runs") + parser.add_argument("--no-gc", action="store_true", help="Disable GC during benchmark") + parser.add_argument("--output", type=str, help="Output JSON file path") + parser.add_argument("--profile", type=str, help="Profile file path (cProfile)") + args = parser.parse_args() + + results: List[Dict[str, Any]] = [] + + print("Spec schema validator backend selection:") + print(f" Force Python: {_FORCE_PYTHON}") + print(f" Force Rust: {_FORCE_RUST}") + + # Benchmark custom specs + if args.specs: + print(f"\n🔍 Testing with custom specs {[str(spec) for spec in args.specs]}") + spec_iterator = get_specs_iterator(args.specs) + + # Synthetic specs for stress testing + else: + print("\n🔍 Testing with synthetic specs") + synthetic_configs = [ + (10, 5, "small"), + (50, 20, "medium"), + (200, 100, "large"), + (500, 250, "xlarge"), + ] + spec_iterator = get_synthetic_specs_iterator(synthetic_configs) + + # Iterate over provided specs + for spec, spec_name, spec_size_kb in spec_iterator: + result = benchmark_spec( + spec, + repeats=args.repeats, + warmup=args.warmup, + no_gc=args.no_gc, + profile=args.profile, + spec_name=spec_name, + spec_size_kb=spec_size_kb, + ) + results.append(result.as_dict()) + if result.success: + print(f" ✅ {result.median_s:.4f}s, {result.validations_per_sec:.2f} val/s") + else: + print(f" ❌ Error: {result.error}") + + # Output results + output = { + "benchmark_config": { + "repeats": args.repeats, + "warmup": args.warmup, + "no_gc": args.no_gc, + }, + "results": results, + } + + print(f"\n📊 Summary: {len(results)} specs benchmarked") + print(json.dumps(output, indent=2)) + + if args.output: + with open(args.output, "w") as f: + json.dump(output, f, indent=2) + print(f"\n💾 Results saved to {args.output}") + + +if __name__ == "__main__": + main() diff --git a/tests/bench/specs/docker.yaml b/tests/bench/specs/docker.yaml new file mode 100644 index 0000000..361d3f9 --- /dev/null +++ b/tests/bench/specs/docker.yaml @@ -0,0 +1,13852 @@ +# A Swagger 2.0 (a.k.a. OpenAPI) definition of the Engine API. +# +# This is used for generating API documentation and the types used by the +# client/server. See api/README.md for more information. +# +# Some style notes: +# - This file is used by ReDoc, which allows GitHub Flavored Markdown in +# descriptions. +# - There is no maximum line length, for ease of editing and pretty diffs. +# - operationIds are in the format "NounVerb", with a singular noun. + +swagger: "2.0" +schemes: + - "http" + - "https" +produces: + - "application/json" + - "text/plain" +consumes: + - "application/json" + - "text/plain" +basePath: "/v1.53" +info: + title: "Docker Engine API" + version: "1.53" + x-logo: + url: "https://docs.docker.com/assets/images/logo-docker-main.png" + description: | + The Engine API is an HTTP API served by Docker Engine. It is the API the + Docker client uses to communicate with the Engine, so everything the Docker + client can do can be done with the API. + + Most of the client's commands map directly to API endpoints (e.g. `docker ps` + is `GET /containers/json`). The notable exception is running containers, + which consists of several API calls. + + # Errors + + The API uses standard HTTP status codes to indicate the success or failure + of the API call. The body of the response will be JSON in the following + format: + + ``` + { + "message": "page not found" + } + ``` + + # Versioning + + The API is usually changed in each release, so API calls are versioned to + ensure that clients don't break. To lock to a specific version of the API, + you prefix the URL with its version, for example, call `/v1.30/info` to use + the v1.30 version of the `/info` endpoint. If the API version specified in + the URL is not supported by the daemon, a HTTP `400 Bad Request` error message + is returned. + + If you omit the version-prefix, the current version of the API (v1.50) is used. + For example, calling `/info` is the same as calling `/v1.52/info`. Using the + API without a version-prefix is deprecated and will be removed in a future release. + + Engine releases in the near future should support this version of the API, + so your client will continue to work even if it is talking to a newer Engine. + + The API uses an open schema model, which means the server may add extra properties + to responses. Likewise, the server will ignore any extra query parameters and + request body properties. When you write clients, you need to ignore additional + properties in responses to ensure they do not break when talking to newer + daemons. + + + # Authentication + + Authentication for registries is handled client side. The client has to send + authentication details to various endpoints that need to communicate with + registries, such as `POST /images/(name)/push`. These are sent as + `X-Registry-Auth` header as a [base64url encoded](https://tools.ietf.org/html/rfc4648#section-5) + (JSON) string with the following structure: + + ``` + { + "username": "string", + "password": "string", + "serveraddress": "string" + } + ``` + + The `serveraddress` is a domain/IP without a protocol. Throughout this + structure, double quotes are required. + + If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth), + you can just pass this instead of credentials: + + ``` + { + "identitytoken": "9cbaf023786cd7..." + } + ``` + +# The tags on paths define the menu sections in the ReDoc documentation, so +# the usage of tags must make sense for that: +# - They should be singular, not plural. +# - There should not be too many tags, or the menu becomes unwieldy. For +# example, it is preferable to add a path to the "System" tag instead of +# creating a tag with a single path in it. +# - The order of tags in this list defines the order in the menu. +tags: + # Primary objects + - name: "Container" + x-displayName: "Containers" + description: | + Create and manage containers. + - name: "Image" + x-displayName: "Images" + - name: "Network" + x-displayName: "Networks" + description: | + Networks are user-defined networks that containers can be attached to. + See the [networking documentation](https://docs.docker.com/network/) + for more information. + - name: "Volume" + x-displayName: "Volumes" + description: | + Create and manage persistent storage that can be attached to containers. + - name: "Exec" + x-displayName: "Exec" + description: | + Run new commands inside running containers. Refer to the + [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) + for more information. + + To exec a command in a container, you first need to create an exec instance, + then start it. These two API endpoints are wrapped up in a single command-line + command, `docker exec`. + + # Swarm things + - name: "Swarm" + x-displayName: "Swarm" + description: | + Engines can be clustered together in a swarm. Refer to the + [swarm mode documentation](https://docs.docker.com/engine/swarm/) + for more information. + - name: "Node" + x-displayName: "Nodes" + description: | + Nodes are instances of the Engine participating in a swarm. Swarm mode + must be enabled for these endpoints to work. + - name: "Service" + x-displayName: "Services" + description: | + Services are the definitions of tasks to run on a swarm. Swarm mode must + be enabled for these endpoints to work. + - name: "Task" + x-displayName: "Tasks" + description: | + A task is a container running on a swarm. It is the atomic scheduling unit + of swarm. Swarm mode must be enabled for these endpoints to work. + - name: "Secret" + x-displayName: "Secrets" + description: | + Secrets are sensitive data that can be used by services. Swarm mode must + be enabled for these endpoints to work. + - name: "Config" + x-displayName: "Configs" + description: | + Configs are application configurations that can be used by services. Swarm + mode must be enabled for these endpoints to work. + # System things + - name: "Plugin" + x-displayName: "Plugins" + - name: "System" + x-displayName: "System" + +definitions: + ImageHistoryResponseItem: + type: "object" + x-go-name: HistoryResponseItem + title: "HistoryResponseItem" + description: "individual image layer information in response to ImageHistory operation" + required: [Id, Created, CreatedBy, Tags, Size, Comment] + properties: + Id: + type: "string" + x-nullable: false + Created: + type: "integer" + format: "int64" + x-nullable: false + CreatedBy: + type: "string" + x-nullable: false + Tags: + type: "array" + items: + type: "string" + Size: + type: "integer" + format: "int64" + x-nullable: false + Comment: + type: "string" + x-nullable: false + PortSummary: + type: "object" + description: | + Describes a port-mapping between the container and the host. + required: [PrivatePort, Type] + properties: + IP: + type: "string" + format: "ip-address" + description: "Host IP address that the container's port is mapped to" + x-go-type: + type: Addr + import: + package: net/netip + PrivatePort: + type: "integer" + format: "uint16" + x-nullable: false + description: "Port on the container" + PublicPort: + type: "integer" + format: "uint16" + description: "Port exposed on the host" + Type: + type: "string" + x-nullable: false + enum: ["tcp", "udp", "sctp"] + example: + PrivatePort: 8080 + PublicPort: 80 + Type: "tcp" + + MountType: + description: |- + The mount type. Available types: + + - `bind` a mount of a file or directory from the host into the container. + - `cluster` a Swarm cluster volume. + - `image` an OCI image. + - `npipe` a named pipe from the host into the container. + - `tmpfs` a `tmpfs`. + - `volume` a docker volume with the given `Name`. + type: "string" + enum: + - "bind" + - "cluster" + - "image" + - "npipe" + - "tmpfs" + - "volume" + example: "volume" + + MountPoint: + type: "object" + description: | + MountPoint represents a mount point configuration inside the container. + This is used for reporting the mountpoints in use by a container. + properties: + Type: + description: | + The mount type: + + - `bind` a mount of a file or directory from the host into the container. + - `cluster` a Swarm cluster volume. + - `image` an OCI image. + - `npipe` a named pipe from the host into the container. + - `tmpfs` a `tmpfs`. + - `volume` a docker volume with the given `Name`. + allOf: + - $ref: "#/definitions/MountType" + example: "volume" + Name: + description: | + Name is the name reference to the underlying data defined by `Source` + e.g., the volume name. + type: "string" + example: "myvolume" + Source: + description: | + Source location of the mount. + + For volumes, this contains the storage location of the volume (within + `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains + the source (host) part of the bind-mount. For `tmpfs` mount points, this + field is empty. + type: "string" + example: "/var/lib/docker/volumes/myvolume/_data" + Destination: + description: | + Destination is the path relative to the container root (`/`) where + the `Source` is mounted inside the container. + type: "string" + example: "/usr/share/nginx/html/" + Driver: + description: | + Driver is the volume driver used to create the volume (if it is a volume). + type: "string" + example: "local" + Mode: + description: | + Mode is a comma separated list of options supplied by the user when + creating the bind/volume mount. + + The default is platform-specific (`"z"` on Linux, empty on Windows). + type: "string" + example: "z" + RW: + description: | + Whether the mount is mounted writable (read-write). + type: "boolean" + example: true + Propagation: + description: | + Propagation describes how mounts are propagated from the host into the + mount point, and vice-versa. Refer to the [Linux kernel documentation](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt) + for details. This field is not used on Windows. + type: "string" + example: "" + + DeviceMapping: + type: "object" + description: "A device mapping between the host and container" + properties: + PathOnHost: + type: "string" + PathInContainer: + type: "string" + CgroupPermissions: + type: "string" + example: + PathOnHost: "/dev/deviceName" + PathInContainer: "/dev/deviceName" + CgroupPermissions: "mrw" + + DeviceRequest: + type: "object" + description: "A request for devices to be sent to device drivers" + properties: + Driver: + description: | + The name of the device driver to use for this request. + + Note that if this is specified the capabilities are ignored when + selecting a device driver. + type: "string" + example: "nvidia" + Count: + type: "integer" + example: -1 + DeviceIDs: + type: "array" + items: + type: "string" + example: + - "0" + - "1" + - "GPU-fef8089b-4820-abfc-e83e-94318197576e" + Capabilities: + description: | + A list of capabilities; an OR list of AND lists of capabilities. + + Note that if a driver is specified the capabilities have no effect on + selecting a driver as the driver name is used directly. + + Note that if no driver is specified the capabilities are used to + select a driver with the required capabilities. + type: "array" + items: + type: "array" + items: + type: "string" + example: + # gpu AND nvidia AND compute + - ["gpu", "nvidia", "compute"] + Options: + description: | + Driver-specific options, specified as a key/value pairs. These options + are passed directly to the driver. + type: "object" + additionalProperties: + type: "string" + + ThrottleDevice: + type: "object" + properties: + Path: + description: "Device path" + type: "string" + Rate: + description: "Rate" + type: "integer" + format: "int64" + minimum: 0 + + Mount: + type: "object" + properties: + Target: + description: "Container path." + type: "string" + Source: + description: |- + Mount source (e.g. a volume name, a host path). The source cannot be + specified when using `Type=tmpfs`. For `Type=bind`, the source path + must either exist, or the `CreateMountpoint` must be set to `true` to + create the source path on the host if missing. + + For `Type=npipe`, the pipe must exist prior to creating the container. + type: "string" + Type: + description: | + The mount type. Available types: + + - `bind` Mounts a file or directory from the host into the container. The `Source` must exist prior to creating the container. + - `cluster` a Swarm cluster volume + - `image` Mounts an image. + - `npipe` Mounts a named pipe from the host into the container. The `Source` must exist prior to creating the container. + - `tmpfs` Create a tmpfs with the given options. The mount `Source` cannot be specified for tmpfs. + - `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed. + allOf: + - $ref: "#/definitions/MountType" + ReadOnly: + description: "Whether the mount should be read-only." + type: "boolean" + Consistency: + description: "The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`." + type: "string" + BindOptions: + description: "Optional configuration for the `bind` type." + type: "object" + properties: + Propagation: + description: "A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`." + type: "string" + enum: + - "private" + - "rprivate" + - "shared" + - "rshared" + - "slave" + - "rslave" + NonRecursive: + description: "Disable recursive bind mount." + type: "boolean" + default: false + CreateMountpoint: + description: "Create mount point on host if missing" + type: "boolean" + default: false + ReadOnlyNonRecursive: + description: | + Make the mount non-recursively read-only, but still leave the mount recursive + (unless NonRecursive is set to `true` in conjunction). + + Added in v1.44, before that version all read-only mounts were + non-recursive by default. To match the previous behaviour this + will default to `true` for clients on versions prior to v1.44. + type: "boolean" + default: false + ReadOnlyForceRecursive: + description: "Raise an error if the mount cannot be made recursively read-only." + type: "boolean" + default: false + VolumeOptions: + description: "Optional configuration for the `volume` type." + type: "object" + properties: + NoCopy: + description: "Populate volume with data from the target." + type: "boolean" + default: false + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + DriverConfig: + description: "Map of driver specific options" + type: "object" + properties: + Name: + description: "Name of the driver to use to create the volume." + type: "string" + Options: + description: "key/value map of driver specific options." + type: "object" + additionalProperties: + type: "string" + Subpath: + description: "Source path inside the volume. Must be relative without any back traversals." + type: "string" + example: "dir-inside-volume/subdirectory" + ImageOptions: + description: "Optional configuration for the `image` type." + type: "object" + properties: + Subpath: + description: "Source path inside the image. Must be relative without any back traversals." + type: "string" + example: "dir-inside-image/subdirectory" + TmpfsOptions: + description: "Optional configuration for the `tmpfs` type." + type: "object" + properties: + SizeBytes: + description: "The size for the tmpfs mount in bytes." + type: "integer" + format: "int64" + Mode: + description: | + The permission mode for the tmpfs mount in an integer. + The value must not be in octal format (e.g. 755) but rather + the decimal representation of the octal value (e.g. 493). + type: "integer" + Options: + description: | + The options to be passed to the tmpfs mount. An array of arrays. + Flag options should be provided as 1-length arrays. Other types + should be provided as as 2-length arrays, where the first item is + the key and the second the value. + type: "array" + items: + type: "array" + minItems: 1 + maxItems: 2 + items: + type: "string" + example: + [["noexec"]] + + RestartPolicy: + description: | + The behavior to apply when the container exits. The default is not to + restart. + + An ever increasing delay (double the previous delay, starting at 100ms) is + added before each restart to prevent flooding the server. + type: "object" + properties: + Name: + type: "string" + description: | + - Empty string means not to restart + - `no` Do not automatically restart + - `always` Always restart + - `unless-stopped` Restart always except when the user has manually stopped the container + - `on-failure` Restart only when the container exit code is non-zero + enum: + - "" + - "no" + - "always" + - "unless-stopped" + - "on-failure" + MaximumRetryCount: + type: "integer" + description: | + If `on-failure` is used, the number of times to retry before giving up. + + Resources: + description: "A container's resources (cgroups config, ulimits, etc)" + type: "object" + properties: + # Applicable to all platforms + CpuShares: + description: | + An integer value representing this container's relative CPU weight + versus other containers. + type: "integer" + Memory: + description: "Memory limit in bytes." + type: "integer" + format: "int64" + default: 0 + # Applicable to UNIX platforms + CgroupParent: + description: | + Path to `cgroups` under which the container's `cgroup` is created. If + the path is not absolute, the path is considered to be relative to the + `cgroups` path of the init process. Cgroups are created if they do not + already exist. + type: "string" + BlkioWeight: + description: "Block IO weight (relative weight)." + type: "integer" + minimum: 0 + maximum: 1000 + BlkioWeightDevice: + description: | + Block IO weight (relative device weight) in the form: + + ``` + [{"Path": "device_path", "Weight": weight}] + ``` + type: "array" + items: + type: "object" + properties: + Path: + type: "string" + Weight: + type: "integer" + minimum: 0 + BlkioDeviceReadBps: + description: | + Limit read rate (bytes per second) from a device, in the form: + + ``` + [{"Path": "device_path", "Rate": rate}] + ``` + type: "array" + items: + $ref: "#/definitions/ThrottleDevice" + BlkioDeviceWriteBps: + description: | + Limit write rate (bytes per second) to a device, in the form: + + ``` + [{"Path": "device_path", "Rate": rate}] + ``` + type: "array" + items: + $ref: "#/definitions/ThrottleDevice" + BlkioDeviceReadIOps: + description: | + Limit read rate (IO per second) from a device, in the form: + + ``` + [{"Path": "device_path", "Rate": rate}] + ``` + type: "array" + items: + $ref: "#/definitions/ThrottleDevice" + BlkioDeviceWriteIOps: + description: | + Limit write rate (IO per second) to a device, in the form: + + ``` + [{"Path": "device_path", "Rate": rate}] + ``` + type: "array" + items: + $ref: "#/definitions/ThrottleDevice" + CpuPeriod: + description: "The length of a CPU period in microseconds." + type: "integer" + format: "int64" + CpuQuota: + description: | + Microseconds of CPU time that the container can get in a CPU period. + type: "integer" + format: "int64" + CpuRealtimePeriod: + description: | + The length of a CPU real-time period in microseconds. Set to 0 to + allocate no time allocated to real-time tasks. + type: "integer" + format: "int64" + CpuRealtimeRuntime: + description: | + The length of a CPU real-time runtime in microseconds. Set to 0 to + allocate no time allocated to real-time tasks. + type: "integer" + format: "int64" + CpusetCpus: + description: | + CPUs in which to allow execution (e.g., `0-3`, `0,1`). + type: "string" + example: "0-3" + CpusetMems: + description: | + Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only + effective on NUMA systems. + type: "string" + Devices: + description: "A list of devices to add to the container." + type: "array" + items: + $ref: "#/definitions/DeviceMapping" + DeviceCgroupRules: + description: "a list of cgroup rules to apply to the container" + type: "array" + items: + type: "string" + example: "c 13:* rwm" + DeviceRequests: + description: | + A list of requests for devices to be sent to device drivers. + type: "array" + items: + $ref: "#/definitions/DeviceRequest" + MemoryReservation: + description: "Memory soft limit in bytes." + type: "integer" + format: "int64" + MemorySwap: + description: | + Total memory limit (memory + swap). Set as `-1` to enable unlimited + swap. + type: "integer" + format: "int64" + MemorySwappiness: + description: | + Tune a container's memory swappiness behavior. Accepts an integer + between 0 and 100. + type: "integer" + format: "int64" + minimum: 0 + maximum: 100 + NanoCpus: + description: "CPU quota in units of 10-9 CPUs." + type: "integer" + format: "int64" + OomKillDisable: + description: "Disable OOM Killer for the container." + type: "boolean" + Init: + description: | + Run an init inside the container that forwards signals and reaps + processes. This field is omitted if empty, and the default (as + configured on the daemon) is used. + type: "boolean" + x-nullable: true + PidsLimit: + description: | + Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null` + to not change. + type: "integer" + format: "int64" + x-nullable: true + Ulimits: + description: | + A list of resource limits to set in the container. For example: + + ``` + {"Name": "nofile", "Soft": 1024, "Hard": 2048} + ``` + type: "array" + items: + type: "object" + properties: + Name: + description: "Name of ulimit" + type: "string" + Soft: + description: "Soft limit" + type: "integer" + Hard: + description: "Hard limit" + type: "integer" + # Applicable to Windows + CpuCount: + description: | + The number of usable CPUs (Windows only). + + On Windows Server containers, the processor resource controls are + mutually exclusive. The order of precedence is `CPUCount` first, then + `CPUShares`, and `CPUPercent` last. + type: "integer" + format: "int64" + CpuPercent: + description: | + The usable percentage of the available CPUs (Windows only). + + On Windows Server containers, the processor resource controls are + mutually exclusive. The order of precedence is `CPUCount` first, then + `CPUShares`, and `CPUPercent` last. + type: "integer" + format: "int64" + IOMaximumIOps: + description: "Maximum IOps for the container system drive (Windows only)" + type: "integer" + format: "int64" + IOMaximumBandwidth: + description: | + Maximum IO in bytes per second for the container system drive + (Windows only). + type: "integer" + format: "int64" + + Limit: + description: | + An object describing a limit on resources which can be requested by a task. + type: "object" + properties: + NanoCPUs: + type: "integer" + format: "int64" + example: 4000000000 + MemoryBytes: + type: "integer" + format: "int64" + example: 8272408576 + Pids: + description: | + Limits the maximum number of PIDs in the container. Set `0` for unlimited. + type: "integer" + format: "int64" + default: 0 + example: 100 + + ResourceObject: + description: | + An object describing the resources which can be advertised by a node and + requested by a task. + type: "object" + properties: + NanoCPUs: + type: "integer" + format: "int64" + example: 4000000000 + MemoryBytes: + type: "integer" + format: "int64" + example: 8272408576 + GenericResources: + $ref: "#/definitions/GenericResources" + + GenericResources: + description: | + User-defined resources can be either Integer resources (e.g, `SSD=3`) or + String resources (e.g, `GPU=UUID1`). + type: "array" + items: + type: "object" + properties: + NamedResourceSpec: + type: "object" + properties: + Kind: + type: "string" + Value: + type: "string" + DiscreteResourceSpec: + type: "object" + properties: + Kind: + type: "string" + Value: + type: "integer" + format: "int64" + example: + - DiscreteResourceSpec: + Kind: "SSD" + Value: 3 + - NamedResourceSpec: + Kind: "GPU" + Value: "UUID1" + - NamedResourceSpec: + Kind: "GPU" + Value: "UUID2" + + HealthConfig: + description: | + A test to perform to check that the container is healthy. + Healthcheck commands should be side-effect free. + type: "object" + properties: + Test: + description: | + The test to perform. Possible values are: + + - `[]` inherit healthcheck from image or parent image + - `["NONE"]` disable healthcheck + - `["CMD", args...]` exec arguments directly + - `["CMD-SHELL", command]` run command with system's default shell + + A non-zero exit code indicates a failed healthcheck: + - `0` healthy + - `1` unhealthy + - `2` reserved (treated as unhealthy) + - other values: error running probe + type: "array" + items: + type: "string" + Interval: + description: | + The time to wait between checks in nanoseconds. It should be 0 or at + least 1000000 (1 ms). 0 means inherit. + type: "integer" + format: "int64" + Timeout: + description: | + The time to wait before considering the check to have hung. It should + be 0 or at least 1000000 (1 ms). 0 means inherit. + + If the health check command does not complete within this timeout, + the check is considered failed and the health check process is + forcibly terminated without a graceful shutdown. + type: "integer" + format: "int64" + Retries: + description: | + The number of consecutive failures needed to consider a container as + unhealthy. 0 means inherit. + type: "integer" + StartPeriod: + description: | + Start period for the container to initialize before starting + health-retries countdown in nanoseconds. It should be 0 or at least + 1000000 (1 ms). 0 means inherit. + type: "integer" + format: "int64" + StartInterval: + description: | + The time to wait between checks in nanoseconds during the start period. + It should be 0 or at least 1000000 (1 ms). 0 means inherit. + type: "integer" + format: "int64" + + Health: + description: | + Health stores information about the container's healthcheck results. + type: "object" + x-nullable: true + properties: + Status: + description: | + Status is one of `none`, `starting`, `healthy` or `unhealthy` + + - "none" Indicates there is no healthcheck + - "starting" Starting indicates that the container is not yet ready + - "healthy" Healthy indicates that the container is running correctly + - "unhealthy" Unhealthy indicates that the container has a problem + type: "string" + enum: + - "none" + - "starting" + - "healthy" + - "unhealthy" + example: "healthy" + FailingStreak: + description: "FailingStreak is the number of consecutive failures" + type: "integer" + example: 0 + Log: + type: "array" + description: | + Log contains the last few results (oldest first) + items: + $ref: "#/definitions/HealthcheckResult" + + HealthcheckResult: + description: | + HealthcheckResult stores information about a single run of a healthcheck probe + type: "object" + x-nullable: true + properties: + Start: + description: | + Date and time at which this check started in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "date-time" + example: "2020-01-04T10:44:24.496525531Z" + End: + description: | + Date and time at which this check ended in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + example: "2020-01-04T10:45:21.364524523Z" + ExitCode: + description: | + ExitCode meanings: + + - `0` healthy + - `1` unhealthy + - `2` reserved (considered unhealthy) + - other values: error running probe + type: "integer" + example: 0 + Output: + description: "Output from last check" + type: "string" + + HostConfig: + description: "Container configuration that depends on the host we are running on" + allOf: + - $ref: "#/definitions/Resources" + - type: "object" + properties: + # Applicable to all platforms + Binds: + type: "array" + description: | + A list of volume bindings for this container. Each volume binding + is a string in one of these forms: + + - `host-src:container-dest[:options]` to bind-mount a host path + into the container. Both `host-src`, and `container-dest` must + be an _absolute_ path. + - `volume-name:container-dest[:options]` to bind-mount a volume + managed by a volume driver into the container. `container-dest` + must be an _absolute_ path. + + `options` is an optional, comma-delimited list of: + + - `nocopy` disables automatic copying of data from the container + path to the volume. The `nocopy` flag only applies to named volumes. + - `[ro|rw]` mounts a volume read-only or read-write, respectively. + If omitted or set to `rw`, volumes are mounted read-write. + - `[z|Z]` applies SELinux labels to allow or deny multiple containers + to read and write to the same volume. + - `z`: a _shared_ content label is applied to the content. This + label indicates that multiple containers can share the volume + content, for both reading and writing. + - `Z`: a _private unshared_ label is applied to the content. + This label indicates that only the current container can use + a private volume. Labeling systems such as SELinux require + proper labels to be placed on volume content that is mounted + into a container. Without a label, the security system can + prevent a container's processes from using the content. By + default, the labels set by the host operating system are not + modified. + - `[[r]shared|[r]slave|[r]private]` specifies mount + [propagation behavior](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt). + This only applies to bind-mounted volumes, not internal volumes + or named volumes. Mount propagation requires the source mount + point (the location where the source directory is mounted in the + host operating system) to have the correct propagation properties. + For shared volumes, the source mount point must be set to `shared`. + For slave volumes, the mount must be set to either `shared` or + `slave`. + items: + type: "string" + ContainerIDFile: + type: "string" + description: "Path to a file where the container ID is written" + example: "" + LogConfig: + type: "object" + description: "The logging configuration for this container" + properties: + Type: + description: |- + Name of the logging driver used for the container or "none" + if logging is disabled. + type: "string" + enum: + - "local" + - "json-file" + - "syslog" + - "journald" + - "gelf" + - "fluentd" + - "awslogs" + - "splunk" + - "etwlogs" + - "none" + Config: + description: |- + Driver-specific configuration options for the logging driver. + type: "object" + additionalProperties: + type: "string" + example: + "max-file": "5" + "max-size": "10m" + NetworkMode: + type: "string" + description: | + Network mode to use for this container. Supported standard values + are: `bridge`, `host`, `none`, and `container:`. Any + other value is taken as a custom network's name to which this + container should connect to. + PortBindings: + $ref: "#/definitions/PortMap" + RestartPolicy: + $ref: "#/definitions/RestartPolicy" + AutoRemove: + type: "boolean" + description: | + Automatically remove the container when the container's process + exits. This has no effect if `RestartPolicy` is set. + VolumeDriver: + type: "string" + description: "Driver that this container uses to mount volumes." + VolumesFrom: + type: "array" + description: | + A list of volumes to inherit from another container, specified in + the form `[:]`. + items: + type: "string" + Mounts: + description: | + Specification for mounts to be added to the container. + type: "array" + items: + $ref: "#/definitions/Mount" + ConsoleSize: + type: "array" + description: | + Initial console size, as an `[height, width]` array. + x-nullable: true + minItems: 2 + maxItems: 2 + items: + type: "integer" + minimum: 0 + example: [80, 64] + Annotations: + type: "object" + description: | + Arbitrary non-identifying metadata attached to container and + provided to the runtime when the container is started. + additionalProperties: + type: "string" + + # Applicable to UNIX platforms + CapAdd: + type: "array" + description: | + A list of kernel capabilities to add to the container. Conflicts + with option 'Capabilities'. + items: + type: "string" + CapDrop: + type: "array" + description: | + A list of kernel capabilities to drop from the container. Conflicts + with option 'Capabilities'. + items: + type: "string" + CgroupnsMode: + type: "string" + enum: + - "private" + - "host" + description: | + cgroup namespace mode for the container. Possible values are: + + - `"private"`: the container runs in its own private cgroup namespace + - `"host"`: use the host system's cgroup namespace + + If not specified, the daemon default is used, which can either be `"private"` + or `"host"`, depending on daemon version, kernel support and configuration. + Dns: + type: "array" + description: "A list of DNS servers for the container to use." + items: + type: "string" + format: "ip-address" + x-go-type: + type: Addr + import: + package: net/netip + DnsOptions: + type: "array" + description: "A list of DNS options." + items: + type: "string" + DnsSearch: + type: "array" + description: "A list of DNS search domains." + items: + type: "string" + ExtraHosts: + type: "array" + description: | + A list of hostnames/IP mappings to add to the container's `/etc/hosts` + file. Specified in the form `["hostname:IP"]`. + items: + type: "string" + GroupAdd: + type: "array" + description: | + A list of additional groups that the container process will run as. + items: + type: "string" + IpcMode: + type: "string" + description: | + IPC sharing mode for the container. Possible values are: + + - `"none"`: own private IPC namespace, with /dev/shm not mounted + - `"private"`: own private IPC namespace + - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers + - `"container:"`: join another (shareable) container's IPC namespace + - `"host"`: use the host system's IPC namespace + + If not specified, daemon default is used, which can either be `"private"` + or `"shareable"`, depending on daemon version and configuration. + Cgroup: + type: "string" + description: "Cgroup to use for the container." + Links: + type: "array" + description: | + A list of links for the container in the form `container_name:alias`. + items: + type: "string" + OomScoreAdj: + type: "integer" + description: | + An integer value containing the score given to the container in + order to tune OOM killer preferences. + example: 500 + PidMode: + type: "string" + description: | + Set the PID (Process) Namespace mode for the container. It can be + either: + + - `"container:"`: joins another container's PID namespace + - `"host"`: use the host's PID namespace inside the container + Privileged: + type: "boolean" + description: |- + Gives the container full access to the host. + PublishAllPorts: + type: "boolean" + description: | + Allocates an ephemeral host port for all of a container's + exposed ports. + + Ports are de-allocated when the container stops and allocated when + the container starts. The allocated port might be changed when + restarting the container. + + The port is selected from the ephemeral port range that depends on + the kernel. For example, on Linux the range is defined by + `/proc/sys/net/ipv4/ip_local_port_range`. + ReadonlyRootfs: + type: "boolean" + description: "Mount the container's root filesystem as read only." + SecurityOpt: + type: "array" + description: | + A list of string values to customize labels for MLS systems, such + as SELinux. + items: + type: "string" + StorageOpt: + type: "object" + description: | + Storage driver options for this container, in the form `{"size": "120G"}`. + additionalProperties: + type: "string" + Tmpfs: + type: "object" + description: | + A map of container directories which should be replaced by tmpfs + mounts, and their corresponding mount options. For example: + + ``` + { "/run": "rw,noexec,nosuid,size=65536k" } + ``` + additionalProperties: + type: "string" + UTSMode: + type: "string" + description: "UTS namespace to use for the container." + UsernsMode: + type: "string" + description: | + Sets the usernamespace mode for the container when usernamespace + remapping option is enabled. + ShmSize: + type: "integer" + format: "int64" + description: | + Size of `/dev/shm` in bytes. If omitted, the system uses 64MB. + minimum: 0 + Sysctls: + type: "object" + x-nullable: true + description: |- + A list of kernel parameters (sysctls) to set in the container. + + This field is omitted if not set. + additionalProperties: + type: "string" + example: + "net.ipv4.ip_forward": "1" + Runtime: + type: "string" + x-nullable: true + description: |- + Runtime to use with this container. + # Applicable to Windows + Isolation: + type: "string" + description: | + Isolation technology of the container. (Windows only) + enum: + - "default" + - "process" + - "hyperv" + - "" + MaskedPaths: + type: "array" + description: | + The list of paths to be masked inside the container (this overrides + the default set of paths). + items: + type: "string" + example: + - "/proc/asound" + - "/proc/acpi" + - "/proc/kcore" + - "/proc/keys" + - "/proc/latency_stats" + - "/proc/timer_list" + - "/proc/timer_stats" + - "/proc/sched_debug" + - "/proc/scsi" + - "/sys/firmware" + - "/sys/devices/virtual/powercap" + ReadonlyPaths: + type: "array" + description: | + The list of paths to be set as read-only inside the container + (this overrides the default set of paths). + items: + type: "string" + example: + - "/proc/bus" + - "/proc/fs" + - "/proc/irq" + - "/proc/sys" + - "/proc/sysrq-trigger" + + ContainerConfig: + description: | + Configuration for a container that is portable between hosts. + type: "object" + properties: + Hostname: + description: | + The hostname to use for the container, as a valid RFC 1123 hostname. + type: "string" + example: "439f4e91bd1d" + Domainname: + description: | + The domain name to use for the container. + type: "string" + User: + description: |- + Commands run as this user inside the container. If omitted, commands + run as the user specified in the image the container was started from. + + Can be either user-name or UID, and optional group-name or GID, + separated by a colon (`[<:group-name|GID>]`). + type: "string" + example: "123:456" + AttachStdin: + description: "Whether to attach to `stdin`." + type: "boolean" + default: false + AttachStdout: + description: "Whether to attach to `stdout`." + type: "boolean" + default: true + AttachStderr: + description: "Whether to attach to `stderr`." + type: "boolean" + default: true + ExposedPorts: + description: | + An object mapping ports to an empty object in the form: + + `{"/": {}}` + type: "object" + x-nullable: true + additionalProperties: + type: "object" + enum: + - {} + default: {} + example: { + "80/tcp": {}, + "443/tcp": {} + } + Tty: + description: | + Attach standard streams to a TTY, including `stdin` if it is not closed. + type: "boolean" + default: false + OpenStdin: + description: "Open `stdin`" + type: "boolean" + default: false + StdinOnce: + description: "Close `stdin` after one attached client disconnects" + type: "boolean" + default: false + Env: + description: | + A list of environment variables to set inside the container in the + form `["VAR=value", ...]`. A variable without `=` is removed from the + environment, rather than to have an empty value. + type: "array" + items: + type: "string" + example: + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + Cmd: + description: | + Command to run specified as a string or an array of strings. + type: "array" + items: + type: "string" + example: ["/bin/sh"] + Healthcheck: + $ref: "#/definitions/HealthConfig" + ArgsEscaped: + description: "Command is already escaped (Windows only)" + type: "boolean" + default: false + example: false + x-nullable: true + Image: + description: | + The name (or reference) of the image to use when creating the container, + or which was used when the container was created. + type: "string" + example: "example-image:1.0" + Volumes: + description: | + An object mapping mount point paths inside the container to empty + objects. + type: "object" + additionalProperties: + type: "object" + enum: + - {} + default: {} + WorkingDir: + description: "The working directory for commands to run in." + type: "string" + example: "/public/" + Entrypoint: + description: | + The entry point for the container as a string or an array of strings. + + If the array consists of exactly one empty string (`[""]`) then the + entry point is reset to system default (i.e., the entry point used by + docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`). + type: "array" + items: + type: "string" + example: [] + NetworkDisabled: + description: "Disable networking for the container." + type: "boolean" + x-nullable: true + OnBuild: + description: | + `ONBUILD` metadata that were defined in the image's `Dockerfile`. + type: "array" + x-nullable: true + items: + type: "string" + example: [] + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + StopSignal: + description: | + Signal to stop a container as a string or unsigned integer. + type: "string" + example: "SIGTERM" + x-nullable: true + StopTimeout: + description: "Timeout to stop a container in seconds." + type: "integer" + default: 10 + x-nullable: true + Shell: + description: | + Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell. + type: "array" + x-nullable: true + items: + type: "string" + example: ["/bin/sh", "-c"] + + ImageConfig: + description: | + Configuration of the image. These fields are used as defaults + when starting a container from the image. + type: "object" + properties: + User: + description: "The user that commands are run as inside the container." + type: "string" + example: "web:web" + ExposedPorts: + description: | + An object mapping ports to an empty object in the form: + + `{"/": {}}` + type: "object" + x-nullable: true + additionalProperties: + type: "object" + enum: + - {} + default: {} + example: { + "80/tcp": {}, + "443/tcp": {} + } + Env: + description: | + A list of environment variables to set inside the container in the + form `["VAR=value", ...]`. A variable without `=` is removed from the + environment, rather than to have an empty value. + type: "array" + items: + type: "string" + example: + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + Cmd: + description: | + Command to run specified as a string or an array of strings. + type: "array" + items: + type: "string" + example: ["/bin/sh"] + Healthcheck: + $ref: "#/definitions/HealthConfig" + ArgsEscaped: + description: "Command is already escaped (Windows only)" + type: "boolean" + default: false + example: false + x-nullable: true + Volumes: + description: | + An object mapping mount point paths inside the container to empty + objects. + type: "object" + additionalProperties: + type: "object" + enum: + - {} + default: {} + example: + "/app/data": {} + "/app/config": {} + WorkingDir: + description: "The working directory for commands to run in." + type: "string" + example: "/public/" + Entrypoint: + description: | + The entry point for the container as a string or an array of strings. + + If the array consists of exactly one empty string (`[""]`) then the + entry point is reset to system default (i.e., the entry point used by + docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`). + type: "array" + items: + type: "string" + example: [] + OnBuild: + description: | + `ONBUILD` metadata that were defined in the image's `Dockerfile`. + type: "array" + x-nullable: true + items: + type: "string" + example: [] + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + StopSignal: + description: | + Signal to stop a container as a string or unsigned integer. + type: "string" + example: "SIGTERM" + x-nullable: true + Shell: + description: | + Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell. + type: "array" + x-nullable: true + items: + type: "string" + example: ["/bin/sh", "-c"] + + NetworkingConfig: + description: | + NetworkingConfig represents the container's networking configuration for + each of its interfaces. + It is used for the networking configs specified in the `docker create` + and `docker network connect` commands. + type: "object" + properties: + EndpointsConfig: + description: | + A mapping of network name to endpoint configuration for that network. + The endpoint configuration can be left empty to connect to that + network with no particular endpoint configuration. + type: "object" + additionalProperties: + $ref: "#/definitions/EndpointSettings" + example: + # putting an example here, instead of using the example values from + # /definitions/EndpointSettings, because EndpointSettings contains + # operational data returned when inspecting a container that we don't + # accept here. + EndpointsConfig: + isolated_nw: + IPAMConfig: + IPv4Address: "172.20.30.33" + IPv6Address: "2001:db8:abcd::3033" + LinkLocalIPs: + - "169.254.34.68" + - "fe80::3468" + MacAddress: "02:42:ac:12:05:02" + Links: + - "container_1" + - "container_2" + Aliases: + - "server_x" + - "server_y" + database_nw: {} + + NetworkSettings: + description: "NetworkSettings exposes the network settings in the API" + type: "object" + properties: + SandboxID: + description: SandboxID uniquely represents a container's network stack. + type: "string" + example: "9d12daf2c33f5959c8bf90aa513e4f65b561738661003029ec84830cd503a0c3" + SandboxKey: + description: SandboxKey is the full path of the netns handle + type: "string" + example: "/var/run/docker/netns/8ab54b426c38" + Ports: + $ref: "#/definitions/PortMap" + Networks: + description: | + Information about all networks that the container is connected to. + type: "object" + additionalProperties: + $ref: "#/definitions/EndpointSettings" + + Address: + description: Address represents an IPv4 or IPv6 IP address. + type: "object" + properties: + Addr: + description: IP address. + type: "string" + PrefixLen: + description: Mask length of the IP address. + type: "integer" + + PortMap: + description: | + PortMap describes the mapping of container ports to host ports, using the + container's port-number and protocol as key in the format `/`, + for example, `80/udp`. + + If a container's port is mapped for multiple protocols, separate entries + are added to the mapping table. + type: "object" + additionalProperties: + type: "array" + x-nullable: true + items: + $ref: "#/definitions/PortBinding" + example: + "443/tcp": + - HostIp: "127.0.0.1" + HostPort: "4443" + "80/tcp": + - HostIp: "0.0.0.0" + HostPort: "80" + - HostIp: "0.0.0.0" + HostPort: "8080" + "80/udp": + - HostIp: "0.0.0.0" + HostPort: "80" + "53/udp": + - HostIp: "0.0.0.0" + HostPort: "53" + "2377/tcp": null + + PortBinding: + description: | + PortBinding represents a binding between a host IP address and a host + port. + type: "object" + properties: + HostIp: + description: "Host IP address that the container's port is mapped to." + type: "string" + example: "127.0.0.1" + x-go-type: + type: Addr + import: + package: net/netip + HostPort: + description: "Host port number that the container's port is mapped to." + type: "string" + example: "4443" + + DriverData: + description: | + Information about the storage driver used to store the container's and + image's filesystem. + type: "object" + required: [Name, Data] + properties: + Name: + description: "Name of the storage driver." + type: "string" + x-nullable: false + example: "overlay2" + Data: + description: | + Low-level storage metadata, provided as key/value pairs. + + This information is driver-specific, and depends on the storage-driver + in use, and should be used for informational purposes only. + type: "object" + x-nullable: false + additionalProperties: + type: "string" + example: { + "MergedDir": "/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/merged", + "UpperDir": "/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/diff", + "WorkDir": "/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/work" + } + + Storage: + description: | + Information about the storage used by the container. + type: "object" + properties: + RootFS: + description: | + Information about the storage used for the container's root filesystem. + type: "object" + x-nullable: true + $ref: "#/definitions/RootFSStorage" + + RootFSStorage: + description: | + Information about the storage used for the container's root filesystem. + type: "object" + x-go-name: RootFSStorage + properties: + Snapshot: + description: | + Information about the snapshot used for the container's root filesystem. + type: "object" + x-nullable: true + $ref: "#/definitions/RootFSStorageSnapshot" + + RootFSStorageSnapshot: + description: | + Information about a snapshot backend of the container's root filesystem. + type: "object" + x-go-name: RootFSStorageSnapshot + properties: + Name: + description: "Name of the snapshotter." + type: "string" + x-nullable: false + + FilesystemChange: + description: | + Change in the container's filesystem. + type: "object" + required: [Path, Kind] + properties: + Path: + description: | + Path to file or directory that has changed. + type: "string" + x-nullable: false + Kind: + $ref: "#/definitions/ChangeType" + + ChangeType: + description: | + Kind of change + + Can be one of: + + - `0`: Modified ("C") + - `1`: Added ("A") + - `2`: Deleted ("D") + type: "integer" + format: "uint8" + enum: [0, 1, 2] + x-nullable: false + + ImageInspect: + description: | + Information about an image in the local image cache. + type: "object" + properties: + Id: + description: | + ID is the content-addressable ID of an image. + + This identifier is a content-addressable digest calculated from the + image's configuration (which includes the digests of layers used by + the image). + + Note that this digest differs from the `RepoDigests` below, which + holds digests of image manifests that reference the image. + type: "string" + x-nullable: false + example: "sha256:ec3f0931a6e6b6855d76b2d7b0be30e81860baccd891b2e243280bf1cd8ad710" + Descriptor: + description: | + Descriptor is an OCI descriptor of the image target. + In case of a multi-platform image, this descriptor points to the OCI index + or a manifest list. + + This field is only present if the daemon provides a multi-platform image store. + + WARNING: This is experimental and may change at any time without any backward + compatibility. + x-nullable: true + $ref: "#/definitions/OCIDescriptor" + Manifests: + description: | + Manifests is a list of image manifests available in this image. It + provides a more detailed view of the platform-specific image manifests or + other image-attached data like build attestations. + + Only available if the daemon provides a multi-platform image store + and the `manifests` option is set in the inspect request. + + WARNING: This is experimental and may change at any time without any backward + compatibility. + type: "array" + x-nullable: true + items: + $ref: "#/definitions/ImageManifestSummary" + Identity: + description: |- + Identity holds information about the identity and origin of the image. + This is trusted information verified by the daemon and cannot be modified + by tagging an image to a different name. + x-nullable: true + $ref: "#/definitions/Identity" + RepoTags: + description: | + List of image names/tags in the local image cache that reference this + image. + + Multiple image tags can refer to the same image, and this list may be + empty if no tags reference the image, in which case the image is + "untagged", in which case it can still be referenced by its ID. + type: "array" + items: + type: "string" + example: + - "example:1.0" + - "example:latest" + - "example:stable" + - "internal.registry.example.com:5000/example:1.0" + RepoDigests: + description: | + List of content-addressable digests of locally available image manifests + that the image is referenced from. Multiple manifests can refer to the + same image. + + These digests are usually only available if the image was either pulled + from a registry, or if the image was pushed to a registry, which is when + the manifest is generated and its digest calculated. + type: "array" + items: + type: "string" + example: + - "example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb" + - "internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578" + Comment: + description: | + Optional message that was set when committing or importing the image. + type: "string" + x-nullable: true + example: "" + Created: + description: | + Date and time at which the image was created, formatted in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + + This information is only available if present in the image, + and omitted otherwise. + type: "string" + format: "dateTime" + x-nullable: true + example: "2022-02-04T21:20:12.497794809Z" + Author: + description: | + Name of the author that was specified when committing the image, or as + specified through MAINTAINER (deprecated) in the Dockerfile. + type: "string" + x-nullable: true + example: "" + Config: + $ref: "#/definitions/ImageConfig" + Architecture: + description: | + Hardware CPU architecture that the image runs on. + type: "string" + x-nullable: false + example: "arm" + Variant: + description: | + CPU architecture variant (presently ARM-only). + type: "string" + x-nullable: true + example: "v7" + Os: + description: | + Operating System the image is built to run on. + type: "string" + x-nullable: false + example: "linux" + OsVersion: + description: | + Operating System version the image is built to run on (especially + for Windows). + type: "string" + example: "" + x-nullable: true + Size: + description: | + Total size of the image including all layers it is composed of. + type: "integer" + format: "int64" + x-nullable: false + example: 1239828 + GraphDriver: + x-nullable: true + $ref: "#/definitions/DriverData" + RootFS: + description: | + Information about the image's RootFS, including the layer IDs. + type: "object" + required: [Type] + properties: + Type: + type: "string" + x-nullable: false + example: "layers" + Layers: + type: "array" + items: + type: "string" + example: + - "sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6" + - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef" + Metadata: + description: | + Additional metadata of the image in the local cache. This information + is local to the daemon, and not part of the image itself. + type: "object" + properties: + LastTagTime: + description: | + Date and time at which the image was last tagged in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + + This information is only available if the image was tagged locally, + and omitted otherwise. + type: "string" + format: "dateTime" + example: "2022-02-28T14:40:02.623929178Z" + x-nullable: true + + Identity: + description: |- + Identity holds information about the identity and origin of the image. + This is trusted information verified by the daemon and cannot be modified + by tagging an image to a different name. + type: "object" + properties: + Signature: + description: |- + Signature contains the properties of verified signatures for the image. + type: "array" + items: + $ref: "#/definitions/SignatureIdentity" + Pull: + description: |- + Pull contains remote location information if image was created via pull. + If image was pulled via mirror, this contains the original repository location. + After successful push this images also contains the pushed repository location. + type: "array" + items: + $ref: "#/definitions/PullIdentity" + Build: + description: |- + Build contains build reference information if image was created via build. + type: "array" + items: + $ref: "#/definitions/BuildIdentity" + + BuildIdentity: + description: |- + BuildIdentity contains build reference information if image was created via build. + type: "object" + properties: + Ref: + description: |- + Ref is the identifier for the build request. This reference can be used to + look up the build details in BuildKit history API. + type: "string" + CreatedAt: + description: |- + CreatedAt is the time when the build ran. + type: "string" + format: "date-time" + + PullIdentity: + description: |- + PullIdentity contains remote location information if image was created via pull. + If image was pulled via mirror, this contains the original repository location. + type: "object" + properties: + Repository: + description: |- + Repository is the remote repository location the image was pulled from. + type: "string" + + SignatureIdentity: + description: |- + SignatureIdentity contains the properties of verified signatures for the image. + type: "object" + properties: + Name: + description: |- + Name is a textual description summarizing the type of signature. + type: "string" + Timestamps: + description: |- + Timestamps contains a list of verified signed timestamps for the signature. + type: "array" + items: + $ref: "#/definitions/SignatureTimestamp" + KnownSigner: + description: |- + KnownSigner is an identifier for a special signer identity that is known to the implementation. + $ref: "#/definitions/KnownSignerIdentity" + DockerReference: + description: |- + DockerReference is the Docker image reference associated with the signature. + This is an optional field only present in older hashedrecord signatures. + type: "string" + Signer: + description: |- + Signer contains information about the signer certificate used to sign the image. + $ref: "#/definitions/SignerIdentity" + SignatureType: + description: |- + SignatureType is the type of signature format. E.g. "bundle-v0.3" or "hashedrecord". + $ref: "#/definitions/SignatureType" + Error: + description: |- + Error contains error information if signature verification failed. + Other fields will be empty in this case. + type: "string" + Warnings: + description: |- + Warnings contains any warnings that occurred during signature verification. + For example, if there was no internet connectivity and cached trust roots were used. + Warning does not indicate a failed verification but may point to configuration issues. + type: "array" + items: + type: "string" + + SignatureTimestamp: + description: |- + SignatureTimestamp contains information about a verified signed timestamp for an image signature. + type: "object" + properties: + Type: + $ref: "#/definitions/SignatureTimestampType" + URI: + type: "string" + Timestamp: + type: "string" + format: "date-time" + + SignatureTimestampType: + description: |- + SignatureTimestampType is the type of timestamp used in the signature. + type: "string" + enum: + - "Tlog" + - "TimestampAuthority" + + SignatureType: + description: |- + SignatureType is the type of signature format. + type: "string" + enum: + - "bundle-v0.3" + - "simplesigning-v1" + + KnownSignerIdentity: + description: |- + KnownSignerIdentity is an identifier for a special signer identity that is known to the implementation. + type: "string" + enum: + - "DHI" + + SignerIdentity: + description: |- + SignerIdentity contains information about the signer certificate used to sign the image. + type: "object" + properties: + CertificateIssuer: + type: "string" + description: |- + CertificateIssuer is the certificate issuer. + SubjectAlternativeName: + type: "string" + description: |- + SubjectAlternativeName is the certificate subject alternative name. + Issuer: + type: "string" + description: |- + The OIDC issuer. Should match `iss` claim of ID token or, in the case of + a federated login like Dex it should match the issuer URL of the + upstream issuer. The issuer is not set the extensions are invalid and + will fail to render. + BuildSignerURI: + type: "string" + description: |- + Reference to specific build instructions that are responsible for signing. + BuildSignerDigest: + type: "string" + description: |- + Immutable reference to the specific version of the build instructions that is responsible for signing. + RunnerEnvironment: + type: "string" + description: |- + Specifies whether the build took place in platform-hosted cloud infrastructure or customer/self-hosted infrastructure. + SourceRepositoryURI: + type: "string" + description: |- + Source repository URL that the build was based on. + SourceRepositoryDigest: + type: "string" + description: |- + Immutable reference to a specific version of the source code that the build was based upon. + SourceRepositoryRef: + type: "string" + description: |- + Source Repository Ref that the build run was based upon. + SourceRepositoryIdentifier: + type: "string" + description: |- + Immutable identifier for the source repository the workflow was based upon. + SourceRepositoryOwnerURI: + type: "string" + description: |- + Source repository owner URL of the owner of the source repository that the build was based on. + SourceRepositoryOwnerIdentifier: + type: "string" + description: |- + Immutable identifier for the owner of the source repository that the workflow was based upon. + BuildConfigURI: + type: "string" + description: |- + Build Config URL to the top-level/initiating build instructions. + BuildConfigDigest: + type: "string" + description: |- + Immutable reference to the specific version of the top-level/initiating build instructions. + BuildTrigger: + type: "string" + description: |- + Event or action that initiated the build. + RunInvocationURI: + type: "string" + description: |- + Run Invocation URL to uniquely identify the build execution. + SourceRepositoryVisibilityAtSigning: + type: "string" + description: |- + Source repository visibility at the time of signing the certificate. + + ImageSummary: + type: "object" + x-go-name: "Summary" + required: + - Id + - ParentId + - RepoTags + - RepoDigests + - Created + - Size + - SharedSize + - Labels + - Containers + properties: + Id: + description: | + ID is the content-addressable ID of an image. + + This identifier is a content-addressable digest calculated from the + image's configuration (which includes the digests of layers used by + the image). + + Note that this digest differs from the `RepoDigests` below, which + holds digests of image manifests that reference the image. + type: "string" + x-nullable: false + example: "sha256:ec3f0931a6e6b6855d76b2d7b0be30e81860baccd891b2e243280bf1cd8ad710" + ParentId: + description: | + ID of the parent image. + + Depending on how the image was created, this field may be empty and + is only set for images that were built/created locally. This field + is empty if the image was pulled from an image registry. + type: "string" + x-nullable: false + example: "" + RepoTags: + description: | + List of image names/tags in the local image cache that reference this + image. + + Multiple image tags can refer to the same image, and this list may be + empty if no tags reference the image, in which case the image is + "untagged", in which case it can still be referenced by its ID. + type: "array" + x-nullable: false + items: + type: "string" + example: + - "example:1.0" + - "example:latest" + - "example:stable" + - "internal.registry.example.com:5000/example:1.0" + RepoDigests: + description: | + List of content-addressable digests of locally available image manifests + that the image is referenced from. Multiple manifests can refer to the + same image. + + These digests are usually only available if the image was either pulled + from a registry, or if the image was pushed to a registry, which is when + the manifest is generated and its digest calculated. + type: "array" + x-nullable: false + items: + type: "string" + example: + - "example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb" + - "internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578" + Created: + description: | + Date and time at which the image was created as a Unix timestamp + (number of seconds since EPOCH). + type: "integer" + x-nullable: false + example: "1644009612" + Size: + description: | + Total size of the image including all layers it is composed of. + type: "integer" + format: "int64" + x-nullable: false + example: 172064416 + SharedSize: + description: | + Total size of image layers that are shared between this image and other + images. + + This size is not calculated by default. `-1` indicates that the value + has not been set / calculated. + type: "integer" + format: "int64" + x-nullable: false + example: 1239828 + Labels: + description: "User-defined key/value metadata." + type: "object" + x-nullable: false + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + Containers: + description: | + Number of containers using this image. Includes both stopped and running + containers. + + `-1` indicates that the value has not been set / calculated. + x-nullable: false + type: "integer" + example: 2 + Manifests: + description: | + Manifests is a list of manifests available in this image. + It provides a more detailed view of the platform-specific image manifests + or other image-attached data like build attestations. + + WARNING: This is experimental and may change at any time without any backward + compatibility. + type: "array" + x-nullable: false + x-omitempty: true + items: + $ref: "#/definitions/ImageManifestSummary" + Descriptor: + description: | + Descriptor is an OCI descriptor of the image target. + In case of a multi-platform image, this descriptor points to the OCI index + or a manifest list. + + This field is only present if the daemon provides a multi-platform image store. + + WARNING: This is experimental and may change at any time without any backward + compatibility. + x-nullable: true + $ref: "#/definitions/OCIDescriptor" + + ImagesDiskUsage: + type: "object" + x-go-name: "DiskUsage" + x-go-package: "github.com/moby/moby/api/types/image" + description: | + represents system data usage for image resources. + properties: + ActiveCount: + description: | + Count of active images. + type: "integer" + format: "int64" + example: 1 + TotalCount: + description: | + Count of all images. + type: "integer" + format: "int64" + example: 4 + Reclaimable: + description: | + Disk space that can be reclaimed by removing unused images. + type: "integer" + format: "int64" + example: 12345678 + TotalSize: + description: | + Disk space in use by images. + type: "integer" + format: "int64" + example: 98765432 + Items: + description: | + List of image summaries. + type: "array" + x-omitempty: true + items: + x-go-type: + type: Summary + + AuthConfig: + type: "object" + properties: + username: + type: "string" + password: + type: "string" + serveraddress: + type: "string" + example: + username: "hannibal" + password: "xxxx" + serveraddress: "https://index.docker.io/v1/" + + AuthResponse: + description: | + An identity token was generated successfully. + type: "object" + required: [Status] + properties: + Status: + description: "The status of the authentication" + type: "string" + example: "Login Succeeded" + x-nullable: false + IdentityToken: + description: "An opaque token used to authenticate a user after a successful login" + type: "string" + example: "9cbaf023786cd7..." + x-nullable: false + + ProcessConfig: + type: "object" + properties: + privileged: + type: "boolean" + user: + type: "string" + tty: + type: "boolean" + entrypoint: + type: "string" + arguments: + type: "array" + items: + type: "string" + + Volume: + type: "object" + required: [Name, Driver, Mountpoint, Labels, Scope, Options] + x-nullable: false + properties: + Name: + type: "string" + description: "Name of the volume." + x-nullable: false + example: "tardis" + Driver: + type: "string" + description: "Name of the volume driver used by the volume." + x-nullable: false + example: "custom" + Mountpoint: + type: "string" + description: "Mount path of the volume on the host." + x-nullable: false + example: "/var/lib/docker/volumes/tardis" + CreatedAt: + type: "string" + format: "dateTime" + description: "Date/Time the volume was created." + example: "2016-06-07T20:31:11.853781916Z" + Status: + type: "object" + description: | + Low-level details about the volume, provided by the volume driver. + Details are returned as a map with key/value pairs: + `{"key":"value","key2":"value2"}`. + + The `Status` field is optional, and is omitted if the volume driver + does not support this feature. + additionalProperties: + type: "object" + example: + hello: "world" + Labels: + type: "object" + description: "User-defined key/value metadata." + x-nullable: false + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + Scope: + type: "string" + description: | + The level at which the volume exists. Either `global` for cluster-wide, + or `local` for machine level. + default: "local" + x-nullable: false + enum: ["local", "global"] + example: "local" + ClusterVolume: + $ref: "#/definitions/ClusterVolume" + Options: + type: "object" + description: | + The driver specific options used when creating the volume. + additionalProperties: + type: "string" + example: + device: "tmpfs" + o: "size=100m,uid=1000" + type: "tmpfs" + UsageData: + type: "object" + x-nullable: true + x-go-name: "UsageData" + required: [Size, RefCount] + description: | + Usage details about the volume. This information is used by the + `GET /system/df` endpoint, and omitted in other endpoints. + properties: + Size: + type: "integer" + format: "int64" + default: -1 + description: | + Amount of disk space used by the volume (in bytes). This information + is only available for volumes created with the `"local"` volume + driver. For volumes created with other volume drivers, this field + is set to `-1` ("not available") + x-nullable: false + RefCount: + type: "integer" + format: "int64" + default: -1 + description: | + The number of containers referencing this volume. This field + is set to `-1` if the reference-count is not available. + x-nullable: false + + VolumesDiskUsage: + type: "object" + x-go-name: "DiskUsage" + x-go-package: "github.com/moby/moby/api/types/volume" + description: | + represents system data usage for volume resources. + properties: + ActiveCount: + description: | + Count of active volumes. + type: "integer" + format: "int64" + example: 1 + TotalCount: + description: | + Count of all volumes. + type: "integer" + format: "int64" + example: 4 + Reclaimable: + description: | + Disk space that can be reclaimed by removing inactive volumes. + type: "integer" + format: "int64" + example: 12345678 + TotalSize: + description: | + Disk space in use by volumes. + type: "integer" + format: "int64" + example: 98765432 + Items: + description: | + List of volumes. + type: "array" + x-omitempty: true + items: + x-go-type: + type: Volume + + VolumeCreateRequest: + description: "Volume configuration" + type: "object" + title: "VolumeConfig" + x-go-name: "CreateRequest" + properties: + Name: + description: | + The new volume's name. If not specified, Docker generates a name. + type: "string" + x-nullable: false + example: "tardis" + Driver: + description: "Name of the volume driver to use." + type: "string" + default: "local" + x-nullable: false + example: "custom" + DriverOpts: + description: | + A mapping of driver options and values. These options are + passed directly to the driver and are driver specific. + type: "object" + additionalProperties: + type: "string" + example: + device: "tmpfs" + o: "size=100m,uid=1000" + type: "tmpfs" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + ClusterVolumeSpec: + $ref: "#/definitions/ClusterVolumeSpec" + + VolumeListResponse: + type: "object" + title: "VolumeListResponse" + x-go-name: "ListResponse" + description: "Volume list response" + properties: + Volumes: + type: "array" + description: "List of volumes" + items: + $ref: "#/definitions/Volume" + Warnings: + type: "array" + description: | + Warnings that occurred when fetching the list of volumes. + items: + type: "string" + example: [] + + Network: + type: "object" + properties: + Name: + description: | + Name of the network. + type: "string" + example: "my_network" + x-omitempty: false + Id: + description: | + ID that uniquely identifies a network on a single machine. + type: "string" + x-go-name: "ID" + x-omitempty: false + example: "7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99" + Created: + description: | + Date and time at which the network was created in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + x-omitempty: false + x-go-type: + type: Time + import: + package: time + hints: + nullable: false + example: "2016-10-19T04:33:30.360899459Z" + Scope: + description: | + The level at which the network exists (e.g. `swarm` for cluster-wide + or `local` for machine level) + type: "string" + x-omitempty: false + example: "local" + Driver: + description: | + The name of the driver used to create the network (e.g. `bridge`, + `overlay`). + type: "string" + x-omitempty: false + example: "overlay" + EnableIPv4: + description: | + Whether the network was created with IPv4 enabled. + type: "boolean" + x-omitempty: false + example: true + EnableIPv6: + description: | + Whether the network was created with IPv6 enabled. + type: "boolean" + x-omitempty: false + example: false + IPAM: + description: | + The network's IP Address Management. + $ref: "#/definitions/IPAM" + x-nullable: false + x-omitempty: false + Internal: + description: | + Whether the network is created to only allow internal networking + connectivity. + type: "boolean" + x-nullable: false + x-omitempty: false + default: false + example: false + Attachable: + description: | + Whether a global / swarm scope network is manually attachable by regular + containers from workers in swarm mode. + type: "boolean" + x-nullable: false + x-omitempty: false + default: false + example: false + Ingress: + description: | + Whether the network is providing the routing-mesh for the swarm cluster. + type: "boolean" + x-nullable: false + x-omitempty: false + default: false + example: false + ConfigFrom: + $ref: "#/definitions/ConfigReference" + x-nullable: false + x-omitempty: false + ConfigOnly: + description: | + Whether the network is a config-only network. Config-only networks are + placeholder networks for network configurations to be used by other + networks. Config-only networks cannot be used directly to run containers + or services. + type: "boolean" + x-omitempty: false + x-nullable: false + default: false + Options: + description: | + Network-specific options uses when creating the network. + type: "object" + x-omitempty: false + additionalProperties: + type: "string" + example: + com.docker.network.bridge.default_bridge: "true" + com.docker.network.bridge.enable_icc: "true" + com.docker.network.bridge.enable_ip_masquerade: "true" + com.docker.network.bridge.host_binding_ipv4: "0.0.0.0" + com.docker.network.bridge.name: "docker0" + com.docker.network.driver.mtu: "1500" + Labels: + description: | + Metadata specific to the network being created. + type: "object" + x-omitempty: false + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + Peers: + description: | + List of peer nodes for an overlay network. This field is only present + for overlay networks, and omitted for other network types. + type: "array" + x-omitempty: true + items: + $ref: "#/definitions/PeerInfo" + + NetworkSummary: + description: "Network list response item" + x-go-name: Summary + type: "object" + allOf: + - $ref: "#/definitions/Network" + + NetworkInspect: + description: 'The body of the "get network" http response message.' + x-go-name: Inspect + type: "object" + allOf: + - $ref: "#/definitions/Network" + properties: + Containers: + description: | + Contains endpoints attached to the network. + type: "object" + x-omitempty: false + additionalProperties: + $ref: "#/definitions/EndpointResource" + example: + 19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c: + Name: "test" + EndpointID: "628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a" + MacAddress: "02:42:ac:13:00:02" + IPv4Address: "172.19.0.2/16" + IPv6Address: "" + Services: + description: | + List of services using the network. This field is only present for + swarm scope networks, and omitted for local scope networks. + type: "object" + x-omitempty: true + additionalProperties: + x-go-type: + type: ServiceInfo + hints: + nullable: false + Status: + description: > + provides runtime information about the network + such as the number of allocated IPs. + $ref: "#/definitions/NetworkStatus" + + NetworkStatus: + description: > + provides runtime information about the network + such as the number of allocated IPs. + type: "object" + x-go-name: Status + properties: + IPAM: + $ref: "#/definitions/IPAMStatus" + + ServiceInfo: + x-nullable: false + x-omitempty: false + description: > + represents service parameters with the list of service's tasks + type: "object" + properties: + VIP: + type: "string" + x-omitempty: false + x-go-type: + type: Addr + import: + package: net/netip + Ports: + type: "array" + x-omitempty: false + items: + type: "string" + LocalLBIndex: + type: "integer" + format: "int" + x-omitempty: false + x-go-type: + type: int + Tasks: + type: "array" + x-omitempty: false + items: + $ref: "#/definitions/NetworkTaskInfo" + + NetworkTaskInfo: + x-nullable: false + x-omitempty: false + x-go-name: Task + description: > + carries the information about one backend task + type: "object" + properties: + Name: + type: "string" + x-omitempty: false + EndpointID: + type: "string" + x-omitempty: false + EndpointIP: + type: "string" + x-omitempty: false + x-go-type: + type: Addr + import: + package: net/netip + Info: + type: "object" + x-omitempty: false + additionalProperties: + type: "string" + + ConfigReference: + x-nullable: false + x-omitempty: false + description: | + The config-only network source to provide the configuration for + this network. + type: "object" + properties: + Network: + description: | + The name of the config-only network that provides the network's + configuration. The specified network must be an existing config-only + network. Only network names are allowed, not network IDs. + type: "string" + x-omitempty: false + example: "config_only_network_01" + + IPAM: + type: "object" + x-nullable: false + x-omitempty: false + properties: + Driver: + description: "Name of the IPAM driver to use." + type: "string" + default: "default" + example: "default" + Config: + description: | + List of IPAM configuration options, specified as a map: + + ``` + {"Subnet": , "IPRange": , "Gateway": , "AuxAddress": } + ``` + type: "array" + items: + $ref: "#/definitions/IPAMConfig" + Options: + description: "Driver-specific options, specified as a map." + type: "object" + additionalProperties: + type: "string" + example: + foo: "bar" + + IPAMConfig: + type: "object" + properties: + Subnet: + type: "string" + example: "172.20.0.0/16" + IPRange: + type: "string" + example: "172.20.10.0/24" + Gateway: + type: "string" + example: "172.20.10.11" + AuxiliaryAddresses: + type: "object" + additionalProperties: + type: "string" + + IPAMStatus: + type: "object" + x-nullable: false + x-omitempty: false + properties: + Subnets: + type: "object" + additionalProperties: + $ref: "#/definitions/SubnetStatus" + example: + "172.16.0.0/16": + IPsInUse: 3 + DynamicIPsAvailable: 65533 + "2001:db8:abcd:0012::0/96": + IPsInUse: 5 + DynamicIPsAvailable: 4294967291 + x-go-type: + type: SubnetStatuses + kind: map + + SubnetStatus: + type: "object" + x-nullable: false + x-omitempty: false + properties: + IPsInUse: + description: > + Number of IP addresses in the subnet that are in use or reserved and + are therefore unavailable for allocation, saturating at 264 - 1. + type: integer + format: uint64 + x-omitempty: false + DynamicIPsAvailable: + description: > + Number of IP addresses within the network's IPRange for the subnet + that are available for allocation, saturating at 264 - 1. + type: integer + format: uint64 + x-omitempty: false + + EndpointResource: + type: "object" + description: > + contains network resources allocated and used for a + container in a network. + properties: + Name: + type: "string" + x-omitempty: false + example: "container_1" + EndpointID: + type: "string" + x-omitempty: false + example: "628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a" + MacAddress: + type: "string" + x-omitempty: false + example: "02:42:ac:13:00:02" + x-go-type: + type: HardwareAddr + IPv4Address: + type: "string" + x-omitempty: false + example: "172.19.0.2/16" + x-go-type: + type: Prefix + import: + package: net/netip + IPv6Address: + type: "string" + x-omitempty: false + example: "" + x-go-type: + type: Prefix + import: + package: net/netip + + PeerInfo: + description: > + represents one peer of an overlay network. + type: "object" + x-nullable: false + properties: + Name: + description: + ID of the peer-node in the Swarm cluster. + type: "string" + x-omitempty: false + example: "6869d7c1732b" + IP: + description: + IP-address of the peer-node in the Swarm cluster. + type: "string" + x-omitempty: false + example: "10.133.77.91" + x-go-type: + type: Addr + import: + package: net/netip + + NetworkCreateResponse: + description: "OK response to NetworkCreate operation" + type: "object" + title: "NetworkCreateResponse" + x-go-name: "CreateResponse" + required: [Id, Warning] + properties: + Id: + description: "The ID of the created network." + type: "string" + x-nullable: false + example: "b5c4fc71e8022147cd25de22b22173de4e3b170134117172eb595cb91b4e7e5d" + Warning: + description: "Warnings encountered when creating the container" + type: "string" + x-nullable: false + example: "" + + BuildInfo: + type: "object" + properties: + id: + type: "string" + stream: + type: "string" + errorDetail: + $ref: "#/definitions/ErrorDetail" + status: + type: "string" + progressDetail: + $ref: "#/definitions/ProgressDetail" + aux: + $ref: "#/definitions/ImageID" + + BuildCache: + type: "object" + description: | + BuildCache contains information about a build cache record. + properties: + ID: + type: "string" + description: | + Unique ID of the build cache record. + example: "ndlpt0hhvkqcdfkputsk4cq9c" + Parents: + description: | + List of parent build cache record IDs. + type: "array" + items: + type: "string" + x-nullable: true + example: ["hw53o5aio51xtltp5xjp8v7fx"] + Type: + type: "string" + description: | + Cache record type. + example: "regular" + # see https://github.com/moby/buildkit/blob/fce4a32258dc9d9664f71a4831d5de10f0670677/client/diskusage.go#L75-L84 + enum: + - "internal" + - "frontend" + - "source.local" + - "source.git.checkout" + - "exec.cachemount" + - "regular" + Description: + type: "string" + description: | + Description of the build-step that produced the build cache. + example: "mount / from exec /bin/sh -c echo 'Binary::apt::APT::Keep-Downloaded-Packages \"true\";' > /etc/apt/apt.conf.d/keep-cache" + InUse: + type: "boolean" + description: | + Indicates if the build cache is in use. + example: false + Shared: + type: "boolean" + description: | + Indicates if the build cache is shared. + example: true + Size: + description: | + Amount of disk space used by the build cache (in bytes). + type: "integer" + example: 51 + CreatedAt: + description: | + Date and time at which the build cache was created in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + example: "2016-08-18T10:44:24.496525531Z" + LastUsedAt: + description: | + Date and time at which the build cache was last used in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + x-nullable: true + example: "2017-08-09T07:09:37.632105588Z" + UsageCount: + type: "integer" + example: 26 + + BuildCacheDiskUsage: + type: "object" + x-go-name: "DiskUsage" + x-go-package: "github.com/moby/moby/api/types/build" + description: | + represents system data usage for build cache resources. + properties: + ActiveCount: + description: | + Count of active build cache records. + type: "integer" + format: "int64" + example: 1 + TotalCount: + description: | + Count of all build cache records. + type: "integer" + format: "int64" + example: 4 + Reclaimable: + description: | + Disk space that can be reclaimed by removing inactive build cache records. + type: "integer" + format: "int64" + example: 12345678 + TotalSize: + description: | + Disk space in use by build cache records. + type: "integer" + format: "int64" + example: 98765432 + Items: + description: | + List of build cache records. + type: "array" + x-omitempty: true + items: + x-go-type: + type: CacheRecord + + ImageID: + type: "object" + description: "Image ID or Digest" + properties: + ID: + type: "string" + example: + ID: "sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c" + + CreateImageInfo: + type: "object" + properties: + id: + type: "string" + errorDetail: + $ref: "#/definitions/ErrorDetail" + status: + type: "string" + progressDetail: + $ref: "#/definitions/ProgressDetail" + + PushImageInfo: + type: "object" + properties: + errorDetail: + $ref: "#/definitions/ErrorDetail" + status: + type: "string" + progressDetail: + $ref: "#/definitions/ProgressDetail" + + DeviceInfo: + type: "object" + description: | + DeviceInfo represents a device that can be used by a container. + properties: + Source: + type: "string" + example: "cdi" + description: | + The origin device driver. + ID: + type: "string" + example: "vendor.com/gpu=0" + description: | + The unique identifier for the device within its source driver. + For CDI devices, this would be an FQDN like "vendor.com/gpu=0". + + NRIInfo: + description: | + Information about the Node Resource Interface (NRI). + + This field is only present if NRI is enabled. + type: "object" + x-nullable: true + properties: + Info: + description: | + Information about NRI, provided as "label" / "value" pairs. + +


+ + > **Note**: The information returned in this field, including the + > formatting of values and labels, should not be considered stable, + > and may change without notice. + type: "array" + items: + type: "array" + items: + type: "string" + example: + - ["plugin-path", "/opt/docker/nri/plugins"] + + ErrorDetail: + type: "object" + properties: + code: + type: "integer" + message: + type: "string" + + ProgressDetail: + type: "object" + properties: + current: + type: "integer" + total: + type: "integer" + + ErrorResponse: + description: "Represents an error." + type: "object" + required: ["message"] + properties: + message: + description: "The error message." + type: "string" + x-nullable: false + example: + message: "Something went wrong." + + IDResponse: + description: "Response to an API call that returns just an Id" + type: "object" + x-go-name: "IDResponse" + required: ["Id"] + properties: + Id: + description: "The id of the newly created object." + type: "string" + x-nullable: false + + NetworkConnectRequest: + description: | + NetworkConnectRequest represents the data to be used to connect a container to a network. + type: "object" + x-go-name: "ConnectRequest" + required: ["Container"] + properties: + Container: + type: "string" + description: "The ID or name of the container to connect to the network." + x-nullable: false + example: "3613f73ba0e4" + EndpointConfig: + $ref: "#/definitions/EndpointSettings" + x-nullable: true + + NetworkDisconnectRequest: + description: | + NetworkDisconnectRequest represents the data to be used to disconnect a container from a network. + type: "object" + x-go-name: "DisconnectRequest" + required: ["Container"] + properties: + Container: + type: "string" + description: "The ID or name of the container to disconnect from the network." + x-nullable: false + example: "3613f73ba0e4" + Force: + type: "boolean" + description: "Force the container to disconnect from the network." + default: false + x-nullable: false + x-omitempty: false + example: false + + EndpointSettings: + description: "Configuration for a network endpoint." + type: "object" + properties: + # Configurations + IPAMConfig: + $ref: "#/definitions/EndpointIPAMConfig" + Links: + type: "array" + items: + type: "string" + example: + - "container_1" + - "container_2" + MacAddress: + description: | + MAC address for the endpoint on this network. The network driver might ignore this parameter. + type: "string" + example: "02:42:ac:11:00:04" + x-go-type: + type: HardwareAddr + Aliases: + type: "array" + items: + type: "string" + example: + - "server_x" + - "server_y" + DriverOpts: + description: | + DriverOpts is a mapping of driver options and values. These options + are passed directly to the driver and are driver specific. + type: "object" + x-nullable: true + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + GwPriority: + description: | + This property determines which endpoint will provide the default + gateway for a container. The endpoint with the highest priority will + be used. If multiple endpoints have the same priority, endpoints are + lexicographically sorted based on their network name, and the one + that sorts first is picked. + type: "integer" + format: "int64" + example: + - 10 + + # Operational data + NetworkID: + description: | + Unique ID of the network. + type: "string" + example: "08754567f1f40222263eab4102e1c733ae697e8e354aa9cd6e18d7402835292a" + EndpointID: + description: | + Unique ID for the service endpoint in a Sandbox. + type: "string" + example: "b88f5b905aabf2893f3cbc4ee42d1ea7980bbc0a92e2c8922b1e1795298afb0b" + Gateway: + description: | + Gateway address for this network. + type: "string" + example: "172.17.0.1" + IPAddress: + description: | + IPv4 address. + type: "string" + example: "172.17.0.4" + x-go-type: + type: Addr + import: + package: net/netip + IPPrefixLen: + description: | + Mask length of the IPv4 address. + type: "integer" + example: 16 + IPv6Gateway: + description: | + IPv6 gateway address. + type: "string" + example: "2001:db8:2::100" + x-go-type: + type: Addr + import: + package: net/netip + GlobalIPv6Address: + description: | + Global IPv6 address. + type: "string" + example: "2001:db8::5689" + x-go-type: + type: Addr + import: + package: net/netip + GlobalIPv6PrefixLen: + description: | + Mask length of the global IPv6 address. + type: "integer" + format: "int64" + example: 64 + DNSNames: + description: | + List of all DNS names an endpoint has on a specific network. This + list is based on the container name, network aliases, container short + ID, and hostname. + + These DNS names are non-fully qualified but can contain several dots. + You can get fully qualified DNS names by appending `.`. + For instance, if container name is `my.ctr` and the network is named + `testnet`, `DNSNames` will contain `my.ctr` and the FQDN will be + `my.ctr.testnet`. + type: array + items: + type: string + example: ["foobar", "server_x", "server_y", "my.ctr"] + + EndpointIPAMConfig: + description: | + EndpointIPAMConfig represents an endpoint's IPAM configuration. + type: "object" + x-nullable: true + properties: + IPv4Address: + type: "string" + example: "172.20.30.33" + x-go-type: + type: Addr + import: + package: net/netip + IPv6Address: + type: "string" + example: "2001:db8:abcd::3033" + x-go-type: + type: Addr + import: + package: net/netip + LinkLocalIPs: + type: "array" + items: + type: "string" + x-go-type: + type: Addr + import: + package: net/netip + example: + - "169.254.34.68" + - "fe80::3468" + + PluginMount: + type: "object" + x-go-name: "Mount" + x-nullable: false + required: [Name, Description, Settable, Source, Destination, Type, Options] + properties: + Name: + type: "string" + x-nullable: false + example: "some-mount" + Description: + type: "string" + x-nullable: false + example: "This is a mount that's used by the plugin." + Settable: + type: "array" + items: + type: "string" + Source: + type: "string" + example: "/var/lib/docker/plugins/" + Destination: + type: "string" + x-nullable: false + example: "/mnt/state" + Type: + type: "string" + x-nullable: false + example: "bind" + Options: + type: "array" + items: + type: "string" + example: + - "rbind" + - "rw" + + PluginDevice: + type: "object" + x-go-name: "Device" + required: [Name, Description, Settable, Path] + x-nullable: false + properties: + Name: + type: "string" + x-nullable: false + Description: + type: "string" + x-nullable: false + Settable: + type: "array" + items: + type: "string" + Path: + type: "string" + example: "/dev/fuse" + + PluginEnv: + type: "object" + x-go-name: "Env" + x-nullable: false + required: [Name, Description, Settable, Value] + properties: + Name: + x-nullable: false + type: "string" + Description: + x-nullable: false + type: "string" + Settable: + type: "array" + items: + type: "string" + Value: + type: "string" + + PluginPrivilege: + description: | + Describes a permission the user has to accept upon installing + the plugin. + type: "object" + x-go-name: "Privilege" + properties: + Name: + type: "string" + example: "network" + Description: + type: "string" + Value: + type: "array" + items: + type: "string" + example: + - "host" + + Plugin: + description: "A plugin for the Engine API" + type: "object" + x-go-name: "Plugin" + required: [Settings, Enabled, Config, Name] + properties: + Id: + type: "string" + example: "5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078" + Name: + type: "string" + x-nullable: false + example: "tiborvass/sample-volume-plugin" + Enabled: + description: + True if the plugin is running. False if the plugin is not running, + only installed. + type: "boolean" + x-nullable: false + example: true + Settings: + description: "user-configurable settings for the plugin." + type: "object" + x-go-name: "Settings" + x-nullable: false + required: [Args, Devices, Env, Mounts] + properties: + Mounts: + type: "array" + items: + $ref: "#/definitions/PluginMount" + Env: + type: "array" + items: + type: "string" + example: + - "DEBUG=0" + Args: + type: "array" + items: + type: "string" + Devices: + type: "array" + items: + $ref: "#/definitions/PluginDevice" + PluginReference: + description: "plugin remote reference used to push/pull the plugin" + type: "string" + x-go-name: "PluginReference" + x-nullable: false + example: "localhost:5000/tiborvass/sample-volume-plugin:latest" + Config: + description: "The config of a plugin." + type: "object" + x-go-name: "Config" + x-nullable: false + required: + - Description + - Documentation + - Interface + - Entrypoint + - WorkDir + - Network + - Linux + - PidHost + - PropagatedMount + - IpcHost + - Mounts + - Env + - Args + properties: + Description: + type: "string" + x-nullable: false + example: "A sample volume plugin for Docker" + Documentation: + type: "string" + x-nullable: false + example: "https://docs.docker.com/engine/extend/plugins/" + Interface: + description: "The interface between Docker and the plugin" + x-nullable: false + type: "object" + x-go-name: "Interface" + required: [Types, Socket] + properties: + Types: + type: "array" + items: + type: "string" + x-go-type: + type: "CapabilityID" + example: + - "docker.volumedriver/1.0" + Socket: + type: "string" + x-nullable: false + example: "plugins.sock" + ProtocolScheme: + type: "string" + example: "some.protocol/v1.0" + description: "Protocol to use for clients connecting to the plugin." + enum: + - "" + - "moby.plugins.http/v1" + Entrypoint: + type: "array" + items: + type: "string" + example: + - "/usr/bin/sample-volume-plugin" + - "/data" + WorkDir: + type: "string" + x-nullable: false + example: "/bin/" + User: + type: "object" + x-go-name: "User" + x-nullable: false + properties: + UID: + type: "integer" + format: "uint32" + example: 1000 + GID: + type: "integer" + format: "uint32" + example: 1000 + Network: + type: "object" + x-go-name: "NetworkConfig" + x-nullable: false + required: [Type] + properties: + Type: + x-nullable: false + type: "string" + example: "host" + Linux: + type: "object" + x-go-name: "LinuxConfig" + x-nullable: false + required: [Capabilities, AllowAllDevices, Devices] + properties: + Capabilities: + type: "array" + items: + type: "string" + example: + - "CAP_SYS_ADMIN" + - "CAP_SYSLOG" + AllowAllDevices: + type: "boolean" + x-nullable: false + example: false + Devices: + type: "array" + items: + $ref: "#/definitions/PluginDevice" + PropagatedMount: + type: "string" + x-nullable: false + example: "/mnt/volumes" + IpcHost: + type: "boolean" + x-nullable: false + example: false + PidHost: + type: "boolean" + x-nullable: false + example: false + Mounts: + type: "array" + items: + $ref: "#/definitions/PluginMount" + Env: + type: "array" + items: + $ref: "#/definitions/PluginEnv" + example: + - Name: "DEBUG" + Description: "If set, prints debug messages" + Settable: null + Value: "0" + Args: + type: "object" + x-go-name: "Args" + x-nullable: false + required: [Name, Description, Settable, Value] + properties: + Name: + x-nullable: false + type: "string" + example: "args" + Description: + x-nullable: false + type: "string" + example: "command line arguments" + Settable: + type: "array" + items: + type: "string" + Value: + type: "array" + items: + type: "string" + rootfs: + type: "object" + x-go-name: "RootFS" + properties: + type: + type: "string" + example: "layers" + diff_ids: + type: "array" + items: + type: "string" + example: + - "sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887" + - "sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8" + + ObjectVersion: + description: | + The version number of the object such as node, service, etc. This is needed + to avoid conflicting writes. The client must send the version number along + with the modified specification when updating these objects. + + This approach ensures safe concurrency and determinism in that the change + on the object may not be applied if the version number has changed from the + last read. In other words, if two update requests specify the same base + version, only one of the requests can succeed. As a result, two separate + update requests that happen at the same time will not unintentionally + overwrite each other. + type: "object" + properties: + Index: + type: "integer" + format: "uint64" + example: 373531 + + NodeSpec: + type: "object" + properties: + Name: + description: "Name for the node." + type: "string" + example: "my-node" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + Role: + description: "Role of the node." + type: "string" + enum: + - "worker" + - "manager" + example: "manager" + Availability: + description: "Availability of the node." + type: "string" + enum: + - "active" + - "pause" + - "drain" + example: "active" + example: + Availability: "active" + Name: "node-name" + Role: "manager" + Labels: + foo: "bar" + + Node: + type: "object" + properties: + ID: + type: "string" + example: "24ifsmvkjbyhk" + Version: + $ref: "#/definitions/ObjectVersion" + CreatedAt: + description: | + Date and time at which the node was added to the swarm in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + example: "2016-08-18T10:44:24.496525531Z" + UpdatedAt: + description: | + Date and time at which the node was last updated in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + example: "2017-08-09T07:09:37.632105588Z" + Spec: + $ref: "#/definitions/NodeSpec" + Description: + $ref: "#/definitions/NodeDescription" + Status: + $ref: "#/definitions/NodeStatus" + ManagerStatus: + $ref: "#/definitions/ManagerStatus" + + NodeDescription: + description: | + NodeDescription encapsulates the properties of the Node as reported by the + agent. + type: "object" + properties: + Hostname: + type: "string" + example: "bf3067039e47" + Platform: + $ref: "#/definitions/Platform" + Resources: + $ref: "#/definitions/ResourceObject" + Engine: + $ref: "#/definitions/EngineDescription" + TLSInfo: + $ref: "#/definitions/TLSInfo" + + Platform: + description: | + Platform represents the platform (Arch/OS). + type: "object" + properties: + Architecture: + description: | + Architecture represents the hardware architecture (for example, + `x86_64`). + type: "string" + example: "x86_64" + OS: + description: | + OS represents the Operating System (for example, `linux` or `windows`). + type: "string" + example: "linux" + + EngineDescription: + description: "EngineDescription provides information about an engine." + type: "object" + properties: + EngineVersion: + type: "string" + example: "17.06.0" + Labels: + type: "object" + additionalProperties: + type: "string" + example: + foo: "bar" + Plugins: + type: "array" + items: + type: "object" + properties: + Type: + type: "string" + Name: + type: "string" + example: + - Type: "Log" + Name: "awslogs" + - Type: "Log" + Name: "fluentd" + - Type: "Log" + Name: "gcplogs" + - Type: "Log" + Name: "gelf" + - Type: "Log" + Name: "journald" + - Type: "Log" + Name: "json-file" + - Type: "Log" + Name: "splunk" + - Type: "Log" + Name: "syslog" + - Type: "Network" + Name: "bridge" + - Type: "Network" + Name: "host" + - Type: "Network" + Name: "ipvlan" + - Type: "Network" + Name: "macvlan" + - Type: "Network" + Name: "null" + - Type: "Network" + Name: "overlay" + - Type: "Volume" + Name: "local" + - Type: "Volume" + Name: "localhost:5000/vieux/sshfs:latest" + - Type: "Volume" + Name: "vieux/sshfs:latest" + + TLSInfo: + description: | + Information about the issuer of leaf TLS certificates and the trusted root + CA certificate. + type: "object" + properties: + TrustRoot: + description: | + The root CA certificate(s) that are used to validate leaf TLS + certificates. + type: "string" + CertIssuerSubject: + description: + The base64-url-safe-encoded raw subject bytes of the issuer. + type: "string" + CertIssuerPublicKey: + description: | + The base64-url-safe-encoded raw public key bytes of the issuer. + type: "string" + example: + TrustRoot: | + -----BEGIN CERTIFICATE----- + MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw + EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0 + MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH + A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf + 3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB + Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO + PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz + pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H + -----END CERTIFICATE----- + CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh" + CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==" + + NodeStatus: + description: | + NodeStatus represents the status of a node. + + It provides the current status of the node, as seen by the manager. + type: "object" + properties: + State: + $ref: "#/definitions/NodeState" + Message: + type: "string" + example: "" + Addr: + description: "IP address of the node." + type: "string" + example: "172.17.0.2" + + NodeState: + description: "NodeState represents the state of a node." + type: "string" + enum: + - "unknown" + - "down" + - "ready" + - "disconnected" + example: "ready" + + ManagerStatus: + description: | + ManagerStatus represents the status of a manager. + + It provides the current status of a node's manager component, if the node + is a manager. + x-nullable: true + type: "object" + properties: + Leader: + type: "boolean" + default: false + example: true + Reachability: + $ref: "#/definitions/Reachability" + Addr: + description: | + The IP address and port at which the manager is reachable. + type: "string" + example: "10.0.0.46:2377" + + Reachability: + description: "Reachability represents the reachability of a node." + type: "string" + enum: + - "unknown" + - "unreachable" + - "reachable" + example: "reachable" + + SwarmSpec: + description: "User modifiable swarm configuration." + type: "object" + properties: + Name: + description: "Name of the swarm." + type: "string" + example: "default" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + example: + com.example.corp.type: "production" + com.example.corp.department: "engineering" + Orchestration: + description: "Orchestration configuration." + type: "object" + x-nullable: true + properties: + TaskHistoryRetentionLimit: + description: | + The number of historic tasks to keep per instance or node. If + negative, never remove completed or failed tasks. + type: "integer" + format: "int64" + example: 10 + Raft: + description: "Raft configuration." + type: "object" + properties: + SnapshotInterval: + description: "The number of log entries between snapshots." + type: "integer" + format: "uint64" + example: 10000 + KeepOldSnapshots: + description: | + The number of snapshots to keep beyond the current snapshot. + type: "integer" + format: "uint64" + LogEntriesForSlowFollowers: + description: | + The number of log entries to keep around to sync up slow followers + after a snapshot is created. + type: "integer" + format: "uint64" + example: 500 + ElectionTick: + description: | + The number of ticks that a follower will wait for a message from + the leader before becoming a candidate and starting an election. + `ElectionTick` must be greater than `HeartbeatTick`. + + A tick currently defaults to one second, so these translate + directly to seconds currently, but this is NOT guaranteed. + type: "integer" + example: 3 + HeartbeatTick: + description: | + The number of ticks between heartbeats. Every HeartbeatTick ticks, + the leader will send a heartbeat to the followers. + + A tick currently defaults to one second, so these translate + directly to seconds currently, but this is NOT guaranteed. + type: "integer" + example: 1 + Dispatcher: + description: "Dispatcher configuration." + type: "object" + x-nullable: true + properties: + HeartbeatPeriod: + description: | + The delay for an agent to send a heartbeat to the dispatcher. + type: "integer" + format: "int64" + example: 5000000000 + CAConfig: + description: "CA configuration." + type: "object" + x-nullable: true + properties: + NodeCertExpiry: + description: "The duration node certificates are issued for." + type: "integer" + format: "int64" + example: 7776000000000000 + ExternalCAs: + description: | + Configuration for forwarding signing requests to an external + certificate authority. + type: "array" + items: + type: "object" + properties: + Protocol: + description: | + Protocol for communication with the external CA (currently + only `cfssl` is supported). + type: "string" + enum: + - "cfssl" + default: "cfssl" + URL: + description: | + URL where certificate signing requests should be sent. + type: "string" + Options: + description: | + An object with key/value pairs that are interpreted as + protocol-specific options for the external CA driver. + type: "object" + additionalProperties: + type: "string" + CACert: + description: | + The root CA certificate (in PEM format) this external CA uses + to issue TLS certificates (assumed to be to the current swarm + root CA certificate if not provided). + type: "string" + SigningCACert: + description: | + The desired signing CA certificate for all swarm node TLS leaf + certificates, in PEM format. + type: "string" + SigningCAKey: + description: | + The desired signing CA key for all swarm node TLS leaf certificates, + in PEM format. + type: "string" + ForceRotate: + description: | + An integer whose purpose is to force swarm to generate a new + signing CA certificate and key, if none have been specified in + `SigningCACert` and `SigningCAKey` + format: "uint64" + type: "integer" + EncryptionConfig: + description: "Parameters related to encryption-at-rest." + type: "object" + properties: + AutoLockManagers: + description: | + If set, generate a key and use it to lock data stored on the + managers. + type: "boolean" + example: false + TaskDefaults: + description: "Defaults for creating tasks in this cluster." + type: "object" + properties: + LogDriver: + description: | + The log driver to use for tasks created in the orchestrator if + unspecified by a service. + + Updating this value only affects new tasks. Existing tasks continue + to use their previously configured log driver until recreated. + type: "object" + properties: + Name: + description: | + The log driver to use as a default for new tasks. + type: "string" + example: "json-file" + Options: + description: | + Driver-specific options for the selected log driver, specified + as key/value pairs. + type: "object" + additionalProperties: + type: "string" + example: + "max-file": "10" + "max-size": "100m" + + # The Swarm information for `GET /info`. It is the same as `GET /swarm`, but + # without `JoinTokens`. + ClusterInfo: + description: | + ClusterInfo represents information about the swarm as is returned by the + "/info" endpoint. Join-tokens are not included. + x-nullable: true + type: "object" + properties: + ID: + description: "The ID of the swarm." + type: "string" + example: "abajmipo7b4xz5ip2nrla6b11" + Version: + $ref: "#/definitions/ObjectVersion" + CreatedAt: + description: | + Date and time at which the swarm was initialised in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + example: "2016-08-18T10:44:24.496525531Z" + UpdatedAt: + description: | + Date and time at which the swarm was last updated in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + example: "2017-08-09T07:09:37.632105588Z" + Spec: + $ref: "#/definitions/SwarmSpec" + TLSInfo: + $ref: "#/definitions/TLSInfo" + RootRotationInProgress: + description: | + Whether there is currently a root CA rotation in progress for the swarm + type: "boolean" + example: false + DataPathPort: + description: | + DataPathPort specifies the data path port number for data traffic. + Acceptable port range is 1024 to 49151. + If no port is set or is set to 0, the default port (4789) is used. + type: "integer" + format: "uint32" + default: 4789 + example: 4789 + DefaultAddrPool: + description: | + Default Address Pool specifies default subnet pools for global scope + networks. + type: "array" + items: + type: "string" + format: "CIDR" + example: ["10.10.0.0/16", "20.20.0.0/16"] + SubnetSize: + description: | + SubnetSize specifies the subnet size of the networks created from the + default subnet pool. + type: "integer" + format: "uint32" + maximum: 29 + default: 24 + example: 24 + + JoinTokens: + description: | + JoinTokens contains the tokens workers and managers need to join the swarm. + type: "object" + properties: + Worker: + description: | + The token workers can use to join the swarm. + type: "string" + example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx" + Manager: + description: | + The token managers can use to join the swarm. + type: "string" + example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2" + + Swarm: + type: "object" + allOf: + - $ref: "#/definitions/ClusterInfo" + - type: "object" + properties: + JoinTokens: + $ref: "#/definitions/JoinTokens" + + TaskSpec: + description: "User modifiable task configuration." + type: "object" + properties: + PluginSpec: + type: "object" + description: | + Plugin spec for the service. *(Experimental release only.)* + +


+ + > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are + > mutually exclusive. PluginSpec is only used when the Runtime field + > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime + > field is set to `attachment`. + properties: + Name: + description: "The name or 'alias' to use for the plugin." + type: "string" + Remote: + description: "The plugin image reference to use." + type: "string" + Disabled: + description: "Disable the plugin once scheduled." + type: "boolean" + PluginPrivilege: + type: "array" + items: + $ref: "#/definitions/PluginPrivilege" + ContainerSpec: + type: "object" + description: | + Container spec for the service. + +


+ + > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are + > mutually exclusive. PluginSpec is only used when the Runtime field + > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime + > field is set to `attachment`. + properties: + Image: + description: "The image name to use for the container" + type: "string" + Labels: + description: "User-defined key/value data." + type: "object" + additionalProperties: + type: "string" + Command: + description: "The command to be run in the image." + type: "array" + items: + type: "string" + Args: + description: "Arguments to the command." + type: "array" + items: + type: "string" + Hostname: + description: | + The hostname to use for the container, as a valid + [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname. + type: "string" + Env: + description: | + A list of environment variables in the form `VAR=value`. + type: "array" + items: + type: "string" + Dir: + description: "The working directory for commands to run in." + type: "string" + User: + description: "The user inside the container." + type: "string" + Groups: + type: "array" + description: | + A list of additional groups that the container process will run as. + items: + type: "string" + Privileges: + type: "object" + description: "Security options for the container" + properties: + CredentialSpec: + type: "object" + description: "CredentialSpec for managed service account (Windows only)" + properties: + Config: + type: "string" + example: "0bt9dmxjvjiqermk6xrop3ekq" + description: | + Load credential spec from a Swarm Config with the given ID. + The specified config must also be present in the Configs + field with the Runtime property set. + +


+ + + > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, + > and `CredentialSpec.Config` are mutually exclusive. + File: + type: "string" + example: "spec.json" + description: | + Load credential spec from this file. The file is read by + the daemon, and must be present in the `CredentialSpecs` + subdirectory in the docker data directory, which defaults + to `C:\ProgramData\Docker\` on Windows. + + For example, specifying `spec.json` loads + `C:\ProgramData\Docker\CredentialSpecs\spec.json`. + +


+ + > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, + > and `CredentialSpec.Config` are mutually exclusive. + Registry: + type: "string" + description: | + Load credential spec from this value in the Windows + registry. The specified registry value must be located in: + + `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs` + +


+ + + > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, + > and `CredentialSpec.Config` are mutually exclusive. + SELinuxContext: + type: "object" + description: "SELinux labels of the container" + properties: + Disable: + type: "boolean" + description: "Disable SELinux" + User: + type: "string" + description: "SELinux user label" + Role: + type: "string" + description: "SELinux role label" + Type: + type: "string" + description: "SELinux type label" + Level: + type: "string" + description: "SELinux level label" + Seccomp: + type: "object" + description: "Options for configuring seccomp on the container" + properties: + Mode: + type: "string" + enum: + - "default" + - "unconfined" + - "custom" + Profile: + description: "The custom seccomp profile as a json object" + type: "string" + AppArmor: + type: "object" + description: "Options for configuring AppArmor on the container" + properties: + Mode: + type: "string" + enum: + - "default" + - "disabled" + NoNewPrivileges: + type: "boolean" + description: "Configuration of the no_new_privs bit in the container" + + TTY: + description: "Whether a pseudo-TTY should be allocated." + type: "boolean" + OpenStdin: + description: "Open `stdin`" + type: "boolean" + ReadOnly: + description: "Mount the container's root filesystem as read only." + type: "boolean" + Mounts: + description: | + Specification for mounts to be added to containers created as part + of the service. + type: "array" + items: + $ref: "#/definitions/Mount" + StopSignal: + description: "Signal to stop the container." + type: "string" + StopGracePeriod: + description: | + Amount of time to wait for the container to terminate before + forcefully killing it. + type: "integer" + format: "int64" + HealthCheck: + $ref: "#/definitions/HealthConfig" + Hosts: + type: "array" + description: | + A list of hostname/IP mappings to add to the container's `hosts` + file. The format of extra hosts is specified in the + [hosts(5)](http://man7.org/linux/man-pages/man5/hosts.5.html) + man page: + + IP_address canonical_hostname [aliases...] + items: + type: "string" + DNSConfig: + description: | + Specification for DNS related configurations in resolver configuration + file (`resolv.conf`). + type: "object" + properties: + Nameservers: + description: "The IP addresses of the name servers." + type: "array" + items: + type: "string" + Search: + description: "A search list for host-name lookup." + type: "array" + items: + type: "string" + Options: + description: | + A list of internal resolver variables to be modified (e.g., + `debug`, `ndots:3`, etc.). + type: "array" + items: + type: "string" + Secrets: + description: | + Secrets contains references to zero or more secrets that will be + exposed to the service. + type: "array" + items: + type: "object" + properties: + File: + description: | + File represents a specific target that is backed by a file. + type: "object" + properties: + Name: + description: | + Name represents the final filename in the filesystem. + type: "string" + UID: + description: "UID represents the file UID." + type: "string" + GID: + description: "GID represents the file GID." + type: "string" + Mode: + description: "Mode represents the FileMode of the file." + type: "integer" + format: "uint32" + SecretID: + description: | + SecretID represents the ID of the specific secret that we're + referencing. + type: "string" + SecretName: + description: | + SecretName is the name of the secret that this references, + but this is just provided for lookup/display purposes. The + secret in the reference will be identified by its ID. + type: "string" + OomScoreAdj: + type: "integer" + format: "int64" + description: | + An integer value containing the score given to the container in + order to tune OOM killer preferences. + example: 0 + Configs: + description: | + Configs contains references to zero or more configs that will be + exposed to the service. + type: "array" + items: + type: "object" + properties: + File: + description: | + File represents a specific target that is backed by a file. + +


+ + > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive + type: "object" + properties: + Name: + description: | + Name represents the final filename in the filesystem. + type: "string" + UID: + description: "UID represents the file UID." + type: "string" + GID: + description: "GID represents the file GID." + type: "string" + Mode: + description: "Mode represents the FileMode of the file." + type: "integer" + format: "uint32" + Runtime: + description: | + Runtime represents a target that is not mounted into the + container but is used by the task + +


+ + > **Note**: `Configs.File` and `Configs.Runtime` are mutually + > exclusive + type: "object" + ConfigID: + description: | + ConfigID represents the ID of the specific config that we're + referencing. + type: "string" + ConfigName: + description: | + ConfigName is the name of the config that this references, + but this is just provided for lookup/display purposes. The + config in the reference will be identified by its ID. + type: "string" + Isolation: + type: "string" + description: | + Isolation technology of the containers running the service. + (Windows only) + enum: + - "default" + - "process" + - "hyperv" + - "" + Init: + description: | + Run an init inside the container that forwards signals and reaps + processes. This field is omitted if empty, and the default (as + configured on the daemon) is used. + type: "boolean" + x-nullable: true + Sysctls: + description: | + Set kernel namedspaced parameters (sysctls) in the container. + The Sysctls option on services accepts the same sysctls as the + are supported on containers. Note that while the same sysctls are + supported, no guarantees or checks are made about their + suitability for a clustered environment, and it's up to the user + to determine whether a given sysctl will work properly in a + Service. + type: "object" + additionalProperties: + type: "string" + # This option is not used by Windows containers + CapabilityAdd: + type: "array" + description: | + A list of kernel capabilities to add to the default set + for the container. + items: + type: "string" + example: + - "CAP_NET_RAW" + - "CAP_SYS_ADMIN" + - "CAP_SYS_CHROOT" + - "CAP_SYSLOG" + CapabilityDrop: + type: "array" + description: | + A list of kernel capabilities to drop from the default set + for the container. + items: + type: "string" + example: + - "CAP_NET_RAW" + Ulimits: + description: | + A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`" + type: "array" + items: + type: "object" + properties: + Name: + description: "Name of ulimit" + type: "string" + Soft: + description: "Soft limit" + type: "integer" + Hard: + description: "Hard limit" + type: "integer" + NetworkAttachmentSpec: + description: | + Read-only spec type for non-swarm containers attached to swarm overlay + networks. + +


+ + > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are + > mutually exclusive. PluginSpec is only used when the Runtime field + > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime + > field is set to `attachment`. + type: "object" + properties: + ContainerID: + description: "ID of the container represented by this task" + type: "string" + Resources: + description: | + Resource requirements which apply to each individual container created + as part of the service. + type: "object" + properties: + Limits: + description: "Define resources limits." + $ref: "#/definitions/Limit" + Reservations: + description: "Define resources reservation." + $ref: "#/definitions/ResourceObject" + SwapBytes: + description: | + Amount of swap in bytes - can only be used together with a memory limit. + If not specified, the default behaviour is to grant a swap space twice + as big as the memory limit. + Set to -1 to enable unlimited swap. + type: "integer" + format: "int64" + minimum: -1 + x-nullable: true + x-omitempty: true + MemorySwappiness: + description: | + Tune the service's containers' memory swappiness (0 to 100). + If not specified, defaults to the containers' OS' default, generally 60, + or whatever value was predefined in the image. + Set to -1 to unset a previously set value. + type: "integer" + format: "int64" + minimum: -1 + maximum: 100 + x-nullable: true + x-omitempty: true + RestartPolicy: + description: | + Specification for the restart policy which applies to containers + created as part of this service. + type: "object" + properties: + Condition: + description: "Condition for restart." + type: "string" + enum: + - "none" + - "on-failure" + - "any" + Delay: + description: "Delay between restart attempts." + type: "integer" + format: "int64" + MaxAttempts: + description: | + Maximum attempts to restart a given container before giving up + (default value is 0, which is ignored). + type: "integer" + format: "int64" + default: 0 + Window: + description: | + Windows is the time window used to evaluate the restart policy + (default value is 0, which is unbounded). + type: "integer" + format: "int64" + default: 0 + Placement: + type: "object" + properties: + Constraints: + description: | + An array of constraint expressions to limit the set of nodes where + a task can be scheduled. Constraint expressions can either use a + _match_ (`==`) or _exclude_ (`!=`) rule. Multiple constraints find + nodes that satisfy every expression (AND match). Constraints can + match node or Docker Engine labels as follows: + + node attribute | matches | example + ---------------------|--------------------------------|----------------------------------------------- + `node.id` | Node ID | `node.id==2ivku8v2gvtg4` + `node.hostname` | Node hostname | `node.hostname!=node-2` + `node.role` | Node role (`manager`/`worker`) | `node.role==manager` + `node.platform.os` | Node operating system | `node.platform.os==windows` + `node.platform.arch` | Node architecture | `node.platform.arch==x86_64` + `node.labels` | User-defined node labels | `node.labels.security==high` + `engine.labels` | Docker Engine's labels | `engine.labels.operatingsystem==ubuntu-24.04` + + `engine.labels` apply to Docker Engine labels like operating system, + drivers, etc. Swarm administrators add `node.labels` for operational + purposes by using the [`node update endpoint`](#operation/NodeUpdate). + + type: "array" + items: + type: "string" + example: + - "node.hostname!=node3.corp.example.com" + - "node.role!=manager" + - "node.labels.type==production" + - "node.platform.os==linux" + - "node.platform.arch==x86_64" + Preferences: + description: | + Preferences provide a way to make the scheduler aware of factors + such as topology. They are provided in order from highest to + lowest precedence. + type: "array" + items: + type: "object" + properties: + Spread: + type: "object" + properties: + SpreadDescriptor: + description: | + label descriptor, such as `engine.labels.az`. + type: "string" + example: + - Spread: + SpreadDescriptor: "node.labels.datacenter" + - Spread: + SpreadDescriptor: "node.labels.rack" + MaxReplicas: + description: | + Maximum number of replicas for per node (default value is 0, which + is unlimited) + type: "integer" + format: "int64" + default: 0 + Platforms: + description: | + Platforms stores all the platforms that the service's image can + run on. This field is used in the platform filter for scheduling. + If empty, then the platform filter is off, meaning there are no + scheduling restrictions. + type: "array" + items: + $ref: "#/definitions/Platform" + ForceUpdate: + description: | + A counter that triggers an update even if no relevant parameters have + been changed. + type: "integer" + format: "uint64" + Runtime: + description: | + Runtime is the type of runtime specified for the task executor. + type: "string" + Networks: + description: "Specifies which networks the service should attach to." + type: "array" + items: + $ref: "#/definitions/NetworkAttachmentConfig" + LogDriver: + description: | + Specifies the log driver to use for tasks created from this spec. If + not present, the default one for the swarm will be used, finally + falling back to the engine default if not specified. + type: "object" + properties: + Name: + type: "string" + Options: + type: "object" + additionalProperties: + type: "string" + + TaskState: + type: "string" + enum: + - "new" + - "allocated" + - "pending" + - "assigned" + - "accepted" + - "preparing" + - "ready" + - "starting" + - "running" + - "complete" + - "shutdown" + - "failed" + - "rejected" + - "remove" + - "orphaned" + + ContainerStatus: + type: "object" + description: "represents the status of a container." + properties: + ContainerID: + type: "string" + PID: + type: "integer" + ExitCode: + type: "integer" + + PortStatus: + type: "object" + description: "represents the port status of a task's host ports whose service has published host ports" + properties: + Ports: + type: "array" + items: + $ref: "#/definitions/EndpointPortConfig" + + TaskStatus: + type: "object" + description: "represents the status of a task." + properties: + Timestamp: + type: "string" + format: "dateTime" + State: + $ref: "#/definitions/TaskState" + Message: + type: "string" + Err: + type: "string" + ContainerStatus: + $ref: "#/definitions/ContainerStatus" + PortStatus: + $ref: "#/definitions/PortStatus" + + Task: + type: "object" + properties: + ID: + description: "The ID of the task." + type: "string" + Version: + $ref: "#/definitions/ObjectVersion" + CreatedAt: + type: "string" + format: "dateTime" + UpdatedAt: + type: "string" + format: "dateTime" + Name: + description: "Name of the task." + type: "string" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + Spec: + $ref: "#/definitions/TaskSpec" + ServiceID: + description: "The ID of the service this task is part of." + type: "string" + Slot: + type: "integer" + NodeID: + description: "The ID of the node that this task is on." + type: "string" + AssignedGenericResources: + $ref: "#/definitions/GenericResources" + Status: + $ref: "#/definitions/TaskStatus" + DesiredState: + $ref: "#/definitions/TaskState" + JobIteration: + description: | + If the Service this Task belongs to is a job-mode service, contains + the JobIteration of the Service this Task was created for. Absent if + the Task was created for a Replicated or Global Service. + $ref: "#/definitions/ObjectVersion" + example: + ID: "0kzzo1i0y4jz6027t0k7aezc7" + Version: + Index: 71 + CreatedAt: "2016-06-07T21:07:31.171892745Z" + UpdatedAt: "2016-06-07T21:07:31.376370513Z" + Spec: + ContainerSpec: + Image: "redis" + Resources: + Limits: {} + Reservations: {} + RestartPolicy: + Condition: "any" + MaxAttempts: 0 + Placement: {} + ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz" + Slot: 1 + NodeID: "60gvrl6tm78dmak4yl7srz94v" + Status: + Timestamp: "2016-06-07T21:07:31.290032978Z" + State: "running" + Message: "started" + ContainerStatus: + ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035" + PID: 677 + DesiredState: "running" + NetworksAttachments: + - Network: + ID: "4qvuz4ko70xaltuqbt8956gd1" + Version: + Index: 18 + CreatedAt: "2016-06-07T20:31:11.912919752Z" + UpdatedAt: "2016-06-07T21:07:29.955277358Z" + Spec: + Name: "ingress" + Labels: + com.docker.swarm.internal: "true" + DriverConfiguration: {} + IPAMOptions: + Driver: {} + Configs: + - Subnet: "10.255.0.0/16" + Gateway: "10.255.0.1" + DriverState: + Name: "overlay" + Options: + com.docker.network.driver.overlay.vxlanid_list: "256" + IPAMOptions: + Driver: + Name: "default" + Configs: + - Subnet: "10.255.0.0/16" + Gateway: "10.255.0.1" + Addresses: + - "10.255.0.10/16" + AssignedGenericResources: + - DiscreteResourceSpec: + Kind: "SSD" + Value: 3 + - NamedResourceSpec: + Kind: "GPU" + Value: "UUID1" + - NamedResourceSpec: + Kind: "GPU" + Value: "UUID2" + + ServiceSpec: + description: "User modifiable configuration for a service." + type: object + properties: + Name: + description: "Name of the service." + type: "string" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + TaskTemplate: + $ref: "#/definitions/TaskSpec" + Mode: + description: "Scheduling mode for the service." + type: "object" + properties: + Replicated: + type: "object" + properties: + Replicas: + type: "integer" + format: "int64" + Global: + type: "object" + ReplicatedJob: + description: | + The mode used for services with a finite number of tasks that run + to a completed state. + type: "object" + properties: + MaxConcurrent: + description: | + The maximum number of replicas to run simultaneously. + type: "integer" + format: "int64" + default: 1 + TotalCompletions: + description: | + The total number of replicas desired to reach the Completed + state. If unset, will default to the value of `MaxConcurrent` + type: "integer" + format: "int64" + GlobalJob: + description: | + The mode used for services which run a task to the completed state + on each valid node. + type: "object" + UpdateConfig: + description: "Specification for the update strategy of the service." + type: "object" + properties: + Parallelism: + description: | + Maximum number of tasks to be updated in one iteration (0 means + unlimited parallelism). + type: "integer" + format: "int64" + Delay: + description: "Amount of time between updates, in nanoseconds." + type: "integer" + format: "int64" + FailureAction: + description: | + Action to take if an updated task fails to run, or stops running + during the update. + type: "string" + enum: + - "continue" + - "pause" + - "rollback" + Monitor: + description: | + Amount of time to monitor each updated task for failures, in + nanoseconds. + type: "integer" + format: "int64" + MaxFailureRatio: + description: | + The fraction of tasks that may fail during an update before the + failure action is invoked, specified as a floating point number + between 0 and 1. + type: "number" + default: 0 + Order: + description: | + The order of operations when rolling out an updated task. Either + the old task is shut down before the new task is started, or the + new task is started before the old task is shut down. + type: "string" + enum: + - "stop-first" + - "start-first" + RollbackConfig: + description: "Specification for the rollback strategy of the service." + type: "object" + properties: + Parallelism: + description: | + Maximum number of tasks to be rolled back in one iteration (0 means + unlimited parallelism). + type: "integer" + format: "int64" + Delay: + description: | + Amount of time between rollback iterations, in nanoseconds. + type: "integer" + format: "int64" + FailureAction: + description: | + Action to take if an rolled back task fails to run, or stops + running during the rollback. + type: "string" + enum: + - "continue" + - "pause" + Monitor: + description: | + Amount of time to monitor each rolled back task for failures, in + nanoseconds. + type: "integer" + format: "int64" + MaxFailureRatio: + description: | + The fraction of tasks that may fail during a rollback before the + failure action is invoked, specified as a floating point number + between 0 and 1. + type: "number" + default: 0 + Order: + description: | + The order of operations when rolling back a task. Either the old + task is shut down before the new task is started, or the new task + is started before the old task is shut down. + type: "string" + enum: + - "stop-first" + - "start-first" + Networks: + description: | + Specifies which networks the service should attach to. + + Deprecated: This field is deprecated since v1.44. The Networks field in TaskSpec should be used instead. + type: "array" + items: + $ref: "#/definitions/NetworkAttachmentConfig" + + EndpointSpec: + $ref: "#/definitions/EndpointSpec" + + EndpointPortConfig: + type: "object" + properties: + Name: + type: "string" + Protocol: + type: "string" + enum: + - "tcp" + - "udp" + - "sctp" + TargetPort: + description: "The port inside the container." + type: "integer" + PublishedPort: + description: "The port on the swarm hosts." + type: "integer" + PublishMode: + description: | + The mode in which port is published. + +


+ + - "ingress" makes the target port accessible on every node, + regardless of whether there is a task for the service running on + that node or not. + - "host" bypasses the routing mesh and publish the port directly on + the swarm node where that service is running. + + type: "string" + enum: + - "ingress" + - "host" + default: "ingress" + example: "ingress" + + EndpointSpec: + description: "Properties that can be configured to access and load balance a service." + type: "object" + properties: + Mode: + description: | + The mode of resolution to use for internal load balancing between tasks. + type: "string" + enum: + - "vip" + - "dnsrr" + default: "vip" + Ports: + description: | + List of exposed ports that this service is accessible on from the + outside. Ports can only be provided if `vip` resolution mode is used. + type: "array" + items: + $ref: "#/definitions/EndpointPortConfig" + + Service: + type: "object" + properties: + ID: + type: "string" + Version: + $ref: "#/definitions/ObjectVersion" + CreatedAt: + type: "string" + format: "dateTime" + UpdatedAt: + type: "string" + format: "dateTime" + Spec: + $ref: "#/definitions/ServiceSpec" + Endpoint: + type: "object" + properties: + Spec: + $ref: "#/definitions/EndpointSpec" + Ports: + type: "array" + items: + $ref: "#/definitions/EndpointPortConfig" + VirtualIPs: + type: "array" + items: + type: "object" + properties: + NetworkID: + type: "string" + Addr: + type: "string" + UpdateStatus: + description: "The status of a service update." + type: "object" + properties: + State: + type: "string" + enum: + - "updating" + - "paused" + - "completed" + StartedAt: + type: "string" + format: "dateTime" + CompletedAt: + type: "string" + format: "dateTime" + Message: + type: "string" + ServiceStatus: + description: | + The status of the service's tasks. Provided only when requested as + part of a ServiceList operation. + type: "object" + properties: + RunningTasks: + description: | + The number of tasks for the service currently in the Running state. + type: "integer" + format: "uint64" + example: 7 + DesiredTasks: + description: | + The number of tasks for the service desired to be running. + For replicated services, this is the replica count from the + service spec. For global services, this is computed by taking + count of all tasks for the service with a Desired State other + than Shutdown. + type: "integer" + format: "uint64" + example: 10 + CompletedTasks: + description: | + The number of tasks for a job that are in the Completed state. + This field must be cross-referenced with the service type, as the + value of 0 may mean the service is not in a job mode, or it may + mean the job-mode service has no tasks yet Completed. + type: "integer" + format: "uint64" + JobStatus: + description: | + The status of the service when it is in one of ReplicatedJob or + GlobalJob modes. Absent on Replicated and Global mode services. The + JobIteration is an ObjectVersion, but unlike the Service's version, + does not need to be sent with an update request. + type: "object" + properties: + JobIteration: + description: | + JobIteration is a value increased each time a Job is executed, + successfully or otherwise. "Executed", in this case, means the + job as a whole has been started, not that an individual Task has + been launched. A job is "Executed" when its ServiceSpec is + updated. JobIteration can be used to disambiguate Tasks belonging + to different executions of a job. Though JobIteration will + increase with each subsequent execution, it may not necessarily + increase by 1, and so JobIteration should not be used to + $ref: "#/definitions/ObjectVersion" + LastExecution: + description: | + The last time, as observed by the server, that this job was + started. + type: "string" + format: "dateTime" + example: + ID: "9mnpnzenvg8p8tdbtq4wvbkcz" + Version: + Index: 19 + CreatedAt: "2016-06-07T21:05:51.880065305Z" + UpdatedAt: "2016-06-07T21:07:29.962229872Z" + Spec: + Name: "hopeful_cori" + TaskTemplate: + ContainerSpec: + Image: "redis" + Resources: + Limits: {} + Reservations: {} + RestartPolicy: + Condition: "any" + MaxAttempts: 0 + Placement: {} + ForceUpdate: 0 + Mode: + Replicated: + Replicas: 1 + UpdateConfig: + Parallelism: 1 + Delay: 1000000000 + FailureAction: "pause" + Monitor: 15000000000 + MaxFailureRatio: 0.15 + RollbackConfig: + Parallelism: 1 + Delay: 1000000000 + FailureAction: "pause" + Monitor: 15000000000 + MaxFailureRatio: 0.15 + EndpointSpec: + Mode: "vip" + Ports: + - + Protocol: "tcp" + TargetPort: 6379 + PublishedPort: 30001 + Endpoint: + Spec: + Mode: "vip" + Ports: + - + Protocol: "tcp" + TargetPort: 6379 + PublishedPort: 30001 + Ports: + - + Protocol: "tcp" + TargetPort: 6379 + PublishedPort: 30001 + VirtualIPs: + - + NetworkID: "4qvuz4ko70xaltuqbt8956gd1" + Addr: "10.255.0.2/16" + - + NetworkID: "4qvuz4ko70xaltuqbt8956gd1" + Addr: "10.255.0.3/16" + + ImageDeleteResponseItem: + type: "object" + x-go-name: "DeleteResponse" + properties: + Untagged: + description: "The image ID of an image that was untagged" + type: "string" + Deleted: + description: "The image ID of an image that was deleted" + type: "string" + + ServiceCreateResponse: + type: "object" + description: | + contains the information returned to a client on the + creation of a new service. + properties: + ID: + description: "The ID of the created service." + type: "string" + x-nullable: false + example: "ak7w3gjqoa3kuz8xcpnyy0pvl" + Warnings: + description: | + Optional warning message. + + FIXME(thaJeztah): this should have "omitempty" in the generated type. + type: "array" + x-nullable: true + items: + type: "string" + example: + - "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" + + ServiceUpdateResponse: + type: "object" + properties: + Warnings: + description: "Optional warning messages" + type: "array" + items: + type: "string" + example: + Warnings: + - "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" + + ContainerInspectResponse: + type: "object" + title: "ContainerInspectResponse" + x-go-name: "InspectResponse" + properties: + Id: + description: |- + The ID of this container as a 128-bit (64-character) hexadecimal string (32 bytes). + type: "string" + x-go-name: "ID" + minLength: 64 + maxLength: 64 + pattern: "^[0-9a-fA-F]{64}$" + example: "aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf" + Created: + description: |- + Date and time at which the container was created, formatted in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + x-nullable: true + example: "2025-02-17T17:43:39.64001363Z" + Path: + description: |- + The path to the command being run + type: "string" + example: "/bin/sh" + Args: + description: "The arguments to the command being run" + type: "array" + items: + type: "string" + example: + - "-c" + - "exit 9" + State: + $ref: "#/definitions/ContainerState" + Image: + description: |- + The ID (digest) of the image that this container was created from. + type: "string" + example: "sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782" + ResolvConfPath: + description: |- + Location of the `/etc/resolv.conf` generated for the container on the + host. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + example: "/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/resolv.conf" + HostnamePath: + description: |- + Location of the `/etc/hostname` generated for the container on the + host. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + example: "/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/hostname" + HostsPath: + description: |- + Location of the `/etc/hosts` generated for the container on the + host. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + example: "/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/hosts" + LogPath: + description: |- + Location of the file used to buffer the container's logs. Depending on + the logging-driver used for the container, this field may be omitted. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + x-nullable: true + example: "/var/lib/docker/containers/5b7c7e2b992aa426584ce6c47452756066be0e503a08b4516a433a54d2f69e59/5b7c7e2b992aa426584ce6c47452756066be0e503a08b4516a433a54d2f69e59-json.log" + Name: + description: |- + The name associated with this container. + + For historic reasons, the name may be prefixed with a forward-slash (`/`). + type: "string" + example: "/funny_chatelet" + RestartCount: + description: |- + Number of times the container was restarted since it was created, + or since daemon was started. + type: "integer" + example: 0 + Driver: + description: |- + The storage-driver used for the container's filesystem (graph-driver + or snapshotter). + type: "string" + example: "overlayfs" + Platform: + description: |- + The platform (operating system) for which the container was created. + + This field was introduced for the experimental "LCOW" (Linux Containers + On Windows) features, which has been removed. In most cases, this field + is equal to the host's operating system (`linux` or `windows`). + type: "string" + example: "linux" + ImageManifestDescriptor: + $ref: "#/definitions/OCIDescriptor" + description: |- + OCI descriptor of the platform-specific manifest of the image + the container was created from. + + Note: Only available if the daemon provides a multi-platform + image store. + MountLabel: + description: |- + SELinux mount label set for the container. + type: "string" + example: "" + ProcessLabel: + description: |- + SELinux process label set for the container. + type: "string" + example: "" + AppArmorProfile: + description: |- + The AppArmor profile set for the container. + type: "string" + example: "" + ExecIDs: + description: |- + IDs of exec instances that are running in the container. + type: "array" + items: + type: "string" + x-nullable: true + example: + - "b35395de42bc8abd327f9dd65d913b9ba28c74d2f0734eeeae84fa1c616a0fca" + - "3fc1232e5cd20c8de182ed81178503dc6437f4e7ef12b52cc5e8de020652f1c4" + HostConfig: + $ref: "#/definitions/HostConfig" + GraphDriver: + $ref: "#/definitions/DriverData" + x-nullable: true + Storage: + $ref: "#/definitions/Storage" + x-nullable: true + SizeRw: + description: |- + The size of files that have been created or changed by this container. + + This field is omitted by default, and only set when size is requested + in the API request. + type: "integer" + format: "int64" + x-nullable: true + example: "122880" + SizeRootFs: + description: |- + The total size of all files in the read-only layers from the image + that the container uses. These layers can be shared between containers. + + This field is omitted by default, and only set when size is requested + in the API request. + type: "integer" + format: "int64" + x-nullable: true + example: "1653948416" + Mounts: + description: |- + List of mounts used by the container. + type: "array" + items: + $ref: "#/definitions/MountPoint" + Config: + $ref: "#/definitions/ContainerConfig" + NetworkSettings: + $ref: "#/definitions/NetworkSettings" + + ContainerSummary: + type: "object" + properties: + Id: + description: |- + The ID of this container as a 128-bit (64-character) hexadecimal string (32 bytes). + type: "string" + x-go-name: "ID" + minLength: 64 + maxLength: 64 + pattern: "^[0-9a-fA-F]{64}$" + example: "aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf" + Names: + description: |- + The names associated with this container. Most containers have a single + name, but when using legacy "links", the container can have multiple + names. + + For historic reasons, names are prefixed with a forward-slash (`/`). + type: "array" + items: + type: "string" + example: + - "/funny_chatelet" + Image: + description: |- + The name or ID of the image used to create the container. + + This field shows the image reference as was specified when creating the container, + which can be in its canonical form (e.g., `docker.io/library/ubuntu:latest` + or `docker.io/library/ubuntu@sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782`), + short form (e.g., `ubuntu:latest`)), or the ID(-prefix) of the image (e.g., `72297848456d`). + + The content of this field can be updated at runtime if the image used to + create the container is untagged, in which case the field is updated to + contain the the image ID (digest) it was resolved to in its canonical, + non-truncated form (e.g., `sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782`). + type: "string" + example: "docker.io/library/ubuntu:latest" + ImageID: + description: |- + The ID (digest) of the image that this container was created from. + type: "string" + example: "sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782" + ImageManifestDescriptor: + $ref: "#/definitions/OCIDescriptor" + x-nullable: true + description: | + OCI descriptor of the platform-specific manifest of the image + the container was created from. + + Note: Only available if the daemon provides a multi-platform + image store. + + This field is not populated in the `GET /system/df` endpoint. + Command: + description: "Command to run when starting the container" + type: "string" + example: "/bin/bash" + Created: + description: |- + Date and time at which the container was created as a Unix timestamp + (number of seconds since EPOCH). + type: "integer" + format: "int64" + example: "1739811096" + Ports: + description: |- + Port-mappings for the container. + type: "array" + items: + $ref: "#/definitions/PortSummary" + SizeRw: + description: |- + The size of files that have been created or changed by this container. + + This field is omitted by default, and only set when size is requested + in the API request. + type: "integer" + format: "int64" + x-nullable: true + example: "122880" + SizeRootFs: + description: |- + The total size of all files in the read-only layers from the image + that the container uses. These layers can be shared between containers. + + This field is omitted by default, and only set when size is requested + in the API request. + type: "integer" + format: "int64" + x-nullable: true + example: "1653948416" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + example: + com.example.vendor: "Acme" + com.example.license: "GPL" + com.example.version: "1.0" + State: + description: | + The state of this container. + type: "string" + enum: + - "created" + - "running" + - "paused" + - "restarting" + - "exited" + - "removing" + - "dead" + example: "running" + Status: + description: |- + Additional human-readable status of this container (e.g. `Exit 0`) + type: "string" + example: "Up 4 days" + HostConfig: + type: "object" + description: |- + Summary of host-specific runtime information of the container. This + is a reduced set of information in the container's "HostConfig" as + available in the container "inspect" response. + properties: + NetworkMode: + description: |- + Networking mode (`host`, `none`, `container:`) or name of the + primary network the container is using. + + This field is primarily for backward compatibility. The container + can be connected to multiple networks for which information can be + found in the `NetworkSettings.Networks` field, which enumerates + settings per network. + type: "string" + example: "mynetwork" + Annotations: + description: |- + Arbitrary key-value metadata attached to the container. + type: "object" + x-nullable: true + additionalProperties: + type: "string" + example: + io.kubernetes.docker.type: "container" + io.kubernetes.sandbox.id: "3befe639bed0fd6afdd65fd1fa84506756f59360ec4adc270b0fdac9be22b4d3" + NetworkSettings: + description: |- + Summary of the container's network settings + type: "object" + properties: + Networks: + type: "object" + description: |- + Summary of network-settings for each network the container is + attached to. + additionalProperties: + $ref: "#/definitions/EndpointSettings" + Mounts: + type: "array" + description: |- + List of mounts used by the container. + items: + $ref: "#/definitions/MountPoint" + Health: + type: "object" + description: |- + Summary of health status + + Added in v1.52, before that version all container summary not include Health. + After this attribute introduced, it includes containers with no health checks configured, + or containers that are not running with none + properties: + Status: + type: "string" + description: |- + the health status of the container + enum: + - "none" + - "starting" + - "healthy" + - "unhealthy" + example: "healthy" + FailingStreak: + description: "FailingStreak is the number of consecutive failures" + type: "integer" + example: 0 + + ContainersDiskUsage: + type: "object" + x-go-name: "DiskUsage" + x-go-package: "github.com/moby/moby/api/types/container" + description: | + represents system data usage information for container resources. + properties: + ActiveCount: + description: | + Count of active containers. + type: "integer" + format: "int64" + example: 1 + TotalCount: + description: | + Count of all containers. + type: "integer" + format: "int64" + example: 4 + Reclaimable: + description: | + Disk space that can be reclaimed by removing inactive containers. + type: "integer" + format: "int64" + example: 12345678 + TotalSize: + description: | + Disk space in use by containers. + type: "integer" + format: "int64" + example: 98765432 + Items: + description: | + List of container summaries. + type: "array" + x-omitempty: true + items: + x-go-type: + type: Summary + + Driver: + description: "Driver represents a driver (network, logging, secrets)." + type: "object" + required: [Name] + properties: + Name: + description: "Name of the driver." + type: "string" + x-nullable: false + example: "some-driver" + Options: + description: "Key/value map of driver-specific options." + type: "object" + x-nullable: false + additionalProperties: + type: "string" + example: + OptionA: "value for driver-specific option A" + OptionB: "value for driver-specific option B" + + SecretSpec: + type: "object" + properties: + Name: + description: "User-defined name of the secret." + type: "string" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + Data: + description: | + Data is the data to store as a secret, formatted as a standard base64-encoded + ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-4)) string. + It must be empty if the Driver field is set, in which case the data is + loaded from an external secret store. The maximum allowed size is 500KB, + as defined in [MaxSecretSize](https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0/api/validation#MaxSecretSize). + + This field is only used to _create_ a secret, and is not returned by + other endpoints. + type: "string" + example: "" + Driver: + description: | + Name of the secrets driver used to fetch the secret's value from an + external secret store. + $ref: "#/definitions/Driver" + Templating: + description: | + Templating driver, if applicable + + Templating controls whether and how to evaluate the config payload as + a template. If no driver is set, no templating is used. + $ref: "#/definitions/Driver" + + Secret: + type: "object" + properties: + ID: + type: "string" + example: "blt1owaxmitz71s9v5zh81zun" + Version: + $ref: "#/definitions/ObjectVersion" + CreatedAt: + type: "string" + format: "dateTime" + example: "2017-07-20T13:55:28.678958722Z" + UpdatedAt: + type: "string" + format: "dateTime" + example: "2017-07-20T13:55:28.678958722Z" + Spec: + $ref: "#/definitions/SecretSpec" + + ConfigSpec: + type: "object" + properties: + Name: + description: "User-defined name of the config." + type: "string" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + Data: + description: | + Data is the data to store as a config, formatted as a standard base64-encoded + ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-4)) string. + The maximum allowed size is 1000KB, as defined in [MaxConfigSize](https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0-20250103191802-8c1959736554/manager/controlapi#MaxConfigSize). + type: "string" + Templating: + description: | + Templating driver, if applicable + + Templating controls whether and how to evaluate the config payload as + a template. If no driver is set, no templating is used. + $ref: "#/definitions/Driver" + + Config: + type: "object" + properties: + ID: + type: "string" + Version: + $ref: "#/definitions/ObjectVersion" + CreatedAt: + type: "string" + format: "dateTime" + UpdatedAt: + type: "string" + format: "dateTime" + Spec: + $ref: "#/definitions/ConfigSpec" + + ContainerState: + description: | + ContainerState stores container's running state. It's part of ContainerJSONBase + and will be returned by the "inspect" command. + type: "object" + x-nullable: true + properties: + Status: + description: | + String representation of the container state. Can be one of "created", + "running", "paused", "restarting", "removing", "exited", or "dead". + type: "string" + enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"] + example: "running" + Running: + description: | + Whether this container is running. + + Note that a running container can be _paused_. The `Running` and `Paused` + booleans are not mutually exclusive: + + When pausing a container (on Linux), the freezer cgroup is used to suspend + all processes in the container. Freezing the process requires the process to + be running. As a result, paused containers are both `Running` _and_ `Paused`. + + Use the `Status` field instead to determine if a container's state is "running". + type: "boolean" + example: true + Paused: + description: "Whether this container is paused." + type: "boolean" + example: false + Restarting: + description: "Whether this container is restarting." + type: "boolean" + example: false + OOMKilled: + description: | + Whether a process within this container has been killed because it ran + out of memory since the container was last started. + type: "boolean" + example: false + Dead: + type: "boolean" + example: false + Pid: + description: "The process ID of this container" + type: "integer" + example: 1234 + ExitCode: + description: "The last exit code of this container" + type: "integer" + example: 0 + Error: + type: "string" + StartedAt: + description: "The time when this container was last started." + type: "string" + example: "2020-01-06T09:06:59.461876391Z" + FinishedAt: + description: "The time when this container last exited." + type: "string" + example: "2020-01-06T09:07:59.461876391Z" + Health: + $ref: "#/definitions/Health" + + ContainerCreateResponse: + description: "OK response to ContainerCreate operation" + type: "object" + title: "ContainerCreateResponse" + x-go-name: "CreateResponse" + required: [Id, Warnings] + properties: + Id: + description: "The ID of the created container" + type: "string" + x-nullable: false + example: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743" + Warnings: + description: "Warnings encountered when creating the container" + type: "array" + x-nullable: false + items: + type: "string" + example: [] + + ContainerUpdateResponse: + type: "object" + title: "ContainerUpdateResponse" + x-go-name: "UpdateResponse" + description: |- + Response for a successful container-update. + properties: + Warnings: + type: "array" + description: |- + Warnings encountered when updating the container. + items: + type: "string" + example: ["Published ports are discarded when using host network mode"] + + ContainerStatsResponse: + description: | + Statistics sample for a container. + type: "object" + x-go-name: "StatsResponse" + title: "ContainerStatsResponse" + properties: + id: + description: | + ID of the container for which the stats were collected. + type: "string" + x-nullable: true + example: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743" + name: + description: | + Name of the container for which the stats were collected. + type: "string" + x-nullable: true + example: "boring_wozniak" + os_type: + description: | + OSType is the OS of the container ("linux" or "windows") to allow + platform-specific handling of stats. + type: "string" + x-nullable: true + example: "linux" + read: + description: | + Date and time at which this sample was collected. + The value is formatted as [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) + with nano-seconds. + type: "string" + format: "date-time" + example: "2025-01-16T13:55:22.165243637Z" + cpu_stats: + $ref: "#/definitions/ContainerCPUStats" + memory_stats: + $ref: "#/definitions/ContainerMemoryStats" + networks: + description: | + Network statistics for the container per interface. + + This field is omitted if the container has no networking enabled. + x-nullable: true + additionalProperties: + $ref: "#/definitions/ContainerNetworkStats" + example: + eth0: + rx_bytes: 5338 + rx_dropped: 0 + rx_errors: 0 + rx_packets: 36 + tx_bytes: 648 + tx_dropped: 0 + tx_errors: 0 + tx_packets: 8 + eth5: + rx_bytes: 4641 + rx_dropped: 0 + rx_errors: 0 + rx_packets: 26 + tx_bytes: 690 + tx_dropped: 0 + tx_errors: 0 + tx_packets: 9 + pids_stats: + $ref: "#/definitions/ContainerPidsStats" + blkio_stats: + $ref: "#/definitions/ContainerBlkioStats" + num_procs: + description: | + The number of processors on the system. + + This field is Windows-specific and always zero for Linux containers. + type: "integer" + format: "uint32" + example: 16 + storage_stats: + $ref: "#/definitions/ContainerStorageStats" + preread: + description: | + Date and time at which this first sample was collected. This field + is not propagated if the "one-shot" option is set. If the "one-shot" + option is set, this field may be omitted, empty, or set to a default + date (`0001-01-01T00:00:00Z`). + + The value is formatted as [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) + with nano-seconds. + type: "string" + format: "date-time" + example: "2025-01-16T13:55:21.160452595Z" + precpu_stats: + $ref: "#/definitions/ContainerCPUStats" + + ContainerBlkioStats: + description: | + BlkioStats stores all IO service stats for data read and write. + + This type is Linux-specific and holds many fields that are specific to cgroups v1. + On a cgroup v2 host, all fields other than `io_service_bytes_recursive` + are omitted or `null`. + + This type is only populated on Linux and omitted for Windows containers. + type: "object" + x-go-name: "BlkioStats" + x-nullable: true + properties: + io_service_bytes_recursive: + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_serviced_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_queue_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_service_time_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_wait_time_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_merged_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_time_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + sectors_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + example: + io_service_bytes_recursive: [ + {"major": 254, "minor": 0, "op": "read", "value": 7593984}, + {"major": 254, "minor": 0, "op": "write", "value": 100} + ] + io_serviced_recursive: null + io_queue_recursive: null + io_service_time_recursive: null + io_wait_time_recursive: null + io_merged_recursive: null + io_time_recursive: null + sectors_recursive: null + + ContainerBlkioStatEntry: + description: | + Blkio stats entry. + + This type is Linux-specific and omitted for Windows containers. + type: "object" + x-go-name: "BlkioStatEntry" + x-nullable: true + properties: + major: + type: "integer" + format: "uint64" + example: 254 + minor: + type: "integer" + format: "uint64" + example: 0 + op: + type: "string" + example: "read" + value: + type: "integer" + format: "uint64" + example: 7593984 + + ContainerCPUStats: + description: | + CPU related info of the container + type: "object" + x-go-name: "CPUStats" + x-nullable: true + properties: + cpu_usage: + $ref: "#/definitions/ContainerCPUUsage" + system_cpu_usage: + description: | + System Usage. + + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 5 + online_cpus: + description: | + Number of online CPUs. + + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint32" + x-nullable: true + example: 5 + throttling_data: + $ref: "#/definitions/ContainerThrottlingData" + + ContainerCPUUsage: + description: | + All CPU stats aggregated since container inception. + type: "object" + x-go-name: "CPUUsage" + x-nullable: true + properties: + total_usage: + description: | + Total CPU time consumed in nanoseconds (Linux) or 100's of nanoseconds (Windows). + type: "integer" + format: "uint64" + example: 29912000 + percpu_usage: + description: | + Total CPU time (in nanoseconds) consumed per core (Linux). + + This field is Linux-specific when using cgroups v1. It is omitted + when using cgroups v2 and Windows containers. + type: "array" + x-nullable: true + items: + type: "integer" + format: "uint64" + example: 29912000 + + usage_in_kernelmode: + description: | + Time (in nanoseconds) spent by tasks of the cgroup in kernel mode (Linux), + or time spent (in 100's of nanoseconds) by all container processes in + kernel mode (Windows). + + Not populated for Windows containers using Hyper-V isolation. + type: "integer" + format: "uint64" + example: 21994000 + usage_in_usermode: + description: | + Time (in nanoseconds) spent by tasks of the cgroup in user mode (Linux), + or time spent (in 100's of nanoseconds) by all container processes in + kernel mode (Windows). + + Not populated for Windows containers using Hyper-V isolation. + type: "integer" + format: "uint64" + example: 7918000 + + ContainerPidsStats: + description: | + PidsStats contains Linux-specific stats of a container's process-IDs (PIDs). + + This type is Linux-specific and omitted for Windows containers. + type: "object" + x-go-name: "PidsStats" + x-nullable: true + properties: + current: + description: | + Current is the number of PIDs in the cgroup. + type: "integer" + format: "uint64" + x-nullable: true + example: 5 + limit: + description: | + Limit is the hard limit on the number of pids in the cgroup. + A "Limit" of 0 means that there is no limit. + type: "integer" + format: "uint64" + x-nullable: true + example: "18446744073709551615" + + ContainerThrottlingData: + description: | + CPU throttling stats of the container. + + This type is Linux-specific and omitted for Windows containers. + type: "object" + x-go-name: "ThrottlingData" + x-nullable: true + properties: + periods: + description: | + Number of periods with throttling active. + type: "integer" + format: "uint64" + example: 0 + throttled_periods: + description: | + Number of periods when the container hit its throttling limit. + type: "integer" + format: "uint64" + example: 0 + throttled_time: + description: | + Aggregated time (in nanoseconds) the container was throttled for. + type: "integer" + format: "uint64" + example: 0 + + ContainerMemoryStats: + description: | + Aggregates all memory stats since container inception on Linux. + Windows returns stats for commit and private working set only. + type: "object" + x-go-name: "MemoryStats" + properties: + usage: + description: | + Current `res_counter` usage for memory. + + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + max_usage: + description: | + Maximum usage ever recorded. + + This field is Linux-specific and only supported on cgroups v1. + It is omitted when using cgroups v2 and for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + stats: + description: | + All the stats exported via memory.stat. + + The fields in this object differ between cgroups v1 and v2. + On cgroups v1, fields such as `cache`, `rss`, `mapped_file` are available. + On cgroups v2, fields such as `file`, `anon`, `inactive_file` are available. + + This field is Linux-specific and omitted for Windows containers. + type: "object" + additionalProperties: + type: "integer" + format: "uint64" + x-nullable: true + example: + { + "active_anon": 1572864, + "active_file": 5115904, + "anon": 1572864, + "anon_thp": 0, + "file": 7626752, + "file_dirty": 0, + "file_mapped": 2723840, + "file_writeback": 0, + "inactive_anon": 0, + "inactive_file": 2510848, + "kernel_stack": 16384, + "pgactivate": 0, + "pgdeactivate": 0, + "pgfault": 2042, + "pglazyfree": 0, + "pglazyfreed": 0, + "pgmajfault": 45, + "pgrefill": 0, + "pgscan": 0, + "pgsteal": 0, + "shmem": 0, + "slab": 1180928, + "slab_reclaimable": 725576, + "slab_unreclaimable": 455352, + "sock": 0, + "thp_collapse_alloc": 0, + "thp_fault_alloc": 1, + "unevictable": 0, + "workingset_activate": 0, + "workingset_nodereclaim": 0, + "workingset_refault": 0 + } + failcnt: + description: | + Number of times memory usage hits limits. + + This field is Linux-specific and only supported on cgroups v1. + It is omitted when using cgroups v2 and for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + limit: + description: | + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 8217579520 + commitbytes: + description: | + Committed bytes. + + This field is Windows-specific and omitted for Linux containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + commitpeakbytes: + description: | + Peak committed bytes. + + This field is Windows-specific and omitted for Linux containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + privateworkingset: + description: | + Private working set. + + This field is Windows-specific and omitted for Linux containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + + ContainerNetworkStats: + description: | + Aggregates the network stats of one container + type: "object" + x-go-name: "NetworkStats" + x-nullable: true + properties: + rx_bytes: + description: | + Bytes received. Windows and Linux. + type: "integer" + format: "uint64" + example: 5338 + rx_packets: + description: | + Packets received. Windows and Linux. + type: "integer" + format: "uint64" + example: 36 + rx_errors: + description: | + Received errors. Not used on Windows. + + This field is Linux-specific and always zero for Windows containers. + type: "integer" + format: "uint64" + example: 0 + rx_dropped: + description: | + Incoming packets dropped. Windows and Linux. + type: "integer" + format: "uint64" + example: 0 + tx_bytes: + description: | + Bytes sent. Windows and Linux. + type: "integer" + format: "uint64" + example: 1200 + tx_packets: + description: | + Packets sent. Windows and Linux. + type: "integer" + format: "uint64" + example: 12 + tx_errors: + description: | + Sent errors. Not used on Windows. + + This field is Linux-specific and always zero for Windows containers. + type: "integer" + format: "uint64" + example: 0 + tx_dropped: + description: | + Outgoing packets dropped. Windows and Linux. + type: "integer" + format: "uint64" + example: 0 + endpoint_id: + description: | + Endpoint ID. Not used on Linux. + + This field is Windows-specific and omitted for Linux containers. + type: "string" + x-nullable: true + instance_id: + description: | + Instance ID. Not used on Linux. + + This field is Windows-specific and omitted for Linux containers. + type: "string" + x-nullable: true + + ContainerStorageStats: + description: | + StorageStats is the disk I/O stats for read/write on Windows. + + This type is Windows-specific and omitted for Linux containers. + type: "object" + x-go-name: "StorageStats" + x-nullable: true + properties: + read_count_normalized: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + read_size_bytes: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + write_count_normalized: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + write_size_bytes: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + + ContainerTopResponse: + type: "object" + x-go-name: "TopResponse" + title: "ContainerTopResponse" + description: |- + Container "top" response. + properties: + Titles: + description: "The ps column titles" + type: "array" + items: + type: "string" + example: + Titles: + - "UID" + - "PID" + - "PPID" + - "C" + - "STIME" + - "TTY" + - "TIME" + - "CMD" + Processes: + description: |- + Each process running in the container, where each process + is an array of values corresponding to the titles. + type: "array" + items: + type: "array" + items: + type: "string" + example: + Processes: + - + - "root" + - "13642" + - "882" + - "0" + - "17:03" + - "pts/0" + - "00:00:00" + - "/bin/bash" + - + - "root" + - "13735" + - "13642" + - "0" + - "17:06" + - "pts/0" + - "00:00:00" + - "sleep 10" + + ContainerWaitResponse: + description: "OK response to ContainerWait operation" + type: "object" + x-go-name: "WaitResponse" + title: "ContainerWaitResponse" + required: [StatusCode] + properties: + StatusCode: + description: "Exit code of the container" + type: "integer" + format: "int64" + x-nullable: false + Error: + $ref: "#/definitions/ContainerWaitExitError" + + ContainerWaitExitError: + description: "container waiting error, if any" + type: "object" + x-go-name: "WaitExitError" + properties: + Message: + description: "Details of an error" + type: "string" + + SystemVersion: + type: "object" + description: | + Response of Engine API: GET "/version" + properties: + Platform: + type: "object" + required: [Name] + properties: + Name: + type: "string" + Components: + type: "array" + description: | + Information about system components + items: + type: "object" + x-go-name: ComponentVersion + required: [Name, Version] + properties: + Name: + description: | + Name of the component + type: "string" + example: "Engine" + Version: + description: | + Version of the component + type: "string" + x-nullable: false + example: "27.0.1" + Details: + description: | + Key/value pairs of strings with additional information about the + component. These values are intended for informational purposes + only, and their content is not defined, and not part of the API + specification. + + These messages can be printed by the client as information to the user. + type: "object" + x-nullable: true + Version: + description: "The version of the daemon" + type: "string" + example: "27.0.1" + ApiVersion: + description: | + The default (and highest) API version that is supported by the daemon + type: "string" + example: "1.47" + MinAPIVersion: + description: | + The minimum API version that is supported by the daemon + type: "string" + example: "1.24" + GitCommit: + description: | + The Git commit of the source code that was used to build the daemon + type: "string" + example: "48a66213fe" + GoVersion: + description: | + The version Go used to compile the daemon, and the version of the Go + runtime in use. + type: "string" + example: "go1.22.7" + Os: + description: | + The operating system that the daemon is running on ("linux" or "windows") + type: "string" + example: "linux" + Arch: + description: | + Architecture of the daemon, as returned by the Go runtime (`GOARCH`). + + A full list of possible values can be found in the [Go documentation](https://go.dev/doc/install/source#environment). + type: "string" + example: "amd64" + KernelVersion: + description: | + The kernel version (`uname -r`) that the daemon is running on. + + This field is omitted when empty. + type: "string" + example: "6.8.0-31-generic" + Experimental: + description: | + Indicates if the daemon is started with experimental features enabled. + + This field is omitted when empty / false. + type: "boolean" + example: true + BuildTime: + description: | + The date and time that the daemon was compiled. + type: "string" + example: "2020-06-22T15:49:27.000000000+00:00" + + SystemInfo: + type: "object" + properties: + ID: + description: | + Unique identifier of the daemon. + +


+ + > **Note**: The format of the ID itself is not part of the API, and + > should not be considered stable. + type: "string" + example: "7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS" + Containers: + description: "Total number of containers on the host." + type: "integer" + example: 14 + ContainersRunning: + description: | + Number of containers with status `"running"`. + type: "integer" + example: 3 + ContainersPaused: + description: | + Number of containers with status `"paused"`. + type: "integer" + example: 1 + ContainersStopped: + description: | + Number of containers with status `"stopped"`. + type: "integer" + example: 10 + Images: + description: | + Total number of images on the host. + + Both _tagged_ and _untagged_ (dangling) images are counted. + type: "integer" + example: 508 + Driver: + description: "Name of the storage driver in use." + type: "string" + example: "overlay2" + DriverStatus: + description: | + Information specific to the storage driver, provided as + "label" / "value" pairs. + + This information is provided by the storage driver, and formatted + in a way consistent with the output of `docker info` on the command + line. + +


+ + > **Note**: The information returned in this field, including the + > formatting of values and labels, should not be considered stable, + > and may change without notice. + type: "array" + items: + type: "array" + items: + type: "string" + example: + - ["Backing Filesystem", "extfs"] + - ["Supports d_type", "true"] + - ["Native Overlay Diff", "true"] + DockerRootDir: + description: | + Root directory of persistent Docker state. + + Defaults to `/var/lib/docker` on Linux, and `C:\ProgramData\docker` + on Windows. + type: "string" + example: "/var/lib/docker" + Plugins: + $ref: "#/definitions/PluginsInfo" + MemoryLimit: + description: "Indicates if the host has memory limit support enabled." + type: "boolean" + example: true + SwapLimit: + description: "Indicates if the host has memory swap limit support enabled." + type: "boolean" + example: true + CpuCfsPeriod: + description: | + Indicates if CPU CFS(Completely Fair Scheduler) period is supported by + the host. + type: "boolean" + example: true + CpuCfsQuota: + description: | + Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by + the host. + type: "boolean" + example: true + CPUShares: + description: | + Indicates if CPU Shares limiting is supported by the host. + type: "boolean" + example: true + CPUSet: + description: | + Indicates if CPUsets (cpuset.cpus, cpuset.mems) are supported by the host. + + See [cpuset(7)](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt) + type: "boolean" + example: true + PidsLimit: + description: "Indicates if the host kernel has PID limit support enabled." + type: "boolean" + example: true + OomKillDisable: + description: "Indicates if OOM killer disable is supported on the host." + type: "boolean" + IPv4Forwarding: + description: "Indicates IPv4 forwarding is enabled." + type: "boolean" + example: true + Debug: + description: | + Indicates if the daemon is running in debug-mode / with debug-level + logging enabled. + type: "boolean" + example: true + NFd: + description: | + The total number of file Descriptors in use by the daemon process. + + This information is only returned if debug-mode is enabled. + type: "integer" + example: 64 + NGoroutines: + description: | + The number of goroutines that currently exist. + + This information is only returned if debug-mode is enabled. + type: "integer" + example: 174 + SystemTime: + description: | + Current system-time in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) + format with nano-seconds. + type: "string" + example: "2017-08-08T20:28:29.06202363Z" + LoggingDriver: + description: | + The logging driver to use as a default for new containers. + type: "string" + CgroupDriver: + description: | + The driver to use for managing cgroups. + type: "string" + enum: ["cgroupfs", "systemd", "none"] + default: "cgroupfs" + example: "cgroupfs" + CgroupVersion: + description: | + The version of the cgroup. + type: "string" + enum: ["1", "2"] + default: "1" + example: "1" + NEventsListener: + description: "Number of event listeners subscribed." + type: "integer" + example: 30 + KernelVersion: + description: | + Kernel version of the host. + + On Linux, this information obtained from `uname`. On Windows this + information is queried from the HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ + registry value, for example _"10.0 14393 (14393.1198.amd64fre.rs1_release_sec.170427-1353)"_. + type: "string" + example: "6.8.0-31-generic" + OperatingSystem: + description: | + Name of the host's operating system, for example: "Ubuntu 24.04 LTS" + or "Windows Server 2016 Datacenter" + type: "string" + example: "Ubuntu 24.04 LTS" + OSVersion: + description: | + Version of the host's operating system + +


+ + > **Note**: The information returned in this field, including its + > very existence, and the formatting of values, should not be considered + > stable, and may change without notice. + type: "string" + example: "24.04" + OSType: + description: | + Generic type of the operating system of the host, as returned by the + Go runtime (`GOOS`). + + Currently returned values are "linux" and "windows". A full list of + possible values can be found in the [Go documentation](https://go.dev/doc/install/source#environment). + type: "string" + example: "linux" + Architecture: + description: | + Hardware architecture of the host, as returned by the operating system. + This is equivalent to the output of `uname -m` on Linux. + + Unlike `Arch` (from `/version`), this reports the machine's native + architecture, which can differ from the Go runtime architecture when + running a binary compiled for a different architecture (for example, + a 32-bit binary running on 64-bit hardware). + type: "string" + example: "x86_64" + NCPU: + description: | + The number of logical CPUs usable by the daemon. + + The number of available CPUs is checked by querying the operating + system when the daemon starts. Changes to operating system CPU + allocation after the daemon is started are not reflected. + type: "integer" + example: 4 + MemTotal: + description: | + Total amount of physical memory available on the host, in bytes. + type: "integer" + format: "int64" + example: 2095882240 + + IndexServerAddress: + description: | + Address / URL of the index server that is used for image search, + and as a default for user authentication for Docker Hub and Docker Cloud. + default: "https://index.docker.io/v1/" + type: "string" + example: "https://index.docker.io/v1/" + RegistryConfig: + $ref: "#/definitions/RegistryServiceConfig" + GenericResources: + $ref: "#/definitions/GenericResources" + HttpProxy: + description: | + HTTP-proxy configured for the daemon. This value is obtained from the + [`HTTP_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. + Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL + are masked in the API response. + + Containers do not automatically inherit this configuration. + type: "string" + example: "http://xxxxx:xxxxx@proxy.corp.example.com:8080" + HttpsProxy: + description: | + HTTPS-proxy configured for the daemon. This value is obtained from the + [`HTTPS_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. + Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL + are masked in the API response. + + Containers do not automatically inherit this configuration. + type: "string" + example: "https://xxxxx:xxxxx@proxy.corp.example.com:4443" + NoProxy: + description: | + Comma-separated list of domain extensions for which no proxy should be + used. This value is obtained from the [`NO_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) + environment variable. + + Containers do not automatically inherit this configuration. + type: "string" + example: "*.local, 169.254/16" + Name: + description: "Hostname of the host." + type: "string" + example: "node5.corp.example.com" + Labels: + description: | + User-defined labels (key/value metadata) as set on the daemon. + +


+ + > **Note**: When part of a Swarm, nodes can both have _daemon_ labels, + > set through the daemon configuration, and _node_ labels, set from a + > manager node in the Swarm. Node labels are not included in this + > field. Node labels can be retrieved using the `/nodes/(id)` endpoint + > on a manager node in the Swarm. + type: "array" + items: + type: "string" + example: ["storage=ssd", "production"] + ExperimentalBuild: + description: | + Indicates if experimental features are enabled on the daemon. + type: "boolean" + example: true + ServerVersion: + description: | + Version string of the daemon. + type: "string" + example: "27.0.1" + Runtimes: + description: | + List of [OCI compliant](https://github.com/opencontainers/runtime-spec) + runtimes configured on the daemon. Keys hold the "name" used to + reference the runtime. + + The Docker daemon relies on an OCI compliant runtime (invoked via the + `containerd` daemon) as its interface to the Linux kernel namespaces, + cgroups, and SELinux. + + The default runtime is `runc`, and automatically configured. Additional + runtimes can be configured by the user and will be listed here. + type: "object" + additionalProperties: + $ref: "#/definitions/Runtime" + default: + runc: + path: "runc" + example: + runc: + path: "runc" + runc-master: + path: "/go/bin/runc" + custom: + path: "/usr/local/bin/my-oci-runtime" + runtimeArgs: ["--debug", "--systemd-cgroup=false"] + DefaultRuntime: + description: | + Name of the default OCI runtime that is used when starting containers. + + The default can be overridden per-container at create time. + type: "string" + default: "runc" + example: "runc" + Swarm: + $ref: "#/definitions/SwarmInfo" + LiveRestoreEnabled: + description: | + Indicates if live restore is enabled. + + If enabled, containers are kept running when the daemon is shutdown + or upon daemon start if running containers are detected. + type: "boolean" + default: false + example: false + Isolation: + description: | + Represents the isolation technology to use as a default for containers. + The supported values are platform-specific. + + If no isolation value is specified on daemon start, on Windows client, + the default is `hyperv`, and on Windows server, the default is `process`. + + This option is currently not used on other platforms. + default: "default" + type: "string" + enum: + - "default" + - "hyperv" + - "process" + - "" + InitBinary: + description: | + Name and, optional, path of the `docker-init` binary. + + If the path is omitted, the daemon searches the host's `$PATH` for the + binary and uses the first result. + type: "string" + example: "docker-init" + ContainerdCommit: + $ref: "#/definitions/Commit" + RuncCommit: + $ref: "#/definitions/Commit" + InitCommit: + $ref: "#/definitions/Commit" + SecurityOptions: + description: | + List of security features that are enabled on the daemon, such as + apparmor, seccomp, SELinux, user-namespaces (userns), rootless and + no-new-privileges. + + Additional configuration options for each security feature may + be present, and are included as a comma-separated list of key/value + pairs. + type: "array" + items: + type: "string" + example: + - "name=apparmor" + - "name=seccomp,profile=default" + - "name=selinux" + - "name=userns" + - "name=rootless" + ProductLicense: + description: | + Reports a summary of the product license on the daemon. + + If a commercial license has been applied to the daemon, information + such as number of nodes, and expiration are included. + type: "string" + example: "Community Engine" + DefaultAddressPools: + description: | + List of custom default address pools for local networks, which can be + specified in the daemon.json file or dockerd option. + + Example: a Base "10.10.0.0/16" with Size 24 will define the set of 256 + 10.10.[0-255].0/24 address pools. + type: "array" + items: + type: "object" + properties: + Base: + description: "The network address in CIDR format" + type: "string" + example: "10.10.0.0/16" + Size: + description: "The network pool size" + type: "integer" + example: "24" + FirewallBackend: + $ref: "#/definitions/FirewallInfo" + DiscoveredDevices: + description: | + List of devices discovered by device drivers. + + Each device includes information about its source driver, kind, name, + and additional driver-specific attributes. + type: "array" + items: + $ref: "#/definitions/DeviceInfo" + NRI: + $ref: "#/definitions/NRIInfo" + Warnings: + description: | + List of warnings / informational messages about missing features, or + issues related to the daemon configuration. + + These messages can be printed by the client as information to the user. + type: "array" + items: + type: "string" + example: + - "WARNING: No memory limit support" + CDISpecDirs: + description: | + List of directories where (Container Device Interface) CDI + specifications are located. + + These specifications define vendor-specific modifications to an OCI + runtime specification for a container being created. + + An empty list indicates that CDI device injection is disabled. + + Note that since using CDI device injection requires the daemon to have + experimental enabled. For non-experimental daemons an empty list will + always be returned. + type: "array" + items: + type: "string" + example: + - "/etc/cdi" + - "/var/run/cdi" + Containerd: + $ref: "#/definitions/ContainerdInfo" + + ContainerdInfo: + description: | + Information for connecting to the containerd instance that is used by the daemon. + This is included for debugging purposes only. + type: "object" + x-nullable: true + properties: + Address: + description: "The address of the containerd socket." + type: "string" + example: "/run/containerd/containerd.sock" + Namespaces: + description: | + The namespaces that the daemon uses for running containers and + plugins in containerd. These namespaces can be configured in the + daemon configuration, and are considered to be used exclusively + by the daemon, Tampering with the containerd instance may cause + unexpected behavior. + + As these namespaces are considered to be exclusively accessed + by the daemon, it is not recommended to change these values, + or to change them to a value that is used by other systems, + such as cri-containerd. + type: "object" + properties: + Containers: + description: | + The default containerd namespace used for containers managed + by the daemon. + + The default namespace for containers is "moby", but will be + suffixed with the `.` of the remapped `root` if + user-namespaces are enabled and the containerd image-store + is used. + type: "string" + default: "moby" + example: "moby" + Plugins: + description: | + The default containerd namespace used for plugins managed by + the daemon. + + The default namespace for plugins is "plugins.moby", but will be + suffixed with the `.` of the remapped `root` if + user-namespaces are enabled and the containerd image-store + is used. + type: "string" + default: "plugins.moby" + example: "plugins.moby" + + FirewallInfo: + description: | + Information about the daemon's firewalling configuration. + + This field is currently only used on Linux, and omitted on other platforms. + type: "object" + x-nullable: true + properties: + Driver: + description: | + The name of the firewall backend driver. + type: "string" + example: "nftables" + Info: + description: | + Information about the firewall backend, provided as + "label" / "value" pairs. + +


+ + > **Note**: The information returned in this field, including the + > formatting of values and labels, should not be considered stable, + > and may change without notice. + type: "array" + items: + type: "array" + items: + type: "string" + example: + - ["ReloadedAt", "2025-01-01T00:00:00Z"] + + # PluginsInfo is a temp struct holding Plugins name + # registered with docker daemon. It is used by Info struct + PluginsInfo: + description: | + Available plugins per type. + +


+ + > **Note**: Only unmanaged (V1) plugins are included in this list. + > V1 plugins are "lazily" loaded, and are not returned in this list + > if there is no resource using the plugin. + type: "object" + properties: + Volume: + description: "Names of available volume-drivers, and network-driver plugins." + type: "array" + items: + type: "string" + example: ["local"] + Network: + description: "Names of available network-drivers, and network-driver plugins." + type: "array" + items: + type: "string" + example: ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"] + Authorization: + description: "Names of available authorization plugins." + type: "array" + items: + type: "string" + example: ["img-authz-plugin", "hbm"] + Log: + description: "Names of available logging-drivers, and logging-driver plugins." + type: "array" + items: + type: "string" + example: ["awslogs", "fluentd", "gcplogs", "gelf", "journald", "json-file", "splunk", "syslog"] + + + RegistryServiceConfig: + description: | + RegistryServiceConfig stores daemon registry services configuration. + type: "object" + x-nullable: true + properties: + InsecureRegistryCIDRs: + description: | + List of IP ranges of insecure registries, using the CIDR syntax + ([RFC 4632](https://tools.ietf.org/html/4632)). Insecure registries + accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates + from unknown CAs) communication. + + By default, local registries (`::1/128` and `127.0.0.0/8`) are configured as + insecure. All other registries are secure. Communicating with an + insecure registry is not possible if the daemon assumes that registry + is secure. + + This configuration override this behavior, insecure communication with + registries whose resolved IP address is within the subnet described by + the CIDR syntax. + + Registries can also be marked insecure by hostname. Those registries + are listed under `IndexConfigs` and have their `Secure` field set to + `false`. + + > **Warning**: Using this option can be useful when running a local + > registry, but introduces security vulnerabilities. This option + > should therefore ONLY be used for testing purposes. For increased + > security, users should add their CA to their system's list of trusted + > CAs instead of enabling this option. + type: "array" + items: + type: "string" + example: ["::1/128", "127.0.0.0/8"] + IndexConfigs: + type: "object" + additionalProperties: + $ref: "#/definitions/IndexInfo" + example: + "127.0.0.1:5000": + "Name": "127.0.0.1:5000" + "Mirrors": [] + "Secure": false + "Official": false + "[2001:db8:a0b:12f0::1]:80": + "Name": "[2001:db8:a0b:12f0::1]:80" + "Mirrors": [] + "Secure": false + "Official": false + "docker.io": + Name: "docker.io" + Mirrors: ["https://hub-mirror.corp.example.com:5000/"] + Secure: true + Official: true + "registry.internal.corp.example.com:3000": + Name: "registry.internal.corp.example.com:3000" + Mirrors: [] + Secure: false + Official: false + Mirrors: + description: | + List of registry URLs that act as a mirror for the official + (`docker.io`) registry. + + type: "array" + items: + type: "string" + example: + - "https://hub-mirror.corp.example.com:5000/" + - "https://[2001:db8:a0b:12f0::1]/" + + IndexInfo: + description: + IndexInfo contains information about a registry. + type: "object" + x-nullable: true + properties: + Name: + description: | + Name of the registry, such as "docker.io". + type: "string" + example: "docker.io" + Mirrors: + description: | + List of mirrors, expressed as URIs. + type: "array" + items: + type: "string" + example: + - "https://hub-mirror.corp.example.com:5000/" + - "https://registry-2.docker.io/" + - "https://registry-3.docker.io/" + Secure: + description: | + Indicates if the registry is part of the list of insecure + registries. + + If `false`, the registry is insecure. Insecure registries accept + un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from + unknown CAs) communication. + + > **Warning**: Insecure registries can be useful when running a local + > registry. However, because its use creates security vulnerabilities + > it should ONLY be enabled for testing purposes. For increased + > security, users should add their CA to their system's list of + > trusted CAs instead of enabling this option. + type: "boolean" + example: true + Official: + description: | + Indicates whether this is an official registry (i.e., Docker Hub / docker.io) + type: "boolean" + example: true + + Runtime: + description: | + Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec) + runtime. + + The runtime is invoked by the daemon via the `containerd` daemon. OCI + runtimes act as an interface to the Linux kernel namespaces, cgroups, + and SELinux. + type: "object" + properties: + path: + description: | + Name and, optional, path, of the OCI executable binary. + + If the path is omitted, the daemon searches the host's `$PATH` for the + binary and uses the first result. + type: "string" + example: "/usr/local/bin/my-oci-runtime" + runtimeArgs: + description: | + List of command-line arguments to pass to the runtime when invoked. + type: "array" + x-nullable: true + items: + type: "string" + example: ["--debug", "--systemd-cgroup=false"] + status: + description: | + Information specific to the runtime. + + While this API specification does not define data provided by runtimes, + the following well-known properties may be provided by runtimes: + + `org.opencontainers.runtime-spec.features`: features structure as defined + in the [OCI Runtime Specification](https://github.com/opencontainers/runtime-spec/blob/main/features.md), + in a JSON string representation. + +


+ + > **Note**: The information returned in this field, including the + > formatting of values and labels, should not be considered stable, + > and may change without notice. + type: "object" + x-nullable: true + additionalProperties: + type: "string" + example: + "org.opencontainers.runtime-spec.features": "{\"ociVersionMin\":\"1.0.0\",\"ociVersionMax\":\"1.1.0\",\"...\":\"...\"}" + + Commit: + description: | + Commit holds the Git-commit (SHA1) that a binary was built from, as + reported in the version-string of external tools, such as `containerd`, + or `runC`. + type: "object" + properties: + ID: + description: "Actual commit ID of external tool." + type: "string" + example: "cfb82a876ecc11b5ca0977d1733adbe58599088a" + + SwarmInfo: + description: | + Represents generic information about swarm. + type: "object" + properties: + NodeID: + description: "Unique identifier of for this node in the swarm." + type: "string" + default: "" + example: "k67qz4598weg5unwwffg6z1m1" + NodeAddr: + description: | + IP address at which this node can be reached by other nodes in the + swarm. + type: "string" + default: "" + example: "10.0.0.46" + LocalNodeState: + $ref: "#/definitions/LocalNodeState" + ControlAvailable: + type: "boolean" + default: false + example: true + Error: + type: "string" + default: "" + RemoteManagers: + description: | + List of ID's and addresses of other managers in the swarm. + type: "array" + default: null + x-nullable: true + items: + $ref: "#/definitions/PeerNode" + example: + - NodeID: "71izy0goik036k48jg985xnds" + Addr: "10.0.0.158:2377" + - NodeID: "79y6h1o4gv8n120drcprv5nmc" + Addr: "10.0.0.159:2377" + - NodeID: "k67qz4598weg5unwwffg6z1m1" + Addr: "10.0.0.46:2377" + Nodes: + description: "Total number of nodes in the swarm." + type: "integer" + x-nullable: true + example: 4 + Managers: + description: "Total number of managers in the swarm." + type: "integer" + x-nullable: true + example: 3 + Cluster: + $ref: "#/definitions/ClusterInfo" + + LocalNodeState: + description: "Current local status of this node." + type: "string" + default: "" + enum: + - "" + - "inactive" + - "pending" + - "active" + - "error" + - "locked" + example: "active" + + PeerNode: + description: "Represents a peer-node in the swarm" + type: "object" + properties: + NodeID: + description: "Unique identifier of for this node in the swarm." + type: "string" + Addr: + description: | + IP address and ports at which this node can be reached. + type: "string" + + NetworkAttachmentConfig: + description: | + Specifies how a service should be attached to a particular network. + type: "object" + properties: + Target: + description: | + The target network for attachment. Must be a network name or ID. + type: "string" + Aliases: + description: | + Discoverable alternate names for the service on this network. + type: "array" + items: + type: "string" + DriverOpts: + description: | + Driver attachment options for the network target. + type: "object" + additionalProperties: + type: "string" + + EventActor: + description: | + Actor describes something that generates events, like a container, network, + or a volume. + type: "object" + properties: + ID: + description: "The ID of the object emitting the event" + type: "string" + example: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743" + Attributes: + description: | + Various key/value attributes of the object, depending on its type. + type: "object" + additionalProperties: + type: "string" + example: + com.example.some-label: "some-label-value" + image: "alpine:latest" + name: "my-container" + + EventMessage: + description: | + EventMessage represents the information an event contains. + type: "object" + title: "SystemEventsResponse" + properties: + Type: + description: "The type of object emitting the event" + type: "string" + enum: ["builder", "config", "container", "daemon", "image", "network", "node", "plugin", "secret", "service", "volume"] + example: "container" + Action: + description: "The type of event" + type: "string" + example: "create" + Actor: + $ref: "#/definitions/EventActor" + scope: + description: | + Scope of the event. Engine events are `local` scope. Cluster (Swarm) + events are `swarm` scope. + type: "string" + enum: ["local", "swarm"] + time: + description: "Timestamp of event" + type: "integer" + format: "int64" + example: 1629574695 + timeNano: + description: "Timestamp of event, with nanosecond accuracy" + type: "integer" + format: "int64" + example: 1629574695515050031 + + OCIDescriptor: + type: "object" + x-go-name: Descriptor + description: | + A descriptor struct containing digest, media type, and size, as defined in + the [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md). + properties: + mediaType: + description: | + The media type of the object this schema refers to. + type: "string" + example: "application/vnd.oci.image.manifest.v1+json" + digest: + description: | + The digest of the targeted content. + type: "string" + example: "sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96" + size: + description: | + The size in bytes of the blob. + type: "integer" + format: "int64" + example: 424 + urls: + description: |- + List of URLs from which this object MAY be downloaded. + type: "array" + items: + type: "string" + format: "uri" + x-nullable: true + annotations: + description: |- + Arbitrary metadata relating to the targeted content. + type: "object" + x-nullable: true + additionalProperties: + type: "string" + example: + "com.docker.official-images.bashbrew.arch": "amd64" + "org.opencontainers.image.base.digest": "sha256:0d0ef5c914d3ea700147da1bd050c59edb8bb12ca312f3800b29d7c8087eabd8" + "org.opencontainers.image.base.name": "scratch" + "org.opencontainers.image.created": "2025-01-27T00:00:00Z" + "org.opencontainers.image.revision": "9fabb4bad5138435b01857e2fe9363e2dc5f6a79" + "org.opencontainers.image.source": "https://git.launchpad.net/cloud-images/+oci/ubuntu-base" + "org.opencontainers.image.url": "https://hub.docker.com/_/ubuntu" + "org.opencontainers.image.version": "24.04" + data: + type: string + x-nullable: true + description: |- + Data is an embedding of the targeted content. This is encoded as a base64 + string when marshalled to JSON (automatically, by encoding/json). If + present, Data can be used directly to avoid fetching the targeted content. + example: null + platform: + $ref: "#/definitions/OCIPlatform" + artifactType: + description: |- + ArtifactType is the IANA media type of this artifact. + type: "string" + x-nullable: true + example: null + + OCIPlatform: + type: "object" + x-go-name: Platform + x-nullable: true + description: | + Describes the platform which the image in the manifest runs on, as defined + in the [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md). + properties: + architecture: + description: | + The CPU architecture, for example `amd64` or `ppc64`. + type: "string" + example: "arm" + os: + description: | + The operating system, for example `linux` or `windows`. + type: "string" + example: "windows" + os.version: + description: | + Optional field specifying the operating system version, for example on + Windows `10.0.19041.1165`. + type: "string" + example: "10.0.19041.1165" + os.features: + description: | + Optional field specifying an array of strings, each listing a required + OS feature (for example on Windows `win32k`). + type: "array" + items: + type: "string" + example: + - "win32k" + variant: + description: | + Optional field specifying a variant of the CPU, for example `v7` to + specify ARMv7 when architecture is `arm`. + type: "string" + example: "v7" + + DistributionInspect: + type: "object" + x-go-name: DistributionInspect + title: "DistributionInspectResponse" + required: [Descriptor, Platforms] + description: | + Describes the result obtained from contacting the registry to retrieve + image metadata. + properties: + Descriptor: + $ref: "#/definitions/OCIDescriptor" + Platforms: + type: "array" + description: | + An array containing all platforms supported by the image. + items: + $ref: "#/definitions/OCIPlatform" + + ClusterVolume: + type: "object" + description: | + Options and information specific to, and only present on, Swarm CSI + cluster volumes. + properties: + ID: + type: "string" + description: | + The Swarm ID of this volume. Because cluster volumes are Swarm + objects, they have an ID, unlike non-cluster volumes. This ID can + be used to refer to the Volume instead of the name. + Version: + $ref: "#/definitions/ObjectVersion" + CreatedAt: + type: "string" + format: "dateTime" + UpdatedAt: + type: "string" + format: "dateTime" + Spec: + $ref: "#/definitions/ClusterVolumeSpec" + Info: + type: "object" + description: | + Information about the global status of the volume. + properties: + CapacityBytes: + type: "integer" + format: "int64" + description: | + The capacity of the volume in bytes. A value of 0 indicates that + the capacity is unknown. + VolumeContext: + type: "object" + description: | + A map of strings to strings returned from the storage plugin when + the volume is created. + additionalProperties: + type: "string" + VolumeID: + type: "string" + description: | + The ID of the volume as returned by the CSI storage plugin. This + is distinct from the volume's ID as provided by Docker. This ID + is never used by the user when communicating with Docker to refer + to this volume. If the ID is blank, then the Volume has not been + successfully created in the plugin yet. + AccessibleTopology: + type: "array" + description: | + The topology this volume is actually accessible from. + items: + $ref: "#/definitions/Topology" + PublishStatus: + type: "array" + description: | + The status of the volume as it pertains to its publishing and use on + specific nodes + items: + type: "object" + properties: + NodeID: + type: "string" + description: | + The ID of the Swarm node the volume is published on. + State: + type: "string" + description: | + The published state of the volume. + * `pending-publish` The volume should be published to this node, but the call to the controller plugin to do so has not yet been successfully completed. + * `published` The volume is published successfully to the node. + * `pending-node-unpublish` The volume should be unpublished from the node, and the manager is awaiting confirmation from the worker that it has done so. + * `pending-controller-unpublish` The volume is successfully unpublished from the node, but has not yet been successfully unpublished on the controller. + enum: + - "pending-publish" + - "published" + - "pending-node-unpublish" + - "pending-controller-unpublish" + PublishContext: + type: "object" + description: | + A map of strings to strings returned by the CSI controller + plugin when a volume is published. + additionalProperties: + type: "string" + + ClusterVolumeSpec: + type: "object" + description: | + Cluster-specific options used to create the volume. + properties: + Group: + type: "string" + description: | + Group defines the volume group of this volume. Volumes belonging to + the same group can be referred to by group name when creating + Services. Referring to a volume by group instructs Swarm to treat + volumes in that group interchangeably for the purpose of scheduling. + Volumes with an empty string for a group technically all belong to + the same, emptystring group. + AccessMode: + type: "object" + description: | + Defines how the volume is used by tasks. + properties: + Scope: + type: "string" + description: | + The set of nodes this volume can be used on at one time. + - `single` The volume may only be scheduled to one node at a time. + - `multi` the volume may be scheduled to any supported number of nodes at a time. + default: "single" + enum: ["single", "multi"] + x-nullable: false + Sharing: + type: "string" + description: | + The number and way that different tasks can use this volume + at one time. + - `none` The volume may only be used by one task at a time. + - `readonly` The volume may be used by any number of tasks, but they all must mount the volume as readonly + - `onewriter` The volume may be used by any number of tasks, but only one may mount it as read/write. + - `all` The volume may have any number of readers and writers. + default: "none" + enum: ["none", "readonly", "onewriter", "all"] + x-nullable: false + MountVolume: + type: "object" + description: | + Options for using this volume as a Mount-type volume. + + Either MountVolume or BlockVolume, but not both, must be + present. + properties: + FsType: + type: "string" + description: | + Specifies the filesystem type for the mount volume. + Optional. + MountFlags: + type: "array" + description: | + Flags to pass when mounting the volume. Optional. + items: + type: "string" + BlockVolume: + type: "object" + description: | + Options for using this volume as a Block-type volume. + Intentionally empty. + Secrets: + type: "array" + description: | + Swarm Secrets that are passed to the CSI storage plugin when + operating on this volume. + items: + type: "object" + description: | + One cluster volume secret entry. Defines a key-value pair that + is passed to the plugin. + properties: + Key: + type: "string" + description: | + Key is the name of the key of the key-value pair passed to + the plugin. + Secret: + type: "string" + description: | + Secret is the swarm Secret object from which to read data. + This can be a Secret name or ID. The Secret data is + retrieved by swarm and used as the value of the key-value + pair passed to the plugin. + AccessibilityRequirements: + type: "object" + description: | + Requirements for the accessible topology of the volume. These + fields are optional. For an in-depth description of what these + fields mean, see the CSI specification. + properties: + Requisite: + type: "array" + description: | + A list of required topologies, at least one of which the + volume must be accessible from. + items: + $ref: "#/definitions/Topology" + Preferred: + type: "array" + description: | + A list of topologies that the volume should attempt to be + provisioned in. + items: + $ref: "#/definitions/Topology" + CapacityRange: + type: "object" + description: | + The desired capacity that the volume should be created with. If + empty, the plugin will decide the capacity. + properties: + RequiredBytes: + type: "integer" + format: "int64" + description: | + The volume must be at least this big. The value of 0 + indicates an unspecified minimum + LimitBytes: + type: "integer" + format: "int64" + description: | + The volume must not be bigger than this. The value of 0 + indicates an unspecified maximum. + Availability: + type: "string" + description: | + The availability of the volume for use in tasks. + - `active` The volume is fully available for scheduling on the cluster + - `pause` No new workloads should use the volume, but existing workloads are not stopped. + - `drain` All workloads using this volume should be stopped and rescheduled, and no new ones should be started. + default: "active" + x-nullable: false + enum: + - "active" + - "pause" + - "drain" + + Topology: + description: | + A map of topological domains to topological segments. For in depth + details, see documentation for the Topology object in the CSI + specification. + type: "object" + additionalProperties: + type: "string" + + ImageManifestSummary: + x-go-name: "ManifestSummary" + description: | + ImageManifestSummary represents a summary of an image manifest. + type: "object" + required: ["ID", "Descriptor", "Available", "Size", "Kind"] + properties: + ID: + description: | + ID is the content-addressable ID of an image and is the same as the + digest of the image manifest. + type: "string" + example: "sha256:95869fbcf224d947ace8d61d0e931d49e31bb7fc67fffbbe9c3198c33aa8e93f" + Descriptor: + $ref: "#/definitions/OCIDescriptor" + Available: + description: Indicates whether all the child content (image config, layers) is fully available locally. + type: "boolean" + example: true + Size: + type: "object" + x-nullable: false + required: ["Content", "Total"] + properties: + Total: + type: "integer" + format: "int64" + example: 8213251 + description: | + Total is the total size (in bytes) of all the locally present + data (both distributable and non-distributable) that's related to + this manifest and its children. + This equal to the sum of [Content] size AND all the sizes in the + [Size] struct present in the Kind-specific data struct. + For example, for an image kind (Kind == "image") + this would include the size of the image content and unpacked + image snapshots ([Size.Content] + [ImageData.Size.Unpacked]). + Content: + description: | + Content is the size (in bytes) of all the locally present + content in the content store (e.g. image config, layers) + referenced by this manifest and its children. + This only includes blobs in the content store. + type: "integer" + format: "int64" + example: 3987495 + Kind: + type: "string" + example: "image" + enum: + - "image" + - "attestation" + - "unknown" + description: | + The kind of the manifest. + + kind | description + -------------|----------------------------------------------------------- + image | Image manifest that can be used to start a container. + attestation | Attestation manifest produced by the Buildkit builder for a specific image manifest. + ImageData: + description: | + The image data for the image manifest. + This field is only populated when Kind is "image". + type: "object" + x-nullable: true + x-omitempty: true + required: ["Platform", "Containers", "Size", "UnpackedSize"] + properties: + Platform: + $ref: "#/definitions/OCIPlatform" + description: | + OCI platform of the image. This will be the platform specified in the + manifest descriptor from the index/manifest list. + If it's not available, it will be obtained from the image config. + Containers: + description: | + The IDs of the containers that are using this image. + type: "array" + items: + type: "string" + example: ["ede54ee1fda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c7430", "abadbce344c096744d8d6071a90d474d28af8f1034b5ea9fb03c3f4bfc6d005e"] + Size: + type: "object" + x-nullable: false + required: ["Unpacked"] + properties: + Unpacked: + type: "integer" + format: "int64" + example: 3987495 + description: | + Unpacked is the size (in bytes) of the locally unpacked + (uncompressed) image content that's directly usable by the containers + running this image. + It's independent of the distributable content - e.g. + the image might still have an unpacked data that's still used by + some container even when the distributable/compressed content is + already gone. + AttestationData: + description: | + The image data for the attestation manifest. + This field is only populated when Kind is "attestation". + type: "object" + x-nullable: true + x-omitempty: true + required: ["For"] + properties: + For: + description: | + The digest of the image manifest that this attestation is for. + type: "string" + example: "sha256:95869fbcf224d947ace8d61d0e931d49e31bb7fc67fffbbe9c3198c33aa8e93f" + +paths: + /containers/json: + get: + summary: "List containers" + description: | + Returns a list of containers. For details on the format, see the + [inspect endpoint](#operation/ContainerInspect). + + Note that it uses a different, smaller representation of a container + than inspecting a single container. For example, the list of linked + containers is not propagated . + operationId: "ContainerList" + produces: + - "application/json" + parameters: + - name: "all" + in: "query" + description: | + Return all containers. By default, only running containers are shown. + type: "boolean" + default: false + - name: "limit" + in: "query" + description: | + Return this number of most recently created containers, including + non-running ones. + type: "integer" + - name: "size" + in: "query" + description: | + Return the size of container as fields `SizeRw` and `SizeRootFs`. + type: "boolean" + default: false + - name: "filters" + in: "query" + description: | + Filters to process on the container list, encoded as JSON (a + `map[string][]string`). For example, `{"status": ["paused"]}` will + only return paused containers. + + Available filters: + + - `ancestor`=(`[:]`, ``, or ``) + - `before`=(`` or ``) + - `expose`=(`[/]`|`/[]`) + - `exited=` containers with exit code of `` + - `health`=(`starting`|`healthy`|`unhealthy`|`none`) + - `id=` a container's ID + - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only) + - `is-task=`(`true`|`false`) + - `label=key` or `label="key=value"` of a container label + - `name=` a container's name + - `network`=(`` or ``) + - `publish`=(`[/]`|`/[]`) + - `since`=(`` or ``) + - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`) + - `volume`=(`` or ``) + type: "string" + responses: + 200: + description: "no error" + schema: + type: "array" + items: + $ref: "#/definitions/ContainerSummary" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Container"] + /containers/create: + post: + summary: "Create a container" + operationId: "ContainerCreate" + consumes: + - "application/json" + - "application/octet-stream" + produces: + - "application/json" + parameters: + - name: "name" + in: "query" + description: | + Assign the specified name to the container. Must match + `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`. + type: "string" + pattern: "^/?[a-zA-Z0-9][a-zA-Z0-9_.-]+$" + - name: "platform" + in: "query" + description: | + Platform in the format `os[/arch[/variant]]` used for image lookup. + + When specified, the daemon checks if the requested image is present + in the local image cache with the given OS and Architecture, and + otherwise returns a `404` status. + + If the option is not set, the host's native OS and Architecture are + used to look up the image in the image cache. However, if no platform + is passed and the given image does exist in the local image cache, + but its OS or architecture does not match, the container is created + with the available image, and a warning is added to the `Warnings` + field in the response, for example; + + WARNING: The requested image's platform (linux/arm64/v8) does not + match the detected host platform (linux/amd64) and no + specific platform was requested + + type: "string" + default: "" + - name: "body" + in: "body" + description: "Container to create" + schema: + allOf: + - $ref: "#/definitions/ContainerConfig" + - type: "object" + properties: + HostConfig: + $ref: "#/definitions/HostConfig" + NetworkingConfig: + $ref: "#/definitions/NetworkingConfig" + example: + Hostname: "" + Domainname: "" + User: "" + AttachStdin: false + AttachStdout: true + AttachStderr: true + Tty: false + OpenStdin: false + StdinOnce: false + Env: + - "FOO=bar" + - "BAZ=quux" + Cmd: + - "date" + Entrypoint: "" + Image: "ubuntu" + Labels: + com.example.vendor: "Acme" + com.example.license: "GPL" + com.example.version: "1.0" + Volumes: + /volumes/data: {} + WorkingDir: "" + NetworkDisabled: false + ExposedPorts: + 22/tcp: {} + StopSignal: "SIGTERM" + StopTimeout: 10 + HostConfig: + Binds: + - "/tmp:/tmp" + Links: + - "redis3:redis" + Memory: 0 + MemorySwap: 0 + MemoryReservation: 0 + NanoCpus: 500000 + CpuPercent: 80 + CpuShares: 512 + CpuPeriod: 100000 + CpuRealtimePeriod: 1000000 + CpuRealtimeRuntime: 10000 + CpuQuota: 50000 + CpusetCpus: "0,1" + CpusetMems: "0,1" + MaximumIOps: 0 + MaximumIOBps: 0 + BlkioWeight: 300 + BlkioWeightDevice: + - {} + BlkioDeviceReadBps: + - {} + BlkioDeviceReadIOps: + - {} + BlkioDeviceWriteBps: + - {} + BlkioDeviceWriteIOps: + - {} + DeviceRequests: + - Driver: "nvidia" + Count: -1 + DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"] + Capabilities: [["gpu", "nvidia", "compute"]] + Options: + property1: "string" + property2: "string" + MemorySwappiness: 60 + OomKillDisable: false + OomScoreAdj: 500 + PidMode: "" + PidsLimit: 0 + PortBindings: + 22/tcp: + - HostPort: "11022" + PublishAllPorts: false + Privileged: false + ReadonlyRootfs: false + Dns: + - "8.8.8.8" + DnsOptions: + - "" + DnsSearch: + - "" + VolumesFrom: + - "parent" + - "other:ro" + CapAdd: + - "NET_ADMIN" + CapDrop: + - "MKNOD" + GroupAdd: + - "newgroup" + RestartPolicy: + Name: "" + MaximumRetryCount: 0 + AutoRemove: true + NetworkMode: "bridge" + Devices: [] + Ulimits: + - {} + LogConfig: + Type: "json-file" + Config: {} + SecurityOpt: [] + StorageOpt: {} + CgroupParent: "" + VolumeDriver: "" + ShmSize: 67108864 + NetworkingConfig: + EndpointsConfig: + isolated_nw: + IPAMConfig: + IPv4Address: "172.20.30.33" + IPv6Address: "2001:db8:abcd::3033" + LinkLocalIPs: + - "169.254.34.68" + - "fe80::3468" + Links: + - "container_1" + - "container_2" + Aliases: + - "server_x" + - "server_y" + database_nw: {} + + required: true + responses: + 201: + description: "Container created successfully" + schema: + $ref: "#/definitions/ContainerCreateResponse" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such image" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such image: c2ada9df5af8" + 409: + description: "conflict" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Container"] + /containers/{id}/json: + get: + summary: "Inspect a container" + description: "Return low-level information about a container." + operationId: "ContainerInspect" + produces: + - "application/json" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/ContainerInspectResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "size" + in: "query" + type: "boolean" + default: false + description: "Return the size of container as fields `SizeRw` and `SizeRootFs`" + tags: ["Container"] + /containers/{id}/top: + get: + summary: "List processes running inside a container" + description: | + On Unix systems, this is done by running the `ps` command. This endpoint + is not supported on Windows. + operationId: "ContainerTop" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/ContainerTopResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "ps_args" + in: "query" + description: "The arguments to pass to `ps`. For example, `aux`" + type: "string" + default: "-ef" + tags: ["Container"] + /containers/{id}/logs: + get: + summary: "Get container logs" + description: | + Get `stdout` and `stderr` logs from a container. + + Note: This endpoint works only for containers with the `json-file` or + `journald` logging driver. + produces: + - "application/vnd.docker.raw-stream" + - "application/vnd.docker.multiplexed-stream" + operationId: "ContainerLogs" + responses: + 200: + description: | + logs returned as a stream in response body. + For the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach). + Note that unlike the attach endpoint, the logs endpoint does not + upgrade the connection and does not set Content-Type. + schema: + type: "string" + format: "binary" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "follow" + in: "query" + description: "Keep connection after returning logs." + type: "boolean" + default: false + - name: "stdout" + in: "query" + description: "Return logs from `stdout`" + type: "boolean" + default: false + - name: "stderr" + in: "query" + description: "Return logs from `stderr`" + type: "boolean" + default: false + - name: "since" + in: "query" + description: "Only return logs since this time, as a UNIX timestamp" + type: "integer" + default: 0 + - name: "until" + in: "query" + description: "Only return logs before this time, as a UNIX timestamp" + type: "integer" + default: 0 + - name: "timestamps" + in: "query" + description: "Add timestamps to every log line" + type: "boolean" + default: false + - name: "tail" + in: "query" + description: | + Only return this number of log lines from the end of the logs. + Specify as an integer or `all` to output all log lines. + type: "string" + default: "all" + tags: ["Container"] + /containers/{id}/changes: + get: + summary: "Get changes on a container’s filesystem" + description: | + Returns which files in a container's filesystem have been added, deleted, + or modified. The `Kind` of modification can be one of: + + - `0`: Modified ("C") + - `1`: Added ("A") + - `2`: Deleted ("D") + operationId: "ContainerChanges" + produces: ["application/json"] + responses: + 200: + description: "The list of changes" + schema: + type: "array" + items: + $ref: "#/definitions/FilesystemChange" + examples: + application/json: + - Path: "/dev" + Kind: 0 + - Path: "/dev/kmsg" + Kind: 1 + - Path: "/test" + Kind: 1 + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + tags: ["Container"] + /containers/{id}/export: + get: + summary: "Export a container" + description: "Export the contents of a container as a tarball." + operationId: "ContainerExport" + produces: + - "application/octet-stream" + responses: + 200: + description: "no error" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + tags: ["Container"] + /containers/{id}/stats: + get: + summary: "Get container stats based on resource usage" + description: | + This endpoint returns a live stream of a container’s resource usage + statistics. + + The `precpu_stats` is the CPU statistic of the *previous* read, and is + used to calculate the CPU usage percentage. It is not an exact copy + of the `cpu_stats` field. + + If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is + nil then for compatibility with older daemons the length of the + corresponding `cpu_usage.percpu_usage` array should be used. + + On a cgroup v2 host, the following fields are not set + * `blkio_stats`: all fields other than `io_service_bytes_recursive` + * `cpu_stats`: `cpu_usage.percpu_usage` + * `memory_stats`: `max_usage` and `failcnt` + Also, `memory_stats.stats` fields are incompatible with cgroup v1. + + To calculate the values shown by the `stats` command of the docker cli tool + the following formulas can be used: + * used_memory = `memory_stats.usage - memory_stats.stats.cache` (cgroups v1) + * used_memory = `memory_stats.usage - memory_stats.stats.inactive_file` (cgroups v2) + * available_memory = `memory_stats.limit` + * Memory usage % = `(used_memory / available_memory) * 100.0` + * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage` + * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage` + * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus` + * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0` + operationId: "ContainerStats" + produces: ["application/json"] + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/ContainerStatsResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "stream" + in: "query" + description: | + Stream the output. If false, the stats will be output once and then + it will disconnect. + type: "boolean" + default: true + - name: "one-shot" + in: "query" + description: | + Only get a single stat instead of waiting for 2 cycles. Must be used + with `stream=false`. + type: "boolean" + default: false + tags: ["Container"] + /containers/{id}/resize: + post: + summary: "Resize a container TTY" + description: "Resize the TTY for a container." + operationId: "ContainerResize" + consumes: + - "application/octet-stream" + produces: + - "text/plain" + responses: + 200: + description: "no error" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "cannot resize container" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "h" + in: "query" + required: true + description: "Height of the TTY session in characters" + type: "integer" + - name: "w" + in: "query" + required: true + description: "Width of the TTY session in characters" + type: "integer" + tags: ["Container"] + /containers/{id}/start: + post: + summary: "Start a container" + operationId: "ContainerStart" + responses: + 204: + description: "no error" + 304: + description: "container already started" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "detachKeys" + in: "query" + description: | + Override the key sequence for detaching a container. Format is a + single character `[a-Z]` or `ctrl-` where `` is one + of: `a-z`, `@`, `^`, `[`, `,` or `_`. + type: "string" + tags: ["Container"] + /containers/{id}/stop: + post: + summary: "Stop a container" + operationId: "ContainerStop" + responses: + 204: + description: "no error" + 304: + description: "container already stopped" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "signal" + in: "query" + description: | + Signal to send to the container as an integer or string (e.g. `SIGINT`). + type: "string" + - name: "t" + in: "query" + description: "Number of seconds to wait before killing the container" + type: "integer" + tags: ["Container"] + /containers/{id}/restart: + post: + summary: "Restart a container" + operationId: "ContainerRestart" + responses: + 204: + description: "no error" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "signal" + in: "query" + description: | + Signal to send to the container as an integer or string (e.g. `SIGINT`). + type: "string" + - name: "t" + in: "query" + description: "Number of seconds to wait before killing the container" + type: "integer" + tags: ["Container"] + /containers/{id}/kill: + post: + summary: "Kill a container" + description: | + Send a POSIX signal to a container, defaulting to killing to the + container. + operationId: "ContainerKill" + responses: + 204: + description: "no error" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 409: + description: "container is not running" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "Container d37cde0fe4ad63c3a7252023b2f9800282894247d145cb5933ddf6e52cc03a28 is not running" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "signal" + in: "query" + description: | + Signal to send to the container as an integer or string (e.g. `SIGINT`). + type: "string" + default: "SIGKILL" + tags: ["Container"] + /containers/{id}/update: + post: + summary: "Update a container" + description: | + Change various configuration options of a container without having to + recreate it. + operationId: "ContainerUpdate" + consumes: ["application/json"] + produces: ["application/json"] + responses: + 200: + description: "The container has been updated." + schema: + $ref: "#/definitions/ContainerUpdateResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "update" + in: "body" + required: true + schema: + allOf: + - $ref: "#/definitions/Resources" + - type: "object" + properties: + RestartPolicy: + $ref: "#/definitions/RestartPolicy" + example: + BlkioWeight: 300 + CpuShares: 512 + CpuPeriod: 100000 + CpuQuota: 50000 + CpuRealtimePeriod: 1000000 + CpuRealtimeRuntime: 10000 + CpusetCpus: "0,1" + CpusetMems: "0" + Memory: 314572800 + MemorySwap: 514288000 + MemoryReservation: 209715200 + RestartPolicy: + MaximumRetryCount: 4 + Name: "on-failure" + tags: ["Container"] + /containers/{id}/rename: + post: + summary: "Rename a container" + operationId: "ContainerRename" + responses: + 204: + description: "no error" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 409: + description: "name already in use" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "name" + in: "query" + required: true + description: "New name for the container" + type: "string" + tags: ["Container"] + /containers/{id}/pause: + post: + summary: "Pause a container" + description: | + Use the freezer cgroup to suspend all processes in a container. + + Traditionally, when suspending a process the `SIGSTOP` signal is used, + which is observable by the process being suspended. With the freezer + cgroup the process is unaware, and unable to capture, that it is being + suspended, and subsequently resumed. + operationId: "ContainerPause" + responses: + 204: + description: "no error" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + tags: ["Container"] + /containers/{id}/unpause: + post: + summary: "Unpause a container" + description: "Resume a container which has been paused." + operationId: "ContainerUnpause" + responses: + 204: + description: "no error" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + tags: ["Container"] + /containers/{id}/attach: + post: + summary: "Attach to a container" + description: | + Attach to a container to read its output or send it input. You can attach + to the same container multiple times and you can reattach to containers + that have been detached. + + Either the `stream` or `logs` parameter must be `true` for this endpoint + to do anything. + + See the [documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) + for more details. + + ### Hijacking + + This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, + and `stderr` on the same socket. + + This is the response from the daemon for an attach request: + + ``` + HTTP/1.1 200 OK + Content-Type: application/vnd.docker.raw-stream + + [STREAM] + ``` + + After the headers and two new lines, the TCP connection can now be used + for raw, bidirectional communication between the client and server. + + To hint potential proxies about connection hijacking, the Docker client + can also optionally send connection upgrade headers. + + For example, the client sends this request to upgrade the connection: + + ``` + POST /containers/16253994b7c4/attach?stream=1&stdout=1 HTTP/1.1 + Upgrade: tcp + Connection: Upgrade + ``` + + The Docker daemon will respond with a `101 UPGRADED` response, and will + similarly follow with the raw stream: + + ``` + HTTP/1.1 101 UPGRADED + Content-Type: application/vnd.docker.raw-stream + Connection: Upgrade + Upgrade: tcp + + [STREAM] + ``` + + ### Stream format + + When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), + the HTTP Content-Type header is set to application/vnd.docker.multiplexed-stream + and the stream over the hijacked connected is multiplexed to separate out + `stdout` and `stderr`. The stream consists of a series of frames, each + containing a header and a payload. + + The header contains the information which the stream writes (`stdout` or + `stderr`). It also contains the size of the associated frame encoded in + the last four bytes (`uint32`). + + It is encoded on the first eight bytes like this: + + ```go + header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4} + ``` + + `STREAM_TYPE` can be: + + - 0: `stdin` (is written on `stdout`) + - 1: `stdout` + - 2: `stderr` + + `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size + encoded as big endian. + + Following the header is the payload, which is the specified number of + bytes of `STREAM_TYPE`. + + The simplest way to implement this protocol is the following: + + 1. Read 8 bytes. + 2. Choose `stdout` or `stderr` depending on the first byte. + 3. Extract the frame size from the last four bytes. + 4. Read the extracted size and output it on the correct output. + 5. Goto 1. + + ### Stream format when using a TTY + + When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), + the stream is not multiplexed. The data exchanged over the hijacked + connection is simply the raw data from the process PTY and client's + `stdin`. + + operationId: "ContainerAttach" + produces: + - "application/vnd.docker.raw-stream" + - "application/vnd.docker.multiplexed-stream" + responses: + 101: + description: "no error, hints proxy about hijacking" + 200: + description: "no error, no upgrade header found" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "detachKeys" + in: "query" + description: | + Override the key sequence for detaching a container.Format is a single + character `[a-Z]` or `ctrl-` where `` is one of: `a-z`, + `@`, `^`, `[`, `,` or `_`. + type: "string" + - name: "logs" + in: "query" + description: | + Replay previous logs from the container. + + This is useful for attaching to a container that has started and you + want to output everything since the container started. + + If `stream` is also enabled, once all the previous output has been + returned, it will seamlessly transition into streaming current + output. + type: "boolean" + default: false + - name: "stream" + in: "query" + description: | + Stream attached streams from the time the request was made onwards. + type: "boolean" + default: false + - name: "stdin" + in: "query" + description: "Attach to `stdin`" + type: "boolean" + default: false + - name: "stdout" + in: "query" + description: "Attach to `stdout`" + type: "boolean" + default: false + - name: "stderr" + in: "query" + description: "Attach to `stderr`" + type: "boolean" + default: false + tags: ["Container"] + /containers/{id}/attach/ws: + get: + summary: "Attach to a container via a websocket" + operationId: "ContainerAttachWebsocket" + responses: + 101: + description: "no error, hints proxy about hijacking" + 200: + description: "no error, no upgrade header found" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "detachKeys" + in: "query" + description: | + Override the key sequence for detaching a container.Format is a single + character `[a-Z]` or `ctrl-` where `` is one of: `a-z`, + `@`, `^`, `[`, `,`, or `_`. + type: "string" + - name: "logs" + in: "query" + description: "Return logs" + type: "boolean" + default: false + - name: "stream" + in: "query" + description: "Return stream" + type: "boolean" + default: false + - name: "stdin" + in: "query" + description: "Attach to `stdin`" + type: "boolean" + default: false + - name: "stdout" + in: "query" + description: "Attach to `stdout`" + type: "boolean" + default: false + - name: "stderr" + in: "query" + description: "Attach to `stderr`" + type: "boolean" + default: false + tags: ["Container"] + /containers/{id}/wait: + post: + summary: "Wait for a container" + description: "Block until a container stops, then returns the exit code." + operationId: "ContainerWait" + produces: ["application/json"] + responses: + 200: + description: "The container has exit." + schema: + $ref: "#/definitions/ContainerWaitResponse" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "condition" + in: "query" + description: | + Wait until a container state reaches the given condition. + + Defaults to `not-running` if omitted or empty. + type: "string" + enum: + - "not-running" + - "next-exit" + - "removed" + default: "not-running" + tags: ["Container"] + /containers/{id}: + delete: + summary: "Remove a container" + operationId: "ContainerDelete" + responses: + 204: + description: "no error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 409: + description: "conflict" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: | + You cannot remove a running container: c2ada9df5af8. Stop the + container before attempting removal or force remove + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "v" + in: "query" + description: "Remove anonymous volumes associated with the container." + type: "boolean" + default: false + - name: "force" + in: "query" + description: "If the container is running, kill it before removing it." + type: "boolean" + default: false + - name: "link" + in: "query" + description: "Remove the specified link associated with the container." + type: "boolean" + default: false + tags: ["Container"] + /containers/{id}/archive: + head: + summary: "Get information about files in a container" + description: | + A response header `X-Docker-Container-Path-Stat` is returned, containing + a base64 - encoded JSON object with some filesystem header information + about the path. + operationId: "ContainerArchiveInfo" + responses: + 200: + description: "no error" + headers: + X-Docker-Container-Path-Stat: + type: "string" + description: | + A base64 - encoded JSON object with some filesystem header + information about the path + 400: + description: "Bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "Container or path does not exist" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "path" + in: "query" + required: true + description: "Resource in the container’s filesystem to archive." + type: "string" + tags: ["Container"] + get: + summary: "Get an archive of a filesystem resource in a container" + description: "Get a tar archive of a resource in the filesystem of container id." + operationId: "ContainerArchive" + produces: ["application/x-tar"] + responses: + 200: + description: "no error" + 400: + description: "Bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "Container or path does not exist" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "path" + in: "query" + required: true + description: "Resource in the container’s filesystem to archive." + type: "string" + tags: ["Container"] + put: + summary: "Extract an archive of files or folders to a directory in a container" + description: | + Upload a tar archive to be extracted to a path in the filesystem of container id. + `path` parameter is asserted to be a directory. If it exists as a file, 400 error + will be returned with message "not a directory". + operationId: "PutContainerArchive" + consumes: ["application/x-tar", "application/octet-stream"] + responses: + 200: + description: "The content was extracted successfully" + 400: + description: "Bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "not a directory" + 403: + description: "Permission denied, the volume or container rootfs is marked as read-only." + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "No such container or path does not exist inside the container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the container" + type: "string" + - name: "path" + in: "query" + required: true + description: "Path to a directory in the container to extract the archive’s contents into. " + type: "string" + - name: "noOverwriteDirNonDir" + in: "query" + description: | + If `1`, `true`, or `True` then it will be an error if unpacking the + given content would cause an existing directory to be replaced with + a non-directory and vice versa. + type: "string" + - name: "copyUIDGID" + in: "query" + description: | + If `1`, `true`, then it will copy UID/GID maps to the dest file or + dir + type: "string" + - name: "inputStream" + in: "body" + required: true + description: | + The input stream must be a tar archive compressed with one of the + following algorithms: `identity` (no compression), `gzip`, `bzip2`, + or `xz`. + schema: + type: "string" + format: "binary" + tags: ["Container"] + /containers/prune: + post: + summary: "Delete stopped containers" + produces: + - "application/json" + operationId: "ContainerPrune" + parameters: + - name: "filters" + in: "query" + description: | + Filters to process on the prune list, encoded as JSON (a `map[string][]string`). + + Available filters: + - `until=` Prune containers created before this timestamp. The `` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time. + - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune containers with (or without, in case `label!=...` is used) the specified labels. + type: "string" + responses: + 200: + description: "No error" + schema: + type: "object" + title: "ContainerPruneResponse" + properties: + ContainersDeleted: + description: "Container IDs that were deleted" + type: "array" + items: + type: "string" + SpaceReclaimed: + description: "Disk space reclaimed in bytes" + type: "integer" + format: "int64" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Container"] + /images/json: + get: + summary: "List Images" + description: "Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image." + operationId: "ImageList" + produces: + - "application/json" + responses: + 200: + description: "Summary image data for the images matching the query" + schema: + type: "array" + items: + $ref: "#/definitions/ImageSummary" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "all" + in: "query" + description: "Show all images. Only images from a final layer (no children) are shown by default." + type: "boolean" + default: false + - name: "filters" + in: "query" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to + process on the images list. + + Available filters: + + - `before`=(`[:]`, `` or ``) + - `dangling=true` + - `label=key` or `label="key=value"` of an image label + - `reference`=(`[:]`) + - `since`=(`[:]`, `` or ``) + - `until=` + type: "string" + - name: "shared-size" + in: "query" + description: "Compute and show shared size as a `SharedSize` field on each image." + type: "boolean" + default: false + - name: "digests" + in: "query" + description: "Show digest information as a `RepoDigests` field on each image." + type: "boolean" + default: false + - name: "manifests" + in: "query" + description: "Include `Manifests` in the image summary." + type: "boolean" + default: false + tags: ["Image"] + /build: + post: + summary: "Build an image" + description: | + Build an image from a tar archive with a `Dockerfile` in it. + + The `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/). + + The Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output. + + The build is canceled if the client drops the connection by quitting or being killed. + operationId: "ImageBuild" + consumes: + - "application/octet-stream" + produces: + - "application/json" + parameters: + - name: "inputStream" + in: "body" + description: "A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz." + schema: + type: "string" + format: "binary" + - name: "dockerfile" + in: "query" + description: "Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`." + type: "string" + default: "Dockerfile" + - name: "t" + in: "query" + description: "A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters." + type: "string" + - name: "extrahosts" + in: "query" + description: "Extra hosts to add to /etc/hosts" + type: "string" + - name: "remote" + in: "query" + description: "A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball." + type: "string" + - name: "q" + in: "query" + description: "Suppress verbose build output." + type: "boolean" + default: false + - name: "nocache" + in: "query" + description: "Do not use the cache when building the image." + type: "boolean" + default: false + - name: "cachefrom" + in: "query" + description: "JSON array of images used for build cache resolution." + type: "string" + - name: "pull" + in: "query" + description: "Attempt to pull the image even if an older image exists locally." + type: "string" + - name: "rm" + in: "query" + description: "Remove intermediate containers after a successful build." + type: "boolean" + default: true + - name: "forcerm" + in: "query" + description: "Always remove intermediate containers, even upon failure." + type: "boolean" + default: false + - name: "memory" + in: "query" + description: "Set memory limit for build." + type: "integer" + - name: "memswap" + in: "query" + description: "Total memory (memory + swap). Set as `-1` to disable swap." + type: "integer" + - name: "cpushares" + in: "query" + description: "CPU shares (relative weight)." + type: "integer" + - name: "cpusetcpus" + in: "query" + description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)." + type: "string" + - name: "cpuperiod" + in: "query" + description: "The length of a CPU period in microseconds." + type: "integer" + - name: "cpuquota" + in: "query" + description: "Microseconds of CPU time that the container can get in a CPU period." + type: "integer" + - name: "buildargs" + in: "query" + description: > + JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker + uses the buildargs as the environment context for commands run via the `Dockerfile` RUN + instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for + passing secret values. + + + For example, the build arg `FOO=bar` would become `{"FOO":"bar"}` in JSON. This would result in the + query parameter `buildargs={"FOO":"bar"}`. Note that `{"FOO":"bar"}` should be URI component encoded. + + + [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg) + type: "string" + - name: "shmsize" + in: "query" + description: "Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB." + type: "integer" + - name: "squash" + in: "query" + description: "Squash the resulting images layers into a single layer. *(Experimental release only.)*" + type: "boolean" + - name: "labels" + in: "query" + description: "Arbitrary key/value labels to set on the image, as a JSON map of string pairs." + type: "string" + - name: "networkmode" + in: "query" + description: | + Sets the networking mode for the run commands during build. Supported + standard values are: `bridge`, `host`, `none`, and `container:`. + Any other value is taken as a custom network's name or ID to which this + container should connect to. + type: "string" + - name: "Content-type" + in: "header" + type: "string" + enum: + - "application/x-tar" + default: "application/x-tar" + - name: "X-Registry-Config" + in: "header" + description: | + This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to. + + The key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example: + + ``` + { + "docker.example.com": { + "username": "janedoe", + "password": "hunter2" + }, + "https://index.docker.io/v1/": { + "username": "mobydock", + "password": "conta1n3rize14" + } + } + ``` + + Only the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API. + type: "string" + - name: "platform" + in: "query" + description: "Platform in the format os[/arch[/variant]]" + type: "string" + default: "" + - name: "target" + in: "query" + description: "Target build stage" + type: "string" + default: "" + - name: "outputs" + in: "query" + description: | + BuildKit output configuration in the format of a stringified JSON array of objects. + Each object must have two top-level properties: `Type` and `Attrs`. + The `Type` property must be set to 'moby'. + The `Attrs` property is a map of attributes for the BuildKit output configuration. + See https://docs.docker.com/build/exporters/oci-docker/ for more information. + + Example: + + ``` + [{"Type":"moby","Attrs":{"type":"image","force-compression":"true","compression":"zstd"}}] + ``` + type: "string" + default: "" + - name: "version" + in: "query" + type: "string" + default: "1" + enum: ["1", "2"] + description: | + Version of the builder backend to use. + + - `1` is the first generation classic (deprecated) builder in the Docker daemon (default) + - `2` is [BuildKit](https://github.com/moby/buildkit) + responses: + 200: + description: "no error" + 400: + description: "Bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Image"] + /build/prune: + post: + summary: "Delete builder cache" + produces: + - "application/json" + operationId: "BuildPrune" + parameters: + - name: "reserved-space" + in: "query" + description: "Amount of disk space in bytes to keep for cache" + type: "integer" + format: "int64" + - name: "max-used-space" + in: "query" + description: "Maximum amount of disk space allowed to keep for cache" + type: "integer" + format: "int64" + - name: "min-free-space" + in: "query" + description: "Target amount of free disk space after pruning" + type: "integer" + format: "int64" + - name: "all" + in: "query" + type: "boolean" + description: "Remove all types of build cache" + - name: "filters" + in: "query" + type: "string" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to + process on the list of build cache objects. + + Available filters: + + - `until=` remove cache older than ``. The `` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon's local time. + - `id=` + - `parent=` + - `type=` + - `description=` + - `inuse` + - `shared` + - `private` + responses: + 200: + description: "No error" + schema: + type: "object" + title: "BuildPruneResponse" + properties: + CachesDeleted: + type: "array" + items: + description: "ID of build cache object" + type: "string" + SpaceReclaimed: + description: "Disk space reclaimed in bytes" + type: "integer" + format: "int64" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Image"] + /images/create: + post: + summary: "Create an image" + description: "Pull or import an image." + operationId: "ImageCreate" + consumes: + - "text/plain" + - "application/octet-stream" + produces: + - "application/json" + responses: + 200: + description: "no error" + 404: + description: "repository does not exist or no read access" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "fromImage" + in: "query" + description: | + Name of the image to pull. If the name includes a tag or digest, specific behavior applies: + + - If only `fromImage` includes a tag, that tag is used. + - If both `fromImage` and `tag` are provided, `tag` takes precedence. + - If `fromImage` includes a digest, the image is pulled by digest, and `tag` is ignored. + - If neither a tag nor digest is specified, all tags are pulled. + type: "string" + - name: "fromSrc" + in: "query" + description: "Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image." + type: "string" + - name: "repo" + in: "query" + description: "Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image." + type: "string" + - name: "tag" + in: "query" + description: "Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled." + type: "string" + - name: "message" + in: "query" + description: "Set commit message for imported image." + type: "string" + - name: "inputImage" + in: "body" + description: "Image content if the value `-` has been specified in fromSrc query parameter" + schema: + type: "string" + required: false + - name: "X-Registry-Auth" + in: "header" + description: | + A base64url-encoded auth configuration. + + Refer to the [authentication section](#section/Authentication) for + details. + type: "string" + - name: "changes" + in: "query" + description: | + Apply `Dockerfile` instructions to the image that is created, + for example: `changes=ENV DEBUG=true`. + Note that `ENV DEBUG=true` should be URI component encoded. + + Supported `Dockerfile` instructions: + `CMD`|`ENTRYPOINT`|`ENV`|`EXPOSE`|`ONBUILD`|`USER`|`VOLUME`|`WORKDIR` + type: "array" + items: + type: "string" + - name: "platform" + in: "query" + description: | + Platform in the format os[/arch[/variant]]. + + When used in combination with the `fromImage` option, the daemon checks + if the given image is present in the local image cache with the given + OS and Architecture, and otherwise attempts to pull the image. If the + option is not set, the host's native OS and Architecture are used. + If the given image does not exist in the local image cache, the daemon + attempts to pull the image with the host's native OS and Architecture. + If the given image does exists in the local image cache, but its OS or + architecture does not match, a warning is produced. + + When used with the `fromSrc` option to import an image from an archive, + this option sets the platform information for the imported image. If + the option is not set, the host's native OS and Architecture are used + for the imported image. + type: "string" + default: "" + tags: ["Image"] + /images/{name}/json: + get: + summary: "Inspect an image" + description: "Return low-level information about an image." + operationId: "ImageInspect" + produces: + - "application/json" + responses: + 200: + description: "No error" + schema: + $ref: "#/definitions/ImageInspect" + 404: + description: "No such image" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such image: someimage (tag: latest)" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: "Image name or id" + type: "string" + required: true + - name: "manifests" + in: "query" + description: "Include Manifests in the image summary." + type: "boolean" + default: false + required: false + tags: ["Image"] + /images/{name}/history: + get: + summary: "Get the history of an image" + description: "Return parent layers of an image." + operationId: "ImageHistory" + produces: ["application/json"] + responses: + 200: + description: "List of image layers" + schema: + type: "array" + items: + $ref: "#/definitions/ImageHistoryResponseItem" + examples: + application/json: + - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710" + Created: 1398108230 + CreatedBy: "/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /" + Tags: + - "ubuntu:lucid" + - "ubuntu:10.04" + Size: 182964289 + Comment: "" + - Id: "6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8" + Created: 1398108222 + CreatedBy: "/bin/sh -c #(nop) MAINTAINER Tianon Gravi - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/" + Tags: [] + Size: 0 + Comment: "" + - Id: "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158" + Created: 1371157430 + CreatedBy: "" + Tags: + - "scratch12:latest" + - "scratch:latest" + Size: 0 + Comment: "Imported from -" + 404: + description: "No such image" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: "Image name or ID" + type: "string" + required: true + - name: "platform" + type: "string" + in: "query" + description: | + JSON-encoded OCI platform to select the platform-variant. + If omitted, it defaults to any locally available platform, + prioritizing the daemon's host platform. + + If the daemon provides a multi-platform image store, this selects + the platform-variant to show the history for. If the image is + a single-platform image, or if the multi-platform image does not + provide a variant matching the given platform, an error is returned. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` + tags: ["Image"] + /images/{name}/push: + post: + summary: "Push an image" + description: | + Push an image to a registry. + + If you wish to push an image on to a private registry, that image must + already have a tag which references the registry. For example, + `registry.example.com/myimage:latest`. + + The push is cancelled if the HTTP connection is closed. + operationId: "ImagePush" + consumes: + - "application/octet-stream" + responses: + 200: + description: "No error" + 404: + description: "No such image" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: | + Name of the image to push. For example, `registry.example.com/myimage`. + The image must be present in the local image store with the same name. + + The name should be provided without tag; if a tag is provided, it + is ignored. For example, `registry.example.com/myimage:latest` is + considered equivalent to `registry.example.com/myimage`. + + Use the `tag` parameter to specify the tag to push. + type: "string" + required: true + - name: "tag" + in: "query" + description: | + Tag of the image to push. For example, `latest`. If no tag is provided, + all tags of the given image that are present in the local image store + are pushed. + type: "string" + - name: "platform" + type: "string" + in: "query" + description: | + JSON-encoded OCI platform to select the platform-variant to push. + If not provided, all available variants will attempt to be pushed. + + If the daemon provides a multi-platform image store, this selects + the platform-variant to push to the registry. If the image is + a single-platform image, or if the multi-platform image does not + provide a variant matching the given platform, an error is returned. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` + - name: "X-Registry-Auth" + in: "header" + description: | + A base64url-encoded auth configuration. + + Refer to the [authentication section](#section/Authentication) for + details. + type: "string" + required: true + tags: ["Image"] + /images/{name}/tag: + post: + summary: "Tag an image" + description: | + Create a tag that refers to a source image. + + This creates an additional reference (tag) to the source image. The tag + can include a different repository name and/or tag. If the repository + or tag already exists, it will be overwritten. + operationId: "ImageTag" + responses: + 201: + description: "No error" + 400: + description: "Bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "No such image" + schema: + $ref: "#/definitions/ErrorResponse" + 409: + description: "Conflict" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: "Image name or ID to tag." + type: "string" + required: true + - name: "repo" + in: "query" + description: "The repository to tag in. For example, `someuser/someimage`." + type: "string" + - name: "tag" + in: "query" + description: "The name of the new tag." + type: "string" + tags: ["Image"] + /images/{name}: + delete: + summary: "Remove an image" + description: | + Remove an image, along with any untagged parent images that were + referenced by that image. + + Images can't be removed if they have descendant images, are being + used by a running container or are being used by a build. + operationId: "ImageDelete" + produces: ["application/json"] + responses: + 200: + description: "The image was deleted successfully" + schema: + type: "array" + items: + $ref: "#/definitions/ImageDeleteResponseItem" + examples: + application/json: + - Untagged: "3e2f21a89f" + - Deleted: "3e2f21a89f" + - Deleted: "53b4f83ac9" + 404: + description: "No such image" + schema: + $ref: "#/definitions/ErrorResponse" + 409: + description: "Conflict" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: "Image name or ID" + type: "string" + required: true + - name: "force" + in: "query" + description: "Remove the image even if it is being used by stopped containers or has other tags" + type: "boolean" + default: false + - name: "noprune" + in: "query" + description: "Do not delete untagged parent images" + type: "boolean" + default: false + - name: "platforms" + in: "query" + description: | + Select platform-specific content to delete. + Multiple values are accepted. + Each platform is a OCI platform encoded as a JSON string. + type: "array" + items: + # This should be OCIPlatform + # but $ref is not supported for array in query in Swagger 2.0 + # $ref: "#/definitions/OCIPlatform" + type: "string" + tags: ["Image"] + /images/search: + get: + summary: "Search images" + description: "Search for an image on Docker Hub." + operationId: "ImageSearch" + produces: + - "application/json" + responses: + 200: + description: "No error" + schema: + type: "array" + items: + type: "object" + title: "ImageSearchResponseItem" + properties: + description: + type: "string" + is_official: + type: "boolean" + is_automated: + description: | + Whether this repository has automated builds enabled. + +


+ + > **Deprecated**: This field is deprecated and will always be "false". + type: "boolean" + example: false + name: + type: "string" + star_count: + type: "integer" + examples: + application/json: + - description: "A minimal Docker image based on Alpine Linux with a complete package index and only 5 MB in size!" + is_official: true + is_automated: false + name: "alpine" + star_count: 10093 + - description: "Busybox base image." + is_official: true + is_automated: false + name: "Busybox base image." + star_count: 3037 + - description: "The PostgreSQL object-relational database system provides reliability and data integrity." + is_official: true + is_automated: false + name: "postgres" + star_count: 12408 + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "term" + in: "query" + description: "Term to search" + type: "string" + required: true + - name: "limit" + in: "query" + description: "Maximum number of results to return" + type: "integer" + - name: "filters" + in: "query" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters: + + - `is-official=(true|false)` + - `stars=` Matches images that has at least 'number' stars. + type: "string" + tags: ["Image"] + /images/prune: + post: + summary: "Delete unused images" + produces: + - "application/json" + operationId: "ImagePrune" + parameters: + - name: "filters" + in: "query" + description: | + Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters: + + - `dangling=` When set to `true` (or `1`), prune only + unused *and* untagged images. When set to `false` + (or `0`), all unused images are pruned. + - `until=` Prune images created before this timestamp. The `` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time. + - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune images with (or without, in case `label!=...` is used) the specified labels. + type: "string" + responses: + 200: + description: "No error" + schema: + type: "object" + title: "ImagePruneResponse" + properties: + ImagesDeleted: + description: "Images that were deleted" + type: "array" + items: + $ref: "#/definitions/ImageDeleteResponseItem" + SpaceReclaimed: + description: "Disk space reclaimed in bytes" + type: "integer" + format: "int64" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Image"] + /auth: + post: + summary: "Check auth configuration" + description: | + Validate credentials for a registry and, if available, get an identity + token for accessing the registry without password. + operationId: "SystemAuth" + consumes: ["application/json"] + produces: ["application/json"] + responses: + 200: + description: "An identity token was generated successfully." + schema: + $ref: "#/definitions/AuthResponse" + 204: + description: "No error" + 401: + description: "Auth error" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "authConfig" + in: "body" + description: "Authentication to check" + schema: + $ref: "#/definitions/AuthConfig" + tags: ["System"] + /info: + get: + summary: "Get system information" + operationId: "SystemInfo" + produces: + - "application/json" + responses: + 200: + description: "No error" + schema: + $ref: "#/definitions/SystemInfo" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["System"] + /version: + get: + summary: "Get version" + description: "Returns the version of Docker that is running and various information about the system that Docker is running on." + operationId: "SystemVersion" + produces: ["application/json"] + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/SystemVersion" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["System"] + /_ping: + get: + summary: "Ping" + description: "This is a dummy endpoint you can use to test if the server is accessible." + operationId: "SystemPing" + produces: ["text/plain"] + responses: + 200: + description: "no error" + schema: + type: "string" + example: "OK" + headers: + Api-Version: + type: "string" + description: "Max API Version the server supports" + Builder-Version: + type: "string" + description: | + Default version of docker image builder + + The default on Linux is version "2" (BuildKit), but the daemon + can be configured to recommend version "1" (classic Builder). + Windows does not yet support BuildKit for native Windows images, + and uses "1" (classic builder) as a default. + + This value is a recommendation as advertised by the daemon, and + it is up to the client to choose which builder to use. + default: "2" + Docker-Experimental: + type: "boolean" + description: "If the server is running with experimental mode enabled" + Swarm: + type: "string" + enum: ["inactive", "pending", "error", "locked", "active/worker", "active/manager"] + description: | + Contains information about Swarm status of the daemon, + and if the daemon is acting as a manager or worker node. + default: "inactive" + Cache-Control: + type: "string" + default: "no-cache, no-store, must-revalidate" + Pragma: + type: "string" + default: "no-cache" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + headers: + Cache-Control: + type: "string" + default: "no-cache, no-store, must-revalidate" + Pragma: + type: "string" + default: "no-cache" + tags: ["System"] + head: + summary: "Ping" + description: "This is a dummy endpoint you can use to test if the server is accessible." + operationId: "SystemPingHead" + produces: ["text/plain"] + responses: + 200: + description: "no error" + schema: + type: "string" + example: "(empty)" + headers: + Api-Version: + type: "string" + description: "Max API Version the server supports" + Builder-Version: + type: "string" + description: "Default version of docker image builder" + Docker-Experimental: + type: "boolean" + description: "If the server is running with experimental mode enabled" + Swarm: + type: "string" + enum: ["inactive", "pending", "error", "locked", "active/worker", "active/manager"] + description: | + Contains information about Swarm status of the daemon, + and if the daemon is acting as a manager or worker node. + default: "inactive" + Cache-Control: + type: "string" + default: "no-cache, no-store, must-revalidate" + Pragma: + type: "string" + default: "no-cache" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["System"] + /commit: + post: + summary: "Create a new image from a container" + operationId: "ImageCommit" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 201: + description: "no error" + schema: + $ref: "#/definitions/IDResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "containerConfig" + in: "body" + description: "The container configuration" + schema: + $ref: "#/definitions/ContainerConfig" + - name: "container" + in: "query" + description: "The ID or name of the container to commit" + type: "string" + - name: "repo" + in: "query" + description: "Repository name for the created image" + type: "string" + - name: "tag" + in: "query" + description: "Tag name for the create image" + type: "string" + - name: "comment" + in: "query" + description: "Commit message" + type: "string" + - name: "author" + in: "query" + description: "Author of the image (e.g., `John Hannibal Smith `)" + type: "string" + - name: "pause" + in: "query" + description: "Whether to pause the container before committing" + type: "boolean" + default: true + - name: "changes" + in: "query" + description: "`Dockerfile` instructions to apply while committing" + type: "string" + tags: ["Image"] + /events: + get: + summary: "Monitor events" + description: | + Stream real-time events from the server. + + Various objects within Docker report events when something happens to them. + + Containers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `exec_die`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, `update`, and `prune` + + Images report these events: `create`, `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, `untag`, and `prune` + + Volumes report these events: `create`, `mount`, `unmount`, `destroy`, and `prune` + + Networks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, `remove`, and `prune` + + The Docker daemon reports these events: `reload` + + Services report these events: `create`, `update`, and `remove` + + Nodes report these events: `create`, `update`, and `remove` + + Secrets report these events: `create`, `update`, and `remove` + + Configs report these events: `create`, `update`, and `remove` + + The Builder reports `prune` events + + operationId: "SystemEvents" + produces: + - "application/jsonl" + - "application/x-ndjson" + - "application/json-seq" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/EventMessage" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "since" + in: "query" + description: "Show events created since this timestamp then stream new events." + type: "string" + - name: "until" + in: "query" + description: "Show events created until this timestamp then stop streaming." + type: "string" + - name: "filters" + in: "query" + description: | + A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters: + + - `config=` config name or ID + - `container=` container name or ID + - `daemon=` daemon name or ID + - `event=` event type + - `image=` image name or ID + - `label=` image or container label + - `network=` network name or ID + - `node=` node ID + - `plugin`= plugin name or ID + - `scope`= local or swarm + - `secret=` secret name or ID + - `service=` service name or ID + - `type=` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service`, `secret` or `config` + - `volume=` volume name + type: "string" + tags: ["System"] + /system/df: + get: + summary: "Get data usage information" + operationId: "SystemDataUsage" + responses: + 200: + description: "no error" + schema: + type: "object" + title: "SystemDataUsageResponse" + properties: + ImagesDiskUsage: + $ref: "#/definitions/ImagesDiskUsage" + ContainersDiskUsage: + $ref: "#/definitions/ContainersDiskUsage" + VolumesDiskUsage: + $ref: "#/definitions/VolumesDiskUsage" + BuildCacheDiskUsage: + $ref: "#/definitions/BuildCacheDiskUsage" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "type" + in: "query" + description: | + Object types, for which to compute and return data. + type: "array" + collectionFormat: multi + items: + type: "string" + enum: ["container", "image", "volume", "build-cache"] + - name: "verbose" + in: "query" + description: | + Show detailed information on space usage. + type: "boolean" + default: false + tags: ["System"] + /images/{name}/get: + get: + summary: "Export an image" + description: | + Get a tarball containing all images and metadata for a repository. + + If `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced. + + ### Image tarball format + + An image tarball contains [Content as defined in the OCI Image Layout Specification](https://github.com/opencontainers/image-spec/blob/v1.1.1/image-layout.md#content). + + Additionally, includes the manifest.json file associated with a backwards compatible docker save format. + + If the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs. + + ```json + { + "hello-world": { + "latest": "565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1" + } + } + ``` + operationId: "ImageGet" + produces: + - "application/x-tar" + responses: + 200: + description: "no error" + schema: + type: "string" + format: "binary" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: "Image name or ID" + type: "string" + required: true + - name: "platform" + type: "array" + items: + type: "string" + collectionFormat: "multi" + in: "query" + description: | + JSON encoded OCI platform describing a platform which will be used + to select a platform-specific image to be saved if the image is + multi-platform. + If not provided, the full multi-platform image will be saved. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` + tags: ["Image"] + /images/get: + get: + summary: "Export several images" + description: | + Get a tarball containing all images and metadata for several image + repositories. + + For each value of the `names` parameter: if it is a specific name and + tag (e.g. `ubuntu:latest`), then only that image (and its parents) are + returned; if it is an image ID, similarly only that image (and its parents) + are returned and there would be no names referenced in the 'repositories' + file for this image ID. + + For details on the format, see the [export image endpoint](#operation/ImageGet). + operationId: "ImageGetAll" + produces: + - "application/x-tar" + responses: + 200: + description: "no error" + schema: + type: "string" + format: "binary" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "names" + in: "query" + description: "Image names to filter by" + type: "array" + items: + type: "string" + - name: "platform" + type: "array" + items: + type: "string" + collectionFormat: "multi" + in: "query" + description: | + JSON encoded OCI platform(s) which will be used to select the + platform-specific image(s) to be saved if the image is + multi-platform. If not provided, the full multi-platform image + will be saved. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` + tags: ["Image"] + /images/load: + post: + summary: "Import images" + description: | + Load a set of images and tags into a repository. + + For details on the format, see the [export image endpoint](#operation/ImageGet). + operationId: "ImageLoad" + consumes: + - "application/x-tar" + produces: + - "application/json" + responses: + 200: + description: "no error" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "imagesTarball" + in: "body" + description: "Tar archive containing images" + schema: + type: "string" + format: "binary" + - name: "quiet" + in: "query" + description: "Suppress progress details during load." + type: "boolean" + default: false + - name: "platform" + type: "array" + items: + type: "string" + collectionFormat: "multi" + in: "query" + description: | + JSON encoded OCI platform(s) which will be used to select the + platform-specific image(s) to load if the image is + multi-platform. If not provided, the full multi-platform image + will be loaded. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` + tags: ["Image"] + /containers/{id}/exec: + post: + summary: "Create an exec instance" + description: "Run a command inside a running container." + operationId: "ContainerExec" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 201: + description: "no error" + schema: + $ref: "#/definitions/IDResponse" + 404: + description: "no such container" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such container: c2ada9df5af8" + 409: + description: "container is paused" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "execConfig" + in: "body" + description: "Exec configuration" + schema: + type: "object" + title: "ExecConfig" + properties: + AttachStdin: + type: "boolean" + description: "Attach to `stdin` of the exec command." + AttachStdout: + type: "boolean" + description: "Attach to `stdout` of the exec command." + AttachStderr: + type: "boolean" + description: "Attach to `stderr` of the exec command." + ConsoleSize: + type: "array" + description: "Initial console size, as an `[height, width]` array." + x-nullable: true + minItems: 2 + maxItems: 2 + items: + type: "integer" + minimum: 0 + example: [80, 64] + DetachKeys: + type: "string" + description: | + Override the key sequence for detaching a container. Format is + a single character `[a-Z]` or `ctrl-` where `` + is one of: `a-z`, `@`, `^`, `[`, `,` or `_`. + Tty: + type: "boolean" + description: "Allocate a pseudo-TTY." + Env: + description: | + A list of environment variables in the form `["VAR=value", ...]`. + type: "array" + items: + type: "string" + Cmd: + type: "array" + description: "Command to run, as a string or array of strings." + items: + type: "string" + Privileged: + type: "boolean" + description: "Runs the exec process with extended privileges." + default: false + User: + type: "string" + description: | + The user, and optionally, group to run the exec process inside + the container. Format is one of: `user`, `user:group`, `uid`, + or `uid:gid`. + WorkingDir: + type: "string" + description: | + The working directory for the exec process inside the container. + example: + AttachStdin: false + AttachStdout: true + AttachStderr: true + DetachKeys: "ctrl-p,ctrl-q" + Tty: false + Cmd: + - "date" + Env: + - "FOO=bar" + - "BAZ=quux" + required: true + - name: "id" + in: "path" + description: "ID or name of container" + type: "string" + required: true + tags: ["Exec"] + /exec/{id}/start: + post: + summary: "Start an exec instance" + description: | + Starts a previously set up exec instance. If detach is true, this endpoint + returns immediately after starting the command. Otherwise, it sets up an + interactive session with the command. + operationId: "ExecStart" + consumes: + - "application/json" + produces: + - "application/vnd.docker.raw-stream" + - "application/vnd.docker.multiplexed-stream" + responses: + 200: + description: "No error" + 404: + description: "No such exec instance" + schema: + $ref: "#/definitions/ErrorResponse" + 409: + description: "Container is stopped or paused" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "execStartConfig" + in: "body" + schema: + type: "object" + title: "ExecStartConfig" + properties: + Detach: + type: "boolean" + description: "Detach from the command." + example: false + Tty: + type: "boolean" + description: "Allocate a pseudo-TTY." + example: true + ConsoleSize: + type: "array" + description: "Initial console size, as an `[height, width]` array." + x-nullable: true + minItems: 2 + maxItems: 2 + items: + type: "integer" + minimum: 0 + example: [80, 64] + - name: "id" + in: "path" + description: "Exec instance ID" + required: true + type: "string" + tags: ["Exec"] + /exec/{id}/resize: + post: + summary: "Resize an exec instance" + description: | + Resize the TTY session used by an exec instance. This endpoint only works + if `tty` was specified as part of creating and starting the exec instance. + operationId: "ExecResize" + responses: + 200: + description: "No error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "No such exec instance" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "Exec instance ID" + required: true + type: "string" + - name: "h" + in: "query" + required: true + description: "Height of the TTY session in characters" + type: "integer" + - name: "w" + in: "query" + required: true + description: "Width of the TTY session in characters" + type: "integer" + tags: ["Exec"] + /exec/{id}/json: + get: + summary: "Inspect an exec instance" + description: "Return low-level information about an exec instance." + operationId: "ExecInspect" + produces: + - "application/json" + responses: + 200: + description: "No error" + schema: + type: "object" + title: "ExecInspectResponse" + properties: + CanRemove: + type: "boolean" + DetachKeys: + type: "string" + ID: + type: "string" + Running: + type: "boolean" + ExitCode: + type: "integer" + ProcessConfig: + $ref: "#/definitions/ProcessConfig" + OpenStdin: + type: "boolean" + OpenStderr: + type: "boolean" + OpenStdout: + type: "boolean" + ContainerID: + type: "string" + Pid: + type: "integer" + description: "The system process ID for the exec process." + examples: + application/json: + CanRemove: false + ContainerID: "b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126" + DetachKeys: "" + ExitCode: 2 + ID: "f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b" + OpenStderr: true + OpenStdin: true + OpenStdout: true + ProcessConfig: + arguments: + - "-c" + - "exit 2" + entrypoint: "sh" + privileged: false + tty: true + user: "1000" + Running: false + Pid: 42000 + 404: + description: "No such exec instance" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "Exec instance ID" + required: true + type: "string" + tags: ["Exec"] + + /volumes: + get: + summary: "List volumes" + operationId: "VolumeList" + produces: ["application/json"] + responses: + 200: + description: "Summary volume data that matches the query" + schema: + $ref: "#/definitions/VolumeListResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + description: | + JSON encoded value of the filters (a `map[string][]string`) to + process on the volumes list. Available filters: + + - `dangling=` When set to `true` (or `1`), returns all + volumes that are not in use by a container. When set to `false` + (or `0`), only volumes that are in use by one or more + containers are returned. + - `driver=` Matches volumes based on their driver. + - `label=` or `label=:` Matches volumes based on + the presence of a `label` alone or a `label` and a value. + - `name=` Matches all or part of a volume name. + type: "string" + format: "json" + tags: ["Volume"] + + /volumes/create: + post: + summary: "Create a volume" + operationId: "VolumeCreate" + consumes: ["application/json"] + produces: ["application/json"] + responses: + 201: + description: "The volume was created successfully" + schema: + $ref: "#/definitions/Volume" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "volumeConfig" + in: "body" + required: true + description: "Volume configuration" + schema: + $ref: "#/definitions/VolumeCreateRequest" + tags: ["Volume"] + + /volumes/{name}: + get: + summary: "Inspect a volume" + operationId: "VolumeInspect" + produces: ["application/json"] + responses: + 200: + description: "No error" + schema: + $ref: "#/definitions/Volume" + 404: + description: "No such volume" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + required: true + description: "Volume name or ID" + type: "string" + tags: ["Volume"] + + put: + summary: | + "Update a volume. Valid only for Swarm cluster volumes" + operationId: "VolumeUpdate" + consumes: ["application/json"] + produces: ["application/json"] + responses: + 200: + description: "no error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such volume" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: "The name or ID of the volume" + type: "string" + required: true + - name: "body" + in: "body" + schema: + # though the schema for is an object that contains only a + # ClusterVolumeSpec, wrapping the ClusterVolumeSpec in this object + # means that if, later on, we support things like changing the + # labels, we can do so without duplicating that information to the + # ClusterVolumeSpec. + type: "object" + description: "Volume configuration" + properties: + Spec: + $ref: "#/definitions/ClusterVolumeSpec" + description: | + The spec of the volume to update. Currently, only Availability may + change. All other fields must remain unchanged. + - name: "version" + in: "query" + description: | + The version number of the volume being updated. This is required to + avoid conflicting writes. Found in the volume's `ClusterVolume` + field. + type: "integer" + format: "int64" + required: true + tags: ["Volume"] + + delete: + summary: "Remove a volume" + description: "Instruct the driver to remove the volume." + operationId: "VolumeDelete" + responses: + 204: + description: "The volume was removed" + 404: + description: "No such volume or volume driver" + schema: + $ref: "#/definitions/ErrorResponse" + 409: + description: "Volume is in use and cannot be removed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + required: true + description: "Volume name or ID" + type: "string" + - name: "force" + in: "query" + description: "Force the removal of the volume" + type: "boolean" + default: false + tags: ["Volume"] + + /volumes/prune: + post: + summary: "Delete unused volumes" + produces: + - "application/json" + operationId: "VolumePrune" + parameters: + - name: "filters" + in: "query" + description: | + Filters to process on the prune list, encoded as JSON (a `map[string][]string`). + + Available filters: + - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune volumes with (or without, in case `label!=...` is used) the specified labels. + - `all` (`all=true`) - Consider all (local) volumes for pruning and not just anonymous volumes. + type: "string" + responses: + 200: + description: "No error" + schema: + type: "object" + title: "VolumePruneResponse" + properties: + VolumesDeleted: + description: "Volumes that were deleted" + type: "array" + items: + type: "string" + SpaceReclaimed: + description: "Disk space reclaimed in bytes" + type: "integer" + format: "int64" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Volume"] + /networks: + get: + summary: "List networks" + description: | + Returns a list of networks. For details on the format, see the + [network inspect endpoint](#operation/NetworkInspect). + + Note that it uses a different, smaller representation of a network than + inspecting a single network. For example, the list of containers attached + to the network is not propagated in API versions 1.28 and up. + operationId: "NetworkList" + produces: + - "application/json" + responses: + 200: + description: "No error" + schema: + type: "array" + items: + $ref: "#/definitions/NetworkSummary" + examples: + application/json: + - Name: "bridge" + Id: "f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566" + Created: "2016-10-19T06:21:00.416543526Z" + Scope: "local" + Driver: "bridge" + EnableIPv4: true + EnableIPv6: false + Internal: false + Attachable: false + Ingress: false + IPAM: + Driver: "default" + Config: + - + Subnet: "172.17.0.0/16" + Options: + com.docker.network.bridge.default_bridge: "true" + com.docker.network.bridge.enable_icc: "true" + com.docker.network.bridge.enable_ip_masquerade: "true" + com.docker.network.bridge.host_binding_ipv4: "0.0.0.0" + com.docker.network.bridge.name: "docker0" + com.docker.network.driver.mtu: "1500" + - Name: "none" + Id: "e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794" + Created: "0001-01-01T00:00:00Z" + Scope: "local" + Driver: "null" + EnableIPv4: false + EnableIPv6: false + Internal: false + Attachable: false + Ingress: false + IPAM: + Driver: "default" + Config: [] + Containers: {} + Options: {} + - Name: "host" + Id: "13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e" + Created: "0001-01-01T00:00:00Z" + Scope: "local" + Driver: "host" + EnableIPv4: false + EnableIPv6: false + Internal: false + Attachable: false + Ingress: false + IPAM: + Driver: "default" + Config: [] + Containers: {} + Options: {} + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + description: | + JSON encoded value of the filters (a `map[string][]string`) to process + on the networks list. + + Available filters: + + - `dangling=` When set to `true` (or `1`), returns all + networks that are not in use by a container. When set to `false` + (or `0`), only networks that are in use by one or more + containers are returned. + - `driver=` Matches a network's driver. + - `id=` Matches all or part of a network ID. + - `label=` or `label==` of a network label. + - `name=` Matches all or part of a network name. + - `scope=["swarm"|"global"|"local"]` Filters networks by scope (`swarm`, `global`, or `local`). + - `type=["custom"|"builtin"]` Filters networks by type. The `custom` keyword returns all user-defined networks. + type: "string" + tags: ["Network"] + + /networks/{id}: + get: + summary: "Inspect a network" + operationId: "NetworkInspect" + produces: + - "application/json" + responses: + 200: + description: "No error" + schema: + $ref: "#/definitions/NetworkInspect" + 404: + description: "Network not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "Network ID or name" + required: true + type: "string" + - name: "verbose" + in: "query" + description: "Detailed inspect output for troubleshooting" + type: "boolean" + default: false + - name: "scope" + in: "query" + description: "Filter the network by scope (swarm, global, or local)" + type: "string" + tags: ["Network"] + + delete: + summary: "Remove a network" + operationId: "NetworkDelete" + responses: + 204: + description: "No error" + 403: + description: "operation not supported for pre-defined networks" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such network" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "Network ID or name" + required: true + type: "string" + tags: ["Network"] + + /networks/create: + post: + summary: "Create a network" + operationId: "NetworkCreate" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 201: + description: "Network created successfully" + schema: + $ref: "#/definitions/NetworkCreateResponse" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 403: + description: | + Forbidden operation. This happens when trying to create a network named after a pre-defined network, + or when trying to create an overlay network on a daemon which is not part of a Swarm cluster. + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "plugin not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "networkConfig" + in: "body" + description: "Network configuration" + required: true + schema: + type: "object" + title: "NetworkCreateRequest" + required: ["Name"] + properties: + Name: + description: "The network's name." + type: "string" + example: "my_network" + Driver: + description: "Name of the network driver plugin to use." + type: "string" + default: "bridge" + example: "bridge" + Scope: + description: | + The level at which the network exists (e.g. `swarm` for cluster-wide + or `local` for machine level). + type: "string" + Internal: + description: "Restrict external access to the network." + type: "boolean" + Attachable: + description: | + Globally scoped network is manually attachable by regular + containers from workers in swarm mode. + type: "boolean" + example: true + Ingress: + description: | + Ingress network is the network which provides the routing-mesh + in swarm mode. + type: "boolean" + example: false + ConfigOnly: + description: | + Creates a config-only network. Config-only networks are placeholder + networks for network configurations to be used by other networks. + Config-only networks cannot be used directly to run containers + or services. + type: "boolean" + default: false + example: false + ConfigFrom: + description: | + Specifies the source which will provide the configuration for + this network. The specified network must be an existing + config-only network; see ConfigOnly. + $ref: "#/definitions/ConfigReference" + IPAM: + description: "Optional custom IP scheme for the network." + $ref: "#/definitions/IPAM" + EnableIPv4: + description: "Enable IPv4 on the network." + type: "boolean" + example: true + EnableIPv6: + description: "Enable IPv6 on the network." + type: "boolean" + example: true + Options: + description: "Network specific options to be used by the drivers." + type: "object" + additionalProperties: + type: "string" + example: + com.docker.network.bridge.default_bridge: "true" + com.docker.network.bridge.enable_icc: "true" + com.docker.network.bridge.enable_ip_masquerade: "true" + com.docker.network.bridge.host_binding_ipv4: "0.0.0.0" + com.docker.network.bridge.name: "docker0" + com.docker.network.driver.mtu: "1500" + Labels: + description: "User-defined key/value metadata." + type: "object" + additionalProperties: + type: "string" + example: + com.example.some-label: "some-value" + com.example.some-other-label: "some-other-value" + tags: ["Network"] + + /networks/{id}/connect: + post: + summary: "Connect a container to a network" + description: "The network must be either a local-scoped network or a swarm-scoped network with the `attachable` option set. A network cannot be re-attached to a running container" + operationId: "NetworkConnect" + consumes: + - "application/json" + responses: + 200: + description: "No error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 403: + description: "Operation forbidden" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "Network or container not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "Network ID or name" + required: true + type: "string" + - name: "container" + in: "body" + required: true + schema: + $ref: "#/definitions/NetworkConnectRequest" + tags: ["Network"] + + /networks/{id}/disconnect: + post: + summary: "Disconnect a container from a network" + operationId: "NetworkDisconnect" + consumes: + - "application/json" + responses: + 200: + description: "No error" + 403: + description: "Operation not supported for swarm scoped networks" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "Network or container not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "Network ID or name" + required: true + type: "string" + - name: "container" + in: "body" + required: true + schema: + $ref: "#/definitions/NetworkDisconnectRequest" + tags: ["Network"] + /networks/prune: + post: + summary: "Delete unused networks" + produces: + - "application/json" + operationId: "NetworkPrune" + parameters: + - name: "filters" + in: "query" + description: | + Filters to process on the prune list, encoded as JSON (a `map[string][]string`). + + Available filters: + - `until=` Prune networks created before this timestamp. The `` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time. + - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune networks with (or without, in case `label!=...` is used) the specified labels. + type: "string" + responses: + 200: + description: "No error" + schema: + type: "object" + title: "NetworkPruneResponse" + properties: + NetworksDeleted: + description: "Networks that were deleted" + type: "array" + items: + type: "string" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Network"] + /plugins: + get: + summary: "List plugins" + operationId: "PluginList" + description: "Returns information about installed plugins." + produces: ["application/json"] + responses: + 200: + description: "No error" + schema: + type: "array" + items: + $ref: "#/definitions/Plugin" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + type: "string" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to + process on the plugin list. + + Available filters: + + - `capability=` + - `enable=|` + tags: ["Plugin"] + + /plugins/privileges: + get: + summary: "Get plugin privileges" + operationId: "GetPluginPrivileges" + responses: + 200: + description: "no error" + schema: + type: "array" + items: + $ref: "#/definitions/PluginPrivilege" + example: + - Name: "network" + Description: "" + Value: + - "host" + - Name: "mount" + Description: "" + Value: + - "/data" + - Name: "device" + Description: "" + Value: + - "/dev/cpu_dma_latency" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "remote" + in: "query" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + tags: + - "Plugin" + + /plugins/pull: + post: + summary: "Install a plugin" + operationId: "PluginPull" + description: | + Pulls and installs a plugin. After the plugin is installed, it can be + enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable). + produces: + - "application/json" + responses: + 204: + description: "no error" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "remote" + in: "query" + description: | + Remote reference for plugin to install. + + The `:latest` tag is optional, and is used as the default if omitted. + required: true + type: "string" + - name: "name" + in: "query" + description: | + Local name for the pulled plugin. + + The `:latest` tag is optional, and is used as the default if omitted. + required: false + type: "string" + - name: "X-Registry-Auth" + in: "header" + description: | + A base64url-encoded auth configuration to use when pulling a plugin + from a registry. + + Refer to the [authentication section](#section/Authentication) for + details. + type: "string" + - name: "body" + in: "body" + schema: + type: "array" + items: + $ref: "#/definitions/PluginPrivilege" + example: + - Name: "network" + Description: "" + Value: + - "host" + - Name: "mount" + Description: "" + Value: + - "/data" + - Name: "device" + Description: "" + Value: + - "/dev/cpu_dma_latency" + tags: ["Plugin"] + /plugins/{name}/json: + get: + summary: "Inspect a plugin" + operationId: "PluginInspect" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Plugin" + 404: + description: "plugin is not installed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + tags: ["Plugin"] + /plugins/{name}: + delete: + summary: "Remove a plugin" + operationId: "PluginDelete" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Plugin" + 404: + description: "plugin is not installed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + - name: "force" + in: "query" + description: | + Disable the plugin before removing. This may result in issues if the + plugin is in use by a container. + type: "boolean" + default: false + tags: ["Plugin"] + /plugins/{name}/enable: + post: + summary: "Enable a plugin" + operationId: "PluginEnable" + responses: + 200: + description: "no error" + 404: + description: "plugin is not installed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + - name: "timeout" + in: "query" + description: "Set the HTTP client timeout (in seconds)" + type: "integer" + default: 0 + tags: ["Plugin"] + /plugins/{name}/disable: + post: + summary: "Disable a plugin" + operationId: "PluginDisable" + responses: + 200: + description: "no error" + 404: + description: "plugin is not installed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + - name: "force" + in: "query" + description: | + Force disable a plugin even if still in use. + required: false + type: "boolean" + tags: ["Plugin"] + /plugins/{name}/upgrade: + post: + summary: "Upgrade a plugin" + operationId: "PluginUpgrade" + responses: + 204: + description: "no error" + 404: + description: "plugin not installed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + - name: "remote" + in: "query" + description: | + Remote reference to upgrade to. + + The `:latest` tag is optional, and is used as the default if omitted. + required: true + type: "string" + - name: "X-Registry-Auth" + in: "header" + description: | + A base64url-encoded auth configuration to use when pulling a plugin + from a registry. + + Refer to the [authentication section](#section/Authentication) for + details. + type: "string" + - name: "body" + in: "body" + schema: + type: "array" + items: + $ref: "#/definitions/PluginPrivilege" + example: + - Name: "network" + Description: "" + Value: + - "host" + - Name: "mount" + Description: "" + Value: + - "/data" + - Name: "device" + Description: "" + Value: + - "/dev/cpu_dma_latency" + tags: ["Plugin"] + /plugins/create: + post: + summary: "Create a plugin" + operationId: "PluginCreate" + consumes: + - "application/x-tar" + responses: + 204: + description: "no error" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "query" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + - name: "tarContext" + in: "body" + description: "Path to tar containing plugin rootfs and manifest" + schema: + type: "string" + format: "binary" + tags: ["Plugin"] + /plugins/{name}/push: + post: + summary: "Push a plugin" + operationId: "PluginPush" + description: | + Push a plugin to the registry. + parameters: + - name: "name" + in: "path" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + responses: + 200: + description: "no error" + 404: + description: "plugin not installed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Plugin"] + /plugins/{name}/set: + post: + summary: "Configure a plugin" + operationId: "PluginSet" + consumes: + - "application/json" + parameters: + - name: "name" + in: "path" + description: | + The name of the plugin. The `:latest` tag is optional, and is the + default if omitted. + required: true + type: "string" + - name: "body" + in: "body" + schema: + type: "array" + items: + type: "string" + example: ["DEBUG=1"] + responses: + 204: + description: "No error" + 404: + description: "Plugin not installed" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Plugin"] + /nodes: + get: + summary: "List nodes" + operationId: "NodeList" + responses: + 200: + description: "no error" + schema: + type: "array" + items: + $ref: "#/definitions/Node" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + description: | + Filters to process on the nodes list, encoded as JSON (a `map[string][]string`). + + Available filters: + - `id=` + - `label=` + - `membership=`(`accepted`|`pending`)` + - `name=` + - `node.label=` + - `role=`(`manager`|`worker`)` + type: "string" + tags: ["Node"] + /nodes/{id}: + get: + summary: "Inspect a node" + operationId: "NodeInspect" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Node" + 404: + description: "no such node" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "The ID or name of the node" + type: "string" + required: true + tags: ["Node"] + delete: + summary: "Delete a node" + operationId: "NodeDelete" + responses: + 200: + description: "no error" + 404: + description: "no such node" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "The ID or name of the node" + type: "string" + required: true + - name: "force" + in: "query" + description: "Force remove a node from the swarm" + default: false + type: "boolean" + tags: ["Node"] + /nodes/{id}/update: + post: + summary: "Update a node" + operationId: "NodeUpdate" + responses: + 200: + description: "no error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such node" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "The ID of the node" + type: "string" + required: true + - name: "body" + in: "body" + schema: + $ref: "#/definitions/NodeSpec" + - name: "version" + in: "query" + description: | + The version number of the node object being updated. This is required + to avoid conflicting writes. + type: "integer" + format: "int64" + required: true + tags: ["Node"] + /swarm: + get: + summary: "Inspect swarm" + operationId: "SwarmInspect" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Swarm" + 404: + description: "no such swarm" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Swarm"] + /swarm/init: + post: + summary: "Initialize a new swarm" + operationId: "SwarmInit" + produces: + - "application/json" + - "text/plain" + responses: + 200: + description: "no error" + schema: + description: "The node ID" + type: "string" + example: "7v2t30z9blmxuhnyo6s4cpenp" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is already part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "body" + in: "body" + required: true + schema: + type: "object" + title: "SwarmInitRequest" + properties: + ListenAddr: + description: | + Listen address used for inter-manager communication, as well + as determining the networking interface used for the VXLAN + Tunnel Endpoint (VTEP). This can either be an address/port + combination in the form `192.168.1.1:4567`, or an interface + followed by a port number, like `eth0:4567`. If the port number + is omitted, the default swarm listening port is used. + type: "string" + AdvertiseAddr: + description: | + Externally reachable address advertised to other nodes. This + can either be an address/port combination in the form + `192.168.1.1:4567`, or an interface followed by a port number, + like `eth0:4567`. If the port number is omitted, the port + number from the listen address is used. If `AdvertiseAddr` is + not specified, it will be automatically detected when possible. + type: "string" + DataPathAddr: + description: | + Address or interface to use for data path traffic (format: + ``), for example, `192.168.1.1`, or an interface, + like `eth0`. If `DataPathAddr` is unspecified, the same address + as `AdvertiseAddr` is used. + + The `DataPathAddr` specifies the address that global scope + network drivers will publish towards other nodes in order to + reach the containers running on this node. Using this parameter + it is possible to separate the container data traffic from the + management traffic of the cluster. + type: "string" + DataPathPort: + description: | + DataPathPort specifies the data path port number for data traffic. + Acceptable port range is 1024 to 49151. + if no port is set or is set to 0, default port 4789 will be used. + type: "integer" + format: "uint32" + DefaultAddrPool: + description: | + Default Address Pool specifies default subnet pools for global + scope networks. + type: "array" + items: + type: "string" + example: ["10.10.0.0/16", "20.20.0.0/16"] + ForceNewCluster: + description: "Force creation of a new swarm." + type: "boolean" + SubnetSize: + description: | + SubnetSize specifies the subnet size of the networks created + from the default subnet pool. + type: "integer" + format: "uint32" + Spec: + $ref: "#/definitions/SwarmSpec" + example: + ListenAddr: "0.0.0.0:2377" + AdvertiseAddr: "192.168.1.1:2377" + DataPathPort: 4789 + DefaultAddrPool: ["10.10.0.0/8", "20.20.0.0/8"] + SubnetSize: 24 + ForceNewCluster: false + Spec: + Orchestration: {} + Raft: {} + Dispatcher: {} + CAConfig: {} + EncryptionConfig: + AutoLockManagers: false + tags: ["Swarm"] + /swarm/join: + post: + summary: "Join an existing swarm" + operationId: "SwarmJoin" + responses: + 200: + description: "no error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is already part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "body" + in: "body" + required: true + schema: + type: "object" + title: "SwarmJoinRequest" + properties: + ListenAddr: + description: | + Listen address used for inter-manager communication if the node + gets promoted to manager, as well as determining the networking + interface used for the VXLAN Tunnel Endpoint (VTEP). + type: "string" + AdvertiseAddr: + description: | + Externally reachable address advertised to other nodes. This + can either be an address/port combination in the form + `192.168.1.1:4567`, or an interface followed by a port number, + like `eth0:4567`. If the port number is omitted, the port + number from the listen address is used. If `AdvertiseAddr` is + not specified, it will be automatically detected when possible. + type: "string" + DataPathAddr: + description: | + Address or interface to use for data path traffic (format: + ``), for example, `192.168.1.1`, or an interface, + like `eth0`. If `DataPathAddr` is unspecified, the same address + as `AdvertiseAddr` is used. + + The `DataPathAddr` specifies the address that global scope + network drivers will publish towards other nodes in order to + reach the containers running on this node. Using this parameter + it is possible to separate the container data traffic from the + management traffic of the cluster. + + type: "string" + RemoteAddrs: + description: | + Addresses of manager nodes already participating in the swarm. + type: "array" + items: + type: "string" + JoinToken: + description: "Secret token for joining this swarm." + type: "string" + example: + ListenAddr: "0.0.0.0:2377" + AdvertiseAddr: "192.168.1.1:2377" + DataPathAddr: "192.168.1.1" + RemoteAddrs: + - "node1:2377" + JoinToken: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2" + tags: ["Swarm"] + /swarm/leave: + post: + summary: "Leave a swarm" + operationId: "SwarmLeave" + responses: + 200: + description: "no error" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "force" + description: | + Force leave swarm, even if this is the last manager or that it will + break the cluster. + in: "query" + type: "boolean" + default: false + tags: ["Swarm"] + /swarm/update: + post: + summary: "Update a swarm" + operationId: "SwarmUpdate" + responses: + 200: + description: "no error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "body" + in: "body" + required: true + schema: + $ref: "#/definitions/SwarmSpec" + - name: "version" + in: "query" + description: | + The version number of the swarm object being updated. This is + required to avoid conflicting writes. + type: "integer" + format: "int64" + required: true + - name: "rotateWorkerToken" + in: "query" + description: "Rotate the worker join token." + type: "boolean" + default: false + - name: "rotateManagerToken" + in: "query" + description: "Rotate the manager join token." + type: "boolean" + default: false + - name: "rotateManagerUnlockKey" + in: "query" + description: "Rotate the manager unlock key." + type: "boolean" + default: false + tags: ["Swarm"] + /swarm/unlockkey: + get: + summary: "Get the unlock key" + operationId: "SwarmUnlockkey" + consumes: + - "application/json" + responses: + 200: + description: "no error" + schema: + type: "object" + title: "UnlockKeyResponse" + properties: + UnlockKey: + description: "The swarm's unlock key." + type: "string" + example: + UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Swarm"] + /swarm/unlock: + post: + summary: "Unlock a locked manager" + operationId: "SwarmUnlock" + consumes: + - "application/json" + produces: + - "application/json" + parameters: + - name: "body" + in: "body" + required: true + schema: + type: "object" + title: "SwarmUnlockRequest" + properties: + UnlockKey: + description: "The swarm's unlock key." + type: "string" + example: + UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8" + responses: + 200: + description: "no error" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Swarm"] + /services: + get: + summary: "List services" + operationId: "ServiceList" + responses: + 200: + description: "no error" + schema: + type: "array" + items: + $ref: "#/definitions/Service" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + type: "string" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to + process on the services list. + + Available filters: + + - `id=` + - `label=` + - `mode=["replicated"|"global"]` + - `name=` + - name: "status" + in: "query" + type: "boolean" + description: | + Include service status, with count of running and desired tasks. + tags: ["Service"] + /services/create: + post: + summary: "Create a service" + operationId: "ServiceCreate" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 201: + description: "no error" + schema: + $ref: "#/definitions/ServiceCreateResponse" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 403: + description: "network is not eligible for services" + schema: + $ref: "#/definitions/ErrorResponse" + 409: + description: "name conflicts with an existing service" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "body" + in: "body" + required: true + schema: + allOf: + - $ref: "#/definitions/ServiceSpec" + - type: "object" + example: + Name: "web" + TaskTemplate: + ContainerSpec: + Image: "nginx:alpine" + Mounts: + - + ReadOnly: true + Source: "web-data" + Target: "/usr/share/nginx/html" + Type: "volume" + VolumeOptions: + DriverConfig: {} + Labels: + com.example.something: "something-value" + Hosts: ["10.10.10.10 host1", "ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"] + User: "33" + DNSConfig: + Nameservers: ["8.8.8.8"] + Search: ["example.org"] + Options: ["timeout:3"] + Secrets: + - + File: + Name: "www.example.org.key" + UID: "33" + GID: "33" + Mode: 384 + SecretID: "fpjqlhnwb19zds35k8wn80lq9" + SecretName: "example_org_domain_key" + OomScoreAdj: 0 + LogDriver: + Name: "json-file" + Options: + max-file: "3" + max-size: "10M" + Placement: {} + Resources: + Limits: + MemoryBytes: 104857600 + Reservations: {} + RestartPolicy: + Condition: "on-failure" + Delay: 10000000000 + MaxAttempts: 10 + Mode: + Replicated: + Replicas: 4 + UpdateConfig: + Parallelism: 2 + Delay: 1000000000 + FailureAction: "pause" + Monitor: 15000000000 + MaxFailureRatio: 0.15 + RollbackConfig: + Parallelism: 1 + Delay: 1000000000 + FailureAction: "pause" + Monitor: 15000000000 + MaxFailureRatio: 0.15 + EndpointSpec: + Ports: + - + Protocol: "tcp" + PublishedPort: 8080 + TargetPort: 80 + Labels: + foo: "bar" + - name: "X-Registry-Auth" + in: "header" + description: | + A base64url-encoded auth configuration for pulling from private + registries. + + Refer to the [authentication section](#section/Authentication) for + details. + type: "string" + tags: ["Service"] + /services/{id}: + get: + summary: "Inspect a service" + operationId: "ServiceInspect" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Service" + 404: + description: "no such service" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "ID or name of service." + required: true + type: "string" + - name: "insertDefaults" + in: "query" + description: "Fill empty fields with default values." + type: "boolean" + default: false + tags: ["Service"] + delete: + summary: "Delete a service" + operationId: "ServiceDelete" + responses: + 200: + description: "no error" + 404: + description: "no such service" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "ID or name of service." + required: true + type: "string" + tags: ["Service"] + /services/{id}/update: + post: + summary: "Update a service" + operationId: "ServiceUpdate" + consumes: ["application/json"] + produces: ["application/json"] + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/ServiceUpdateResponse" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such service" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "ID or name of service." + required: true + type: "string" + - name: "body" + in: "body" + required: true + schema: + allOf: + - $ref: "#/definitions/ServiceSpec" + - type: "object" + example: + Name: "top" + TaskTemplate: + ContainerSpec: + Image: "busybox" + Args: + - "top" + OomScoreAdj: 0 + Resources: + Limits: {} + Reservations: {} + RestartPolicy: + Condition: "any" + MaxAttempts: 0 + Placement: {} + ForceUpdate: 0 + Mode: + Replicated: + Replicas: 1 + UpdateConfig: + Parallelism: 2 + Delay: 1000000000 + FailureAction: "pause" + Monitor: 15000000000 + MaxFailureRatio: 0.15 + RollbackConfig: + Parallelism: 1 + Delay: 1000000000 + FailureAction: "pause" + Monitor: 15000000000 + MaxFailureRatio: 0.15 + EndpointSpec: + Mode: "vip" + + - name: "version" + in: "query" + description: | + The version number of the service object being updated. This is + required to avoid conflicting writes. + This version number should be the value as currently set on the + service *before* the update. You can find the current version by + calling `GET /services/{id}` + required: true + type: "integer" + - name: "registryAuthFrom" + in: "query" + description: | + If the `X-Registry-Auth` header is not specified, this parameter + indicates where to find registry authorization credentials. + type: "string" + enum: ["spec", "previous-spec"] + default: "spec" + - name: "rollback" + in: "query" + description: | + Set to this parameter to `previous` to cause a server-side rollback + to the previous service spec. The supplied spec will be ignored in + this case. + type: "string" + - name: "X-Registry-Auth" + in: "header" + description: | + A base64url-encoded auth configuration for pulling from private + registries. + + Refer to the [authentication section](#section/Authentication) for + details. + type: "string" + + tags: ["Service"] + /services/{id}/logs: + get: + summary: "Get service logs" + description: | + Get `stdout` and `stderr` logs from a service. See also + [`/containers/{id}/logs`](#operation/ContainerLogs). + + **Note**: This endpoint works only for services with the `local`, + `json-file` or `journald` logging drivers. + produces: + - "application/vnd.docker.raw-stream" + - "application/vnd.docker.multiplexed-stream" + operationId: "ServiceLogs" + responses: + 200: + description: "logs returned as a stream in response body" + schema: + type: "string" + format: "binary" + 404: + description: "no such service" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such service: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID or name of the service" + type: "string" + - name: "details" + in: "query" + description: "Show service context and extra details provided to logs." + type: "boolean" + default: false + - name: "follow" + in: "query" + description: "Keep connection after returning logs." + type: "boolean" + default: false + - name: "stdout" + in: "query" + description: "Return logs from `stdout`" + type: "boolean" + default: false + - name: "stderr" + in: "query" + description: "Return logs from `stderr`" + type: "boolean" + default: false + - name: "since" + in: "query" + description: "Only return logs since this time, as a UNIX timestamp" + type: "integer" + default: 0 + - name: "timestamps" + in: "query" + description: "Add timestamps to every log line" + type: "boolean" + default: false + - name: "tail" + in: "query" + description: | + Only return this number of log lines from the end of the logs. + Specify as an integer or `all` to output all log lines. + type: "string" + default: "all" + tags: ["Service"] + /tasks: + get: + summary: "List tasks" + operationId: "TaskList" + produces: + - "application/json" + responses: + 200: + description: "no error" + schema: + type: "array" + items: + $ref: "#/definitions/Task" + example: + - ID: "0kzzo1i0y4jz6027t0k7aezc7" + Version: + Index: 71 + CreatedAt: "2016-06-07T21:07:31.171892745Z" + UpdatedAt: "2016-06-07T21:07:31.376370513Z" + Spec: + ContainerSpec: + Image: "redis" + Resources: + Limits: {} + Reservations: {} + RestartPolicy: + Condition: "any" + MaxAttempts: 0 + Placement: {} + ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz" + Slot: 1 + NodeID: "60gvrl6tm78dmak4yl7srz94v" + Status: + Timestamp: "2016-06-07T21:07:31.290032978Z" + State: "running" + Message: "started" + ContainerStatus: + ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035" + PID: 677 + DesiredState: "running" + NetworksAttachments: + - Network: + ID: "4qvuz4ko70xaltuqbt8956gd1" + Version: + Index: 18 + CreatedAt: "2016-06-07T20:31:11.912919752Z" + UpdatedAt: "2016-06-07T21:07:29.955277358Z" + Spec: + Name: "ingress" + Labels: + com.docker.swarm.internal: "true" + DriverConfiguration: {} + IPAMOptions: + Driver: {} + Configs: + - Subnet: "10.255.0.0/16" + Gateway: "10.255.0.1" + DriverState: + Name: "overlay" + Options: + com.docker.network.driver.overlay.vxlanid_list: "256" + IPAMOptions: + Driver: + Name: "default" + Configs: + - Subnet: "10.255.0.0/16" + Gateway: "10.255.0.1" + Addresses: + - "10.255.0.10/16" + - ID: "1yljwbmlr8er2waf8orvqpwms" + Version: + Index: 30 + CreatedAt: "2016-06-07T21:07:30.019104782Z" + UpdatedAt: "2016-06-07T21:07:30.231958098Z" + Name: "hopeful_cori" + Spec: + ContainerSpec: + Image: "redis" + Resources: + Limits: {} + Reservations: {} + RestartPolicy: + Condition: "any" + MaxAttempts: 0 + Placement: {} + ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz" + Slot: 1 + NodeID: "60gvrl6tm78dmak4yl7srz94v" + Status: + Timestamp: "2016-06-07T21:07:30.202183143Z" + State: "shutdown" + Message: "shutdown" + ContainerStatus: + ContainerID: "1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213" + DesiredState: "shutdown" + NetworksAttachments: + - Network: + ID: "4qvuz4ko70xaltuqbt8956gd1" + Version: + Index: 18 + CreatedAt: "2016-06-07T20:31:11.912919752Z" + UpdatedAt: "2016-06-07T21:07:29.955277358Z" + Spec: + Name: "ingress" + Labels: + com.docker.swarm.internal: "true" + DriverConfiguration: {} + IPAMOptions: + Driver: {} + Configs: + - Subnet: "10.255.0.0/16" + Gateway: "10.255.0.1" + DriverState: + Name: "overlay" + Options: + com.docker.network.driver.overlay.vxlanid_list: "256" + IPAMOptions: + Driver: + Name: "default" + Configs: + - Subnet: "10.255.0.0/16" + Gateway: "10.255.0.1" + Addresses: + - "10.255.0.5/16" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + type: "string" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to + process on the tasks list. + + Available filters: + + - `desired-state=(running | shutdown | accepted)` + - `id=` + - `label=key` or `label="key=value"` + - `name=` + - `node=` + - `service=` + tags: ["Task"] + /tasks/{id}: + get: + summary: "Inspect a task" + operationId: "TaskInspect" + produces: + - "application/json" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Task" + 404: + description: "no such task" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "ID of the task" + required: true + type: "string" + tags: ["Task"] + /tasks/{id}/logs: + get: + summary: "Get task logs" + description: | + Get `stdout` and `stderr` logs from a task. + See also [`/containers/{id}/logs`](#operation/ContainerLogs). + + **Note**: This endpoint works only for services with the `local`, + `json-file` or `journald` logging drivers. + operationId: "TaskLogs" + produces: + - "application/vnd.docker.raw-stream" + - "application/vnd.docker.multiplexed-stream" + responses: + 200: + description: "logs returned as a stream in response body" + schema: + type: "string" + format: "binary" + 404: + description: "no such task" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such task: c2ada9df5af8" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + description: "ID of the task" + type: "string" + - name: "details" + in: "query" + description: "Show task context and extra details provided to logs." + type: "boolean" + default: false + - name: "follow" + in: "query" + description: "Keep connection after returning logs." + type: "boolean" + default: false + - name: "stdout" + in: "query" + description: "Return logs from `stdout`" + type: "boolean" + default: false + - name: "stderr" + in: "query" + description: "Return logs from `stderr`" + type: "boolean" + default: false + - name: "since" + in: "query" + description: "Only return logs since this time, as a UNIX timestamp" + type: "integer" + default: 0 + - name: "timestamps" + in: "query" + description: "Add timestamps to every log line" + type: "boolean" + default: false + - name: "tail" + in: "query" + description: | + Only return this number of log lines from the end of the logs. + Specify as an integer or `all` to output all log lines. + type: "string" + default: "all" + tags: ["Task"] + /secrets: + get: + summary: "List secrets" + operationId: "SecretList" + produces: + - "application/json" + responses: + 200: + description: "no error" + schema: + type: "array" + items: + $ref: "#/definitions/Secret" + example: + - ID: "blt1owaxmitz71s9v5zh81zun" + Version: + Index: 85 + CreatedAt: "2017-07-20T13:55:28.678958722Z" + UpdatedAt: "2017-07-20T13:55:28.678958722Z" + Spec: + Name: "mysql-passwd" + Labels: + some.label: "some.value" + Driver: + Name: "secret-bucket" + Options: + OptionA: "value for driver option A" + OptionB: "value for driver option B" + - ID: "ktnbjxoalbkvbvedmg1urrz8h" + Version: + Index: 11 + CreatedAt: "2016-11-05T01:20:17.327670065Z" + UpdatedAt: "2016-11-05T01:20:17.327670065Z" + Spec: + Name: "app-dev.crt" + Labels: + foo: "bar" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + type: "string" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to + process on the secrets list. + + Available filters: + + - `id=` + - `label= or label==value` + - `name=` + - `names=` + tags: ["Secret"] + /secrets/create: + post: + summary: "Create a secret" + operationId: "SecretCreate" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 201: + description: "no error" + schema: + $ref: "#/definitions/IDResponse" + 409: + description: "name conflicts with an existing object" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "body" + in: "body" + schema: + allOf: + - $ref: "#/definitions/SecretSpec" + - type: "object" + example: + Name: "app-key.crt" + Labels: + foo: "bar" + Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==" + Driver: + Name: "secret-bucket" + Options: + OptionA: "value for driver option A" + OptionB: "value for driver option B" + tags: ["Secret"] + /secrets/{id}: + get: + summary: "Inspect a secret" + operationId: "SecretInspect" + produces: + - "application/json" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Secret" + examples: + application/json: + ID: "ktnbjxoalbkvbvedmg1urrz8h" + Version: + Index: 11 + CreatedAt: "2016-11-05T01:20:17.327670065Z" + UpdatedAt: "2016-11-05T01:20:17.327670065Z" + Spec: + Name: "app-dev.crt" + Labels: + foo: "bar" + Driver: + Name: "secret-bucket" + Options: + OptionA: "value for driver option A" + OptionB: "value for driver option B" + + 404: + description: "secret not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + type: "string" + description: "ID of the secret" + tags: ["Secret"] + delete: + summary: "Delete a secret" + operationId: "SecretDelete" + produces: + - "application/json" + responses: + 204: + description: "no error" + 404: + description: "secret not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + type: "string" + description: "ID of the secret" + tags: ["Secret"] + /secrets/{id}/update: + post: + summary: "Update a Secret" + operationId: "SecretUpdate" + responses: + 200: + description: "no error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such secret" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "The ID or name of the secret" + type: "string" + required: true + - name: "body" + in: "body" + schema: + $ref: "#/definitions/SecretSpec" + description: | + The spec of the secret to update. Currently, only the Labels field + can be updated. All other fields must remain unchanged from the + [SecretInspect endpoint](#operation/SecretInspect) response values. + - name: "version" + in: "query" + description: | + The version number of the secret object being updated. This is + required to avoid conflicting writes. + type: "integer" + format: "int64" + required: true + tags: ["Secret"] + /configs: + get: + summary: "List configs" + operationId: "ConfigList" + produces: + - "application/json" + responses: + 200: + description: "no error" + schema: + type: "array" + items: + $ref: "#/definitions/Config" + example: + - ID: "ktnbjxoalbkvbvedmg1urrz8h" + Version: + Index: 11 + CreatedAt: "2016-11-05T01:20:17.327670065Z" + UpdatedAt: "2016-11-05T01:20:17.327670065Z" + Spec: + Name: "server.conf" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "filters" + in: "query" + type: "string" + description: | + A JSON encoded value of the filters (a `map[string][]string`) to + process on the configs list. + + Available filters: + + - `id=` + - `label= or label==value` + - `name=` + - `names=` + tags: ["Config"] + /configs/create: + post: + summary: "Create a config" + operationId: "ConfigCreate" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 201: + description: "no error" + schema: + $ref: "#/definitions/IDResponse" + 409: + description: "name conflicts with an existing object" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "body" + in: "body" + schema: + allOf: + - $ref: "#/definitions/ConfigSpec" + - type: "object" + example: + Name: "server.conf" + Labels: + foo: "bar" + Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==" + tags: ["Config"] + /configs/{id}: + get: + summary: "Inspect a config" + operationId: "ConfigInspect" + produces: + - "application/json" + responses: + 200: + description: "no error" + schema: + $ref: "#/definitions/Config" + examples: + application/json: + ID: "ktnbjxoalbkvbvedmg1urrz8h" + Version: + Index: 11 + CreatedAt: "2016-11-05T01:20:17.327670065Z" + UpdatedAt: "2016-11-05T01:20:17.327670065Z" + Spec: + Name: "app-dev.crt" + 404: + description: "config not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + type: "string" + description: "ID of the config" + tags: ["Config"] + delete: + summary: "Delete a config" + operationId: "ConfigDelete" + produces: + - "application/json" + responses: + 204: + description: "no error" + 404: + description: "config not found" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + required: true + type: "string" + description: "ID of the config" + tags: ["Config"] + /configs/{id}/update: + post: + summary: "Update a Config" + operationId: "ConfigUpdate" + responses: + 200: + description: "no error" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 404: + description: "no such config" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + 503: + description: "node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "id" + in: "path" + description: "The ID or name of the config" + type: "string" + required: true + - name: "body" + in: "body" + schema: + $ref: "#/definitions/ConfigSpec" + description: | + The spec of the config to update. Currently, only the Labels field + can be updated. All other fields must remain unchanged from the + [ConfigInspect endpoint](#operation/ConfigInspect) response values. + - name: "version" + in: "query" + description: | + The version number of the config object being updated. This is + required to avoid conflicting writes. + type: "integer" + format: "int64" + required: true + tags: ["Config"] + /distribution/{name}/json: + get: + summary: "Get image information from the registry" + description: | + Return image digest and platform information by contacting the registry. + operationId: "DistributionInspect" + produces: + - "application/json" + responses: + 200: + description: "descriptor and platform information" + schema: + $ref: "#/definitions/DistributionInspect" + 401: + description: "Failed authentication or no image found" + schema: + $ref: "#/definitions/ErrorResponse" + examples: + application/json: + message: "No such image: someimage (tag: latest)" + 500: + description: "Server error" + schema: + $ref: "#/definitions/ErrorResponse" + parameters: + - name: "name" + in: "path" + description: "Image name or id" + type: "string" + required: true + tags: ["Distribution"] + /session: + post: + summary: "Initialize interactive session" + description: | + Start a new interactive session with a server. Session allows server to + call back to the client for advanced capabilities. + + > **Deprecated**: This endpoint is deprecated and will be removed in a future version. + > Server should support gRPC directly on the listening socket. + + ### Hijacking + + This endpoint hijacks the HTTP connection to HTTP2 transport that allows + the client to expose gPRC services on that connection. + + For example, the client sends this request to upgrade the connection: + + ``` + POST /session HTTP/1.1 + Upgrade: h2c + Connection: Upgrade + ``` + + The Docker daemon responds with a `101 UPGRADED` response follow with + the raw stream: + + ``` + HTTP/1.1 101 UPGRADED + Connection: Upgrade + Upgrade: h2c + ``` + operationId: "Session" + produces: + - "application/vnd.docker.raw-stream" + responses: + 101: + description: "no error, hijacking successful" + 400: + description: "bad parameter" + schema: + $ref: "#/definitions/ErrorResponse" + 500: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" + tags: ["Session"] diff --git a/tests/bench/specs/github.yaml b/tests/bench/specs/github.yaml new file mode 100644 index 0000000..bc76ee3 --- /dev/null +++ b/tests/bench/specs/github.yaml @@ -0,0 +1,236652 @@ +--- +openapi: 3.0.3 +info: + version: 1.1.4 + title: GitHub v3 REST API + description: GitHub's v3 REST API. + license: + name: MIT + url: https://spdx.org/licenses/MIT + termsOfService: https://docs.github.com/articles/github-terms-of-service + contact: + name: Support + url: https://support.github.com/contact?tags=dotcom-rest-api + x-github-plan: api.github.com +tags: +- name: actions + description: Endpoints to manage GitHub Actions using the REST API. +- name: activity + description: Activity APIs provide access to notifications, subscriptions, and timelines. +- name: apps + description: Information for integrations and installations. +- name: billing + description: Monitor charges and usage from Actions and Packages. +- name: checks + description: Rich interactions with checks run by your integrations. +- name: code-scanning + description: Retrieve code scanning alerts from a repository. +- name: codes-of-conduct + description: Insight into codes of conduct for your communities. +- name: emojis + description: List emojis available to use on GitHub. +- name: dependabot + description: Endpoints to manage Dependabot. +- name: dependency-graph + description: Endpoints to access Dependency Graph features. +- name: gists + description: View, modify your gists. +- name: git + description: Raw Git functionality. +- name: gitignore + description: View gitignore templates +- name: issues + description: Interact with GitHub Issues. +- name: licenses + description: View various OSS licenses. +- name: markdown + description: Render GitHub flavored Markdown +- name: merge-queue + description: Interact with GitHub Merge Queues. +- name: meta + description: Endpoints that give information about the API. +- name: migrations + description: Move projects to or from GitHub. +- name: oidc + description: Endpoints to manage GitHub OIDC configuration using the REST API. +- name: orgs + description: Interact with organizations. +- name: packages + description: Manage packages for authenticated users and organizations. +- name: pulls + description: Interact with GitHub Pull Requests. +- name: rate-limit + description: Check your current rate limit status. +- name: reactions + description: Interact with reactions to various GitHub entities. +- name: repos + description: Interact with GitHub Repos. +- name: search + description: Search for specific items on GitHub. +- name: secret-scanning + description: Retrieve secret scanning alerts from a repository. +- name: teams + description: Interact with GitHub Teams. +- name: users + description: Interact with and view information about users and also current user. +- name: codespaces + description: Endpoints to manage Codespaces using the REST API. +- name: copilot + description: Endpoints to manage Copilot using the REST API. +- name: security-advisories + description: Manage security advisories. +- name: interactions + description: Owner or admin management of users interactions. +- name: classroom + description: Interact with GitHub Classroom. +- name: desktop + description: Desktop specific endpoints. +- name: enterprise-teams + description: Endpoints to manage GitHub Enterprise Teams. +- name: enterprise-team-memberships + description: Endpoints to manage GitHub Enterprise Team memberships. +- name: enterprise-team-organizations + description: Endpoints to manage GitHub Enterprise Team organization assignments. +- name: code-security + description: Endpoints to manage Code security using the REST API. +- name: private-registries + description: Manage private registry configurations. +- name: hosted-compute + description: Manage hosted compute networking resources. +- name: credentials + description: Revoke compromised or leaked GitHub credentials. +- name: campaigns + description: Endpoints to manage campaigns via the REST API. +- name: projects + description: Endpoints to manage Projects using the REST API. +servers: +- url: https://api.github.com +externalDocs: + description: GitHub v3 REST API + url: https://docs.github.com/rest/ +paths: + "/": + get: + summary: GitHub API Root + description: Get Hypermedia links to resources accessible in GitHub's REST API + tags: + - meta + operationId: meta/root + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/root" + examples: + default: + "$ref": "#/components/examples/root" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: meta + subcategory: meta + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/meta/meta#github-api-root + "/advisories": + get: + summary: List global security advisories + description: |- + Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + + By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + tags: + - security-advisories + operationId: security-advisories/list-global-advisories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/global-advisories#list-global-security-advisories + parameters: + - name: ghsa_id + in: query + description: If specified, only advisories with this GHSA (GitHub Security + Advisory) identifier will be returned. + schema: + type: string + - name: type + in: query + description: If specified, only advisories of this type will be returned. + By default, a request with no other parameters defined will only return + reviewed advisories that are not malware. + schema: + type: string + enum: + - reviewed + - malware + - unreviewed + default: reviewed + - name: cve_id + description: If specified, only advisories with this CVE (Common Vulnerabilities + and Exposures) identifier will be returned. + in: query + schema: + type: string + - name: ecosystem + in: query + description: If specified, only advisories for these ecosystems will be returned. + schema: + "$ref": "#/components/schemas/security-advisory-ecosystems" + - name: severity + in: query + description: If specified, only advisories with these severities will be returned. + schema: + type: string + enum: + - unknown + - low + - medium + - high + - critical + - name: cwes + in: query + description: |- + If specified, only advisories with these Common Weakness Enumerations (CWEs) will be returned. + + Example: `cwes=79,284,22` or `cwes[]=79&cwes[]=284&cwes[]=22` + schema: + oneOf: + - type: string + - type: array + items: + type: string + - name: is_withdrawn + in: query + description: Whether to only return advisories that have been withdrawn. + schema: + type: boolean + - name: affects + in: query + description: |- + If specified, only return advisories that affect any of `package` or `package@version`. A maximum of 1000 packages can be specified. + If the query parameter causes the URL to exceed the maximum URL length supported by your client, you must specify fewer packages. + + Example: `affects=package1,package2@1.0.0,package3@2.0.0` or `affects[]=package1&affects[]=package2@1.0.0` + schema: + oneOf: + - type: string + - type: array + maxItems: 1000 + items: + type: string + - name: published + in: query + description: |- + If specified, only return advisories that were published on a date or date range. + + For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + schema: + type: string + - name: updated + in: query + description: |- + If specified, only return advisories that were updated on a date or date range. + + For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + schema: + type: string + - name: modified + description: |- + If specified, only show advisories that were updated or published on a date or date range. + + For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + in: query + schema: + type: string + - name: epss_percentage + in: query + description: |- + If specified, only return advisories that have an EPSS percentage score that matches the provided value. + The EPSS percentage represents the likelihood of a CVE being exploited. + schema: + type: string + - name: epss_percentile + in: query + description: |- + If specified, only return advisories that have an EPSS percentile score that matches the provided value. + The EPSS percentile represents the relative rank of the CVE's likelihood of being exploited compared to other CVEs. + schema: + type: string + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/direction" + - name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + - name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - updated + - published + - epss_percentage + - epss_percentile + default: published + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/global-advisory" + examples: + default: + "$ref": "#/components/examples/global-advisory-items" + '429': + description: Too many requests + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: global-advisories + "/advisories/{ghsa_id}": + get: + summary: Get a global security advisory + description: Gets a global security advisory using its GitHub Security Advisory + (GHSA) identifier. + tags: + - security-advisories + operationId: security-advisories/get-global-advisory + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/global-advisories#get-a-global-security-advisory + parameters: + - "$ref": "#/components/parameters/ghsa_id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/global-advisory" + examples: + default: + "$ref": "#/components/examples/global-advisory" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: global-advisories + "/app": + get: + summary: Get the authenticated app + description: |- + Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/get-authenticated + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#get-the-authenticated-app + parameters: [] + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/integration" + examples: + default: + "$ref": "#/components/examples/integration" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: apps + "/app-manifests/{code}/conversions": + post: + summary: Create a GitHub App from a manifest + description: Use this endpoint to complete the handshake necessary when implementing + the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). + When you create a GitHub App with the manifest flow, you receive a temporary + `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + tags: + - apps + operationId: apps/create-from-manifest + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#create-a-github-app-from-a-manifest + parameters: + - name: code + in: path + required: true + schema: + type: string + responses: + '201': + description: Response + content: + application/json: + schema: + allOf: + - "$ref": "#/components/schemas/integration" + - type: object + properties: + client_id: + type: string + client_secret: + type: string + webhook_secret: + type: string + nullable: true + pem: + type: string + required: + - client_id + - client_secret + - webhook_secret + - pem + additionalProperties: true + examples: + default: + "$ref": "#/components/examples/integration-from-manifest" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + "/app/hook/config": + get: + summary: Get a webhook configuration for an app + description: |- + Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/get-webhook-config-for-app + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/webhooks#get-a-webhook-configuration-for-an-app + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-config" + examples: + default: + "$ref": "#/components/examples/webhook-config" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: webhooks + patch: + summary: Update a webhook configuration for an app + description: |- + Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/update-webhook-config-for-app + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/webhooks#update-a-webhook-configuration-for-an-app + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + url: + "$ref": "#/components/schemas/webhook-config-url" + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + examples: + default: + value: + content_type: json + insecure_ssl: '0' + secret: "********" + url: https://example.com/webhook + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-config" + examples: + default: + "$ref": "#/components/examples/webhook-config" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: webhooks + "/app/hook/deliveries": + get: + summary: List deliveries for an app webhook + description: |- + Returns a list of webhook deliveries for the webhook configured for a GitHub App. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/list-webhook-deliveries + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/webhooks#list-deliveries-for-an-app-webhook + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/cursor" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/hook-delivery-item" + examples: + default: + "$ref": "#/components/examples/hook-delivery-items" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: webhooks + "/app/hook/deliveries/{delivery_id}": + get: + summary: Get a delivery for an app webhook + description: |- + Returns a delivery for the webhook configured for a GitHub App. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/get-webhook-delivery + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/webhooks#get-a-delivery-for-an-app-webhook + parameters: + - "$ref": "#/components/parameters/delivery-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/hook-delivery" + examples: + default: + "$ref": "#/components/examples/hook-delivery" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: webhooks + "/app/hook/deliveries/{delivery_id}/attempts": + post: + summary: Redeliver a delivery for an app webhook + description: |- + Redeliver a delivery for the webhook configured for a GitHub App. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/redeliver-webhook-delivery + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook + parameters: + - "$ref": "#/components/parameters/delivery-id" + responses: + '202': + "$ref": "#/components/responses/accepted" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: webhooks + "/app/installation-requests": + get: + summary: List installation requests for the authenticated app + description: Lists all the pending installation requests for the authenticated + GitHub App. + tags: + - apps + operationId: apps/list-installation-requests-for-authenticated-app + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#list-installation-requests-for-the-authenticated-app + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: List of integration installation requests + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/integration-installation-request" + examples: + exampleKey1: + "$ref": "#/components/examples/integration-installation-request-paginated" + '304': + "$ref": "#/components/responses/not_modified" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: apps + "/app/installations": + get: + summary: List installations for the authenticated app + description: |- + The permissions the installation has are included under the `permissions` key. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/list-installations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/since" + - name: outdated + in: query + required: false + schema: + type: string + responses: + '200': + description: The permissions the installation has are included under the + `permissions` key. + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/installation" + examples: + default: + "$ref": "#/components/examples/base-installation-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: apps + "/app/installations/{installation_id}": + get: + summary: Get an installation for the authenticated app + description: |- + Enables an authenticated GitHub App to find an installation's information using the installation id. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/get-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#get-an-installation-for-the-authenticated-app + parameters: + - "$ref": "#/components/parameters/installation-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/installation" + examples: + default: + "$ref": "#/components/examples/base-installation" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: apps + delete: + summary: Delete an installation for the authenticated app + description: |- + Uninstalls a GitHub App on a user, organization, or enterprise account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/delete-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#delete-an-installation-for-the-authenticated-app + parameters: + - "$ref": "#/components/parameters/installation-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + "/app/installations/{installation_id}/access_tokens": + post: + summary: Create an installation access token for an app + description: |- + Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + + Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + + Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/create-installation-access-token + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app + parameters: + - "$ref": "#/components/parameters/installation-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + repositories: + description: List of repository names that the token should have + access to + type: array + items: + type: string + example: rails + repository_ids: + description: List of repository IDs that the token should have access + to + example: + - 1 + type: array + items: + type: integer + permissions: + "$ref": "#/components/schemas/app-permissions" + examples: + default: + value: + repositories: + - Hello-World + permissions: + issues: write + contents: read + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/installation-token" + examples: + default: + "$ref": "#/components/examples/installation-token" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: apps + "/app/installations/{installation_id}/suspended": + put: + summary: Suspend an app installation + description: |- + Suspends a GitHub App on a user, organization, or enterprise account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/suspend-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#suspend-an-app-installation + parameters: + - "$ref": "#/components/parameters/installation-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + delete: + summary: Unsuspend an app installation + description: |- + Removes a GitHub App installation suspension. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/unsuspend-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#unsuspend-an-app-installation + parameters: + - "$ref": "#/components/parameters/installation-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + "/applications/{client_id}/grant": + delete: + summary: Delete an app authorization + description: |- + OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + operationId: apps/delete-authorization + tags: + - apps + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/oauth-applications#delete-an-app-authorization + parameters: + - "$ref": "#/components/parameters/client-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + access_token: + type: string + description: The OAuth access token used to authenticate to the + GitHub API. + required: + - access_token + examples: + default: + value: + access_token: e72e16c7e42f292c6912e7710c838347ae178b4a + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: oauth-applications + "/applications/{client_id}/token": + post: + summary: Check a token + description: OAuth applications and GitHub applications with OAuth authorizations + can use this API method for checking OAuth token validity without exceeding + the normal rate limits for failed login attempts. Authentication works differently + with this particular endpoint. Invalid tokens will return `404 NOT FOUND`. + tags: + - apps + operationId: apps/check-token + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/oauth-applications#check-a-token + parameters: + - "$ref": "#/components/parameters/client-id" + requestBody: + required: true + content: + application/json: + schema: + properties: + access_token: + description: The access_token of the OAuth or GitHub application. + type: string + required: + - access_token + type: object + examples: + default: + value: + access_token: e72e16c7e42f292c6912e7710c838347ae178b4a + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/authorization" + examples: + default: + "$ref": "#/components/examples/authorization-with-user" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: oauth-applications + patch: + summary: Reset a token + description: OAuth applications and GitHub applications with OAuth authorizations + can use this API method to reset a valid OAuth token without end-user involvement. + Applications must save the "token" property in the response because changes + take effect immediately. Invalid tokens will return `404 NOT FOUND`. + tags: + - apps + operationId: apps/reset-token + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/oauth-applications#reset-a-token + parameters: + - "$ref": "#/components/parameters/client-id" + requestBody: + required: true + content: + application/json: + schema: + properties: + access_token: + description: The access_token of the OAuth or GitHub application. + type: string + required: + - access_token + type: object + examples: + default: + value: + access_token: e72e16c7e42f292c6912e7710c838347ae178b4a + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/authorization" + examples: + default: + "$ref": "#/components/examples/authorization-with-user" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: oauth-applications + delete: + summary: Delete an app token + description: OAuth or GitHub application owners can revoke a single token for + an OAuth application or a GitHub application with an OAuth authorization. + tags: + - apps + operationId: apps/delete-token + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/oauth-applications#delete-an-app-token + parameters: + - "$ref": "#/components/parameters/client-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + access_token: + type: string + description: The OAuth access token used to authenticate to the + GitHub API. + required: + - access_token + examples: + default: + value: + access_token: e72e16c7e42f292c6912e7710c838347ae178b4a + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: oauth-applications + "/applications/{client_id}/token/scoped": + post: + summary: Create a scoped access token + description: |- + Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + which repositories the token can access and which permissions are granted to the + token. + + Invalid tokens will return `404 NOT FOUND`. + tags: + - apps + operationId: apps/scope-token + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#create-a-scoped-access-token + parameters: + - "$ref": "#/components/parameters/client-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + access_token: + type: string + description: The access token used to authenticate to the GitHub + API. + example: e72e16c7e42f292c6912e7710c838347ae178b4a + target: + description: The name of the user or organization to scope the user + access token to. **Required** unless `target_id` is specified. + type: string + example: octocat + target_id: + description: The ID of the user or organization to scope the user + access token to. **Required** unless `target` is specified. + example: 1 + type: integer + repositories: + description: The list of repository names to scope the user access + token to. `repositories` may not be specified if `repository_ids` + is specified. + type: array + items: + type: string + example: rails + repository_ids: + description: The list of repository IDs to scope the user access + token to. `repository_ids` may not be specified if `repositories` + is specified. + example: + - 1 + type: array + items: + type: integer + permissions: + "$ref": "#/components/schemas/app-permissions" + required: + - access_token + examples: + default: + value: + access_token: e72e16c7e42f292c6912e7710c838347ae178b4a + target: octocat + permissions: + metadata: read + issues: write + contents: read + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/authorization" + examples: + default: + "$ref": "#/components/examples/scope-token" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + "/apps/{app_slug}": + get: + summary: Get an app + description: |- + > [!NOTE] + > The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + tags: + - apps + operationId: apps/get-by-slug + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#get-an-app + parameters: + - "$ref": "#/components/parameters/app-slug" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/integration" + examples: + default: + "$ref": "#/components/examples/integration" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: apps + "/assignments/{assignment_id}": + get: + summary: Get an assignment + description: Gets a GitHub Classroom assignment. Assignment will only be returned + if the current user is an administrator of the GitHub Classroom for the assignment. + tags: + - classroom + operationId: classroom/get-an-assignment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/classroom/classroom#get-an-assignment + parameters: + - "$ref": "#/components/parameters/assignment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/classroom-assignment" + examples: + default: + "$ref": "#/components/examples/classroom-assignment" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: classroom + subcategory: classroom + "/assignments/{assignment_id}/accepted_assignments": + get: + summary: List accepted assignments for an assignment + description: Lists any assignment repositories that have been created by students + accepting a GitHub Classroom assignment. Accepted assignments will only be + returned if the current user is an administrator of the GitHub Classroom for + the assignment. + tags: + - classroom + operationId: classroom/list-accepted-assignments-for-an-assignment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment + parameters: + - "$ref": "#/components/parameters/assignment-id" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/classroom-accepted-assignment" + examples: + default: + "$ref": "#/components/examples/classroom-accepted-assignment" + x-github: + enabledForGitHubApps: true + category: classroom + subcategory: classroom + "/assignments/{assignment_id}/grades": + get: + summary: Get assignment grades + description: Gets grades for a GitHub Classroom assignment. Grades will only + be returned if the current user is an administrator of the GitHub Classroom + for the assignment. + tags: + - classroom + operationId: classroom/get-assignment-grades + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/classroom/classroom#get-assignment-grades + parameters: + - "$ref": "#/components/parameters/assignment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/classroom-assignment-grade" + examples: + default: + "$ref": "#/components/examples/classroom-assignment-grades" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: classroom + subcategory: classroom + "/classrooms": + get: + summary: List classrooms + description: Lists GitHub Classroom classrooms for the current user. Classrooms + will only be returned if the current user is an administrator of one or more + GitHub Classrooms. + tags: + - classroom + operationId: classroom/list-classrooms + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/classroom/classroom#list-classrooms + parameters: + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-classroom" + examples: + default: + "$ref": "#/components/examples/simple-classroom" + x-github: + enabledForGitHubApps: true + category: classroom + subcategory: classroom + "/classrooms/{classroom_id}": + get: + summary: Get a classroom + description: Gets a GitHub Classroom classroom for the current user. Classroom + will only be returned if the current user is an administrator of the GitHub + Classroom. + tags: + - classroom + operationId: classroom/get-a-classroom + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/classroom/classroom#get-a-classroom + parameters: + - "$ref": "#/components/parameters/classroom-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/classroom" + examples: + default: + "$ref": "#/components/examples/classroom" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: classroom + subcategory: classroom + "/classrooms/{classroom_id}/assignments": + get: + summary: List assignments for a classroom + description: Lists GitHub Classroom assignments for a classroom. Assignments + will only be returned if the current user is an administrator of the GitHub + Classroom. + tags: + - classroom + operationId: classroom/list-assignments-for-a-classroom + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom + parameters: + - "$ref": "#/components/parameters/classroom-id" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-classroom-assignment" + examples: + default: + "$ref": "#/components/examples/simple-classroom-assignment" + x-github: + enabledForGitHubApps: true + category: classroom + subcategory: classroom + "/codes_of_conduct": + get: + summary: Get all codes of conduct + description: Returns array of all GitHub's codes of conduct. + tags: + - codes-of-conduct + operationId: codes-of-conduct/get-all-codes-of-conduct + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-all-codes-of-conduct + parameters: [] + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-of-conduct" + examples: + default: + "$ref": "#/components/examples/code-of-conduct-simple-items" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codes-of-conduct + subcategory: codes-of-conduct + "/codes_of_conduct/{key}": + get: + summary: Get a code of conduct + description: Returns information about the specified GitHub code of conduct. + tags: + - codes-of-conduct + operationId: codes-of-conduct/get-conduct-code + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-a-code-of-conduct + parameters: + - name: key + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-of-conduct" + examples: + default: + "$ref": "#/components/examples/code-of-conduct" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codes-of-conduct + subcategory: codes-of-conduct + "/credentials/revoke": + post: + summary: Revoke a list of credentials + description: |- + Submit a list of credentials to be revoked. This endpoint is intended to revoke credentials the caller does not own and may have found exposed on GitHub.com or elsewhere. It can also be used for credentials associated with an old user account that you no longer have access to. Credential owners will be notified of the revocation. + + This endpoint currently accepts the following credential types: + - Personal access tokens (classic) + - Fine-grained personal access tokens + + Revoked credentials may impact users on GitHub Free, Pro, & Team and GitHub Enterprise Cloud, and GitHub Enterprise Cloud with Enterprise Managed Users. + GitHub cannot reactivate any credentials that have been revoked; new credentials will need to be generated. + + To prevent abuse, this API is limited to only 60 unauthenticated requests per hour and a max of 1000 tokens per API request. + + > [!NOTE] + > Any authenticated requests will return a 403. + tags: + - credentials + operationId: credentials/revoke + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/credentials/revoke#revoke-a-list-of-credentials + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + credentials: + type: array + description: A list of credentials to be revoked, up to 1000 per + request. + items: + type: string + minItems: 1 + maxItems: 1000 + required: + - credentials + examples: + default: + value: + credentials: + - ghp_1234567890abcdef1234567890abcdef12345678 + - ghp_abcdef1234567890abcdef1234567890abcdef12 + responses: + '202': + "$ref": "#/components/responses/accepted" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: credentials + subcategory: revoke + "/emojis": + get: + summary: Get emojis + description: Lists all the emojis available to use on GitHub. + operationId: emojis/get + tags: + - emojis + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/emojis/emojis#get-emojis + parameters: [] + responses: + '200': + content: + application/json: + schema: + type: object + additionalProperties: + type: string + examples: + default: + "$ref": "#/components/examples/emojis-get" + description: Response + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: emojis + subcategory: emojis + "/enterprises/{enterprise}/actions/cache/retention-limit": + get: + summary: Get GitHub Actions cache retention limit for an enterprise + description: |- + Gets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this + enterprise may not set a higher cache retention limit. + + OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-retention-limit-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-retention-limit-for-enterprise" + examples: + default: + "$ref": "#/components/examples/actions-cache-retention-limit" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + put: + summary: Set GitHub Actions cache retention limit for an enterprise + description: |- + Sets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this + enterprise may not set a higher cache retention limit. + + OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - actions + operationId: actions/set-actions-cache-retention-limit-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-retention-limit-for-enterprise" + examples: + selected_actions: + "$ref": "#/components/examples/actions-cache-retention-limit" + responses: + '204': + description: Response + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/enterprises/{enterprise}/actions/cache/storage-limit": + get: + summary: Get GitHub Actions cache storage limit for an enterprise + description: |- + Gets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this + enterprise may not set a higher cache storage limit. + + OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-storage-limit-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-storage-limit-for-enterprise" + examples: + default: + "$ref": "#/components/examples/actions-cache-storage-limit" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + put: + summary: Set GitHub Actions cache storage limit for an enterprise + description: |- + Sets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this + enterprise may not set a higher cache storage limit. + + OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - actions + operationId: actions/set-actions-cache-storage-limit-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-storage-limit-for-enterprise" + examples: + selected_actions: + "$ref": "#/components/examples/actions-cache-storage-limit" + responses: + '204': + description: Response + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/enterprises/{enterprise}/code-security/configurations": + get: + summary: Get code security configurations for an enterprise + description: |- + Lists all code security configurations available in an enterprise. + + The authenticated user must be an administrator of the enterprise in order to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-configurations-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-code-security-configurations-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + - name: per_page + in: query + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + required: false + schema: + type: integer + default: 30 + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/enterprise-code-security-configuration-list" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: code-security + subcategory: configurations + post: + summary: Create a code security configuration for an enterprise + description: |- + Creates a code security configuration in an enterprise. + + The authenticated user must be an administrator of the enterprise in order to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/create-configuration-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#create-a-code-security-configuration-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the code security configuration. Must be + unique within the enterprise. + description: + type: string + description: A description of the code security configuration + maxLength: 255 + advanced_security: + type: string + description: | + The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features. + + > [!WARNING] + > `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features. + enum: + - enabled + - disabled + - code_security + - secret_protection + default: disabled + code_security: + type: string + description: The enablement status of GitHub Code Security features. + enum: + - enabled + - disabled + - not_set + dependency_graph: + type: string + description: The enablement status of Dependency Graph + enum: + - enabled + - disabled + - not_set + default: enabled + dependency_graph_autosubmit_action: + type: string + description: The enablement status of Automatic dependency submission + enum: + - enabled + - disabled + - not_set + default: disabled + dependency_graph_autosubmit_action_options: + type: object + description: Feature options for Automatic dependency submission + properties: + labeled_runners: + type: boolean + description: Whether to use runners labeled with 'dependency-submission' + or standard GitHub runners. + default: false + dependabot_alerts: + type: string + description: The enablement status of Dependabot alerts + enum: + - enabled + - disabled + - not_set + default: disabled + dependabot_security_updates: + type: string + description: The enablement status of Dependabot security updates + enum: + - enabled + - disabled + - not_set + default: disabled + code_scanning_options: + "$ref": "#/components/schemas/code-scanning-options" + code_scanning_default_setup: + type: string + description: The enablement status of code scanning default setup + enum: + - enabled + - disabled + - not_set + default: disabled + code_scanning_default_setup_options: + "$ref": "#/components/schemas/code-scanning-default-setup-options" + code_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of code scanning delegated alert + dismissal + enum: + - enabled + - disabled + - not_set + default: disabled + secret_protection: + type: string + description: The enablement status of GitHub Secret Protection features. + enum: + - enabled + - disabled + - not_set + secret_scanning: + type: string + description: The enablement status of secret scanning + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_push_protection: + type: string + description: The enablement status of secret scanning push protection + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_validity_checks: + type: string + description: The enablement status of secret scanning validity checks + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_non_provider_patterns: + type: string + description: The enablement status of secret scanning non provider + patterns + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_generic_secrets: + type: string + description: The enablement status of Copilot secret scanning + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of secret scanning delegated + alert dismissal + enum: + - enabled + - disabled + - not_set + default: disabled + private_vulnerability_reporting: + type: string + description: The enablement status of private vulnerability reporting + enum: + - enabled + - disabled + - not_set + default: disabled + enforcement: + type: string + description: The enforcement status for a security configuration + enum: + - enforced + - unenforced + default: enforced + required: + - name + - description + examples: + default: + summary: Example for a code security configuration + value: + name: High rish settings + description: This is a code security configuration for octo-enterprise + advanced_security: enabled + dependabot_alerts: enabled + dependabot_security_updates: not_set + secret_scanning: enabled + responses: + '201': + description: Successfully created code security configuration + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/enterprise-code-security-configuration" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: code-security + subcategory: configurations + "/enterprises/{enterprise}/code-security/configurations/defaults": + get: + summary: Get default code security configurations for an enterprise + description: |- + Lists the default code security configurations for an enterprise. + + The authenticated user must be an administrator of the enterprise in order to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-default-configurations-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-default-code-security-configurations-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-default-configurations" + examples: + default: + "$ref": "#/components/examples/code-security-default-configurations" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}": + get: + summary: Retrieve a code security configuration of an enterprise + description: |- + Gets a code security configuration available in an enterprise. + + The authenticated user must be an administrator of the enterprise in order to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-single-configuration-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#retrieve-a-code-security-configuration-of-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/configuration-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/enterprise-code-security-configuration" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: code-security + subcategory: configurations + patch: + summary: Update a custom code security configuration for an enterprise + description: |- + Updates a code security configuration in an enterprise. + + The authenticated user must be an administrator of the enterprise in order to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/update-enterprise-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#update-a-custom-code-security-configuration-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/configuration-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the code security configuration. Must be + unique across the enterprise. + description: + type: string + description: A description of the code security configuration + maxLength: 255 + advanced_security: + type: string + description: | + The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features. + + > [!WARNING] + > `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features. + enum: + - enabled + - disabled + - code_security + - secret_protection + code_security: + type: string + description: The enablement status of GitHub Code Security features. + enum: + - enabled + - disabled + - not_set + dependency_graph: + type: string + description: The enablement status of Dependency Graph + enum: + - enabled + - disabled + - not_set + dependency_graph_autosubmit_action: + type: string + description: The enablement status of Automatic dependency submission + enum: + - enabled + - disabled + - not_set + dependency_graph_autosubmit_action_options: + type: object + description: Feature options for Automatic dependency submission + properties: + labeled_runners: + type: boolean + description: Whether to use runners labeled with 'dependency-submission' + or standard GitHub runners. + dependabot_alerts: + type: string + description: The enablement status of Dependabot alerts + enum: + - enabled + - disabled + - not_set + dependabot_security_updates: + type: string + description: The enablement status of Dependabot security updates + enum: + - enabled + - disabled + - not_set + code_scanning_default_setup: + type: string + description: The enablement status of code scanning default setup + enum: + - enabled + - disabled + - not_set + code_scanning_default_setup_options: + "$ref": "#/components/schemas/code-scanning-default-setup-options" + code_scanning_options: + "$ref": "#/components/schemas/code-scanning-options" + code_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of code scanning delegated alert + dismissal + enum: + - enabled + - disabled + - not_set + default: disabled + secret_protection: + type: string + description: The enablement status of GitHub Secret Protection features. + enum: + - enabled + - disabled + - not_set + secret_scanning: + type: string + description: The enablement status of secret scanning + enum: + - enabled + - disabled + - not_set + secret_scanning_push_protection: + type: string + description: The enablement status of secret scanning push protection + enum: + - enabled + - disabled + - not_set + secret_scanning_validity_checks: + type: string + description: The enablement status of secret scanning validity checks + enum: + - enabled + - disabled + - not_set + secret_scanning_non_provider_patterns: + type: string + description: The enablement status of secret scanning non-provider + patterns + enum: + - enabled + - disabled + - not_set + secret_scanning_generic_secrets: + type: string + description: The enablement status of Copilot secret scanning + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of secret scanning delegated + alert dismissal + enum: + - enabled + - disabled + - not_set + default: disabled + private_vulnerability_reporting: + type: string + description: The enablement status of private vulnerability reporting + enum: + - enabled + - disabled + - not_set + enforcement: + type: string + description: The enforcement status for a security configuration + enum: + - enforced + - unenforced + examples: + default: + summary: Example for updating a code security configuration + value: + name: octo-enterprise recommended settings v2 + secret_scanning: disabled + code_scanning_default_setup: enabled + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/enterprise-code-security-configuration" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: code-security + subcategory: configurations + delete: + summary: Delete a code security configuration for an enterprise + description: |- + Deletes a code security configuration from an enterprise. + Repositories attached to the configuration will retain their settings but will no longer be associated with + the configuration. + + The authenticated user must be an administrator for the enterprise to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/delete-configuration-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#delete-a-code-security-configuration-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/configuration-id" + responses: + '204': + "$ref": "#/components/responses/no_content" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: code-security + subcategory: configurations + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach": + post: + summary: Attach an enterprise configuration to repositories + description: |- + Attaches an enterprise code security configuration to repositories. If the repositories specified are already attached to a configuration, they will be re-attached to the provided configuration. + + If insufficient GHAS licenses are available to attach the configuration to a repository, only free features will be enabled. + + The authenticated user must be an administrator for the enterprise to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/attach-enterprise-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#attach-an-enterprise-configuration-to-repositories + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/configuration-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + scope: + type: string + description: The type of repositories to attach the configuration + to. + enum: + - all + - all_without_configurations + required: + - scope + examples: + default: + summary: Example for attaching a configuration to some repositories + value: + scope: all + responses: + '202': + "$ref": "#/components/responses/accepted" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults": + put: + summary: Set a code security configuration as a default for an enterprise + description: |- + Sets a code security configuration as a default to be applied to new repositories in your enterprise. + + This configuration will be applied by default to the matching repository type when created, but only for organizations within the enterprise that do not already have a default code security configuration set. + + The authenticated user must be an administrator for the enterprise to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/set-configuration-as-default-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/configuration-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + default_for_new_repos: + type: string + description: Specify which types of repository this security configuration + should be applied to by default. + enum: + - all + - none + - private_and_internal + - public + examples: + default: + summary: Set this configuration to be enabled by default on all new + repositories. + value: + default_for_new_repos: all + responses: + '200': + description: Default successfully changed. + content: + application/json: + schema: + type: object + properties: + default_for_new_repos: + type: string + description: Specifies which types of repository this security + configuration is applied to by default. + enum: + - all + - none + - private_and_internal + - public + configuration: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + value: + default_for_new_repos: all + configuration: + "$ref": "#/components/examples/code-security-configuration" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories": + get: + summary: Get repositories associated with an enterprise code security configuration + description: |- + Lists the repositories associated with an enterprise code security configuration in an organization. + + The authenticated user must be an administrator of the enterprise in order to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-repositories-for-enterprise-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-repositories-associated-with-an-enterprise-code-security-configuration + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/configuration-id" + - name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + required: false + schema: + type: integer + default: 30 + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - name: status + description: |- + A comma-separated list of statuses. If specified, only repositories with these attachment statuses will be returned. + + Can be: `all`, `attached`, `attaching`, `removed`, `enforced`, `failed`, `updating`, `removed_by_enterprise` + in: query + required: false + schema: + type: string + default: all + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-security-configuration-repositories" + examples: + default: + summary: Example of code security configuration repositories + value: + - status: attached + repository: + "$ref": "#/components/examples/simple-repository" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: code-security + subcategory: configurations + "/enterprises/{enterprise}/dependabot/alerts": + get: + summary: List Dependabot alerts for an enterprise + description: |- + Lists Dependabot alerts for repositories that are owned by the specified enterprise. + + The authenticated user must be a member of the enterprise to use this endpoint. + + Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, 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)." + + OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/list-alerts-for-enterprise + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-enterprise + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-states" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-severities" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-ecosystems" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-packages" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-epss" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-has" + - "$ref": "#/components/parameters/dependabot-alert-scope" + - "$ref": "#/components/parameters/dependabot-alert-sort" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/dependabot-alert-with-repository" + examples: + default: + "$ref": "#/components/examples/dependabot-alerts-for-organization" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + previews: [] + category: dependabot + subcategory: alerts + "/enterprises/{enterprise}/teams": + get: + summary: List enterprise teams + description: List all teams in the enterprise for the authenticated user + tags: + - enterprise-teams + operationId: enterprise-teams/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-teams#list-enterprise-teams + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/enterprise-team" + examples: + default: + "$ref": "#/components/examples/enterprise-teams-items" + headers: + Link: + "$ref": "#/components/headers/link" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-teams + post: + summary: Create an enterprise team + description: To create an enterprise team, the authenticated user must be an + owner of the enterprise. + tags: + - enterprise-teams + operationId: enterprise-teams/create + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-teams#create-an-enterprise-team + parameters: + - "$ref": "#/components/parameters/enterprise" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the team. + description: + nullable: true + type: string + description: A description of the team. + sync_to_organizations: + type: string + description: | + Retired: this field is no longer supported. + Whether the enterprise team should be reflected in each organization. + This value cannot be set. + enum: + - all + - disabled + default: disabled + organization_selection_type: + type: string + description: | + Specifies which organizations in the enterprise should have access to this team. Can be one of `disabled`, `selected`, or `all`. + `disabled`: The team is not assigned to any organizations. This is the default when you create a new team. + `selected`: The team is assigned to specific organizations. You can then use the [add organization assignments API](https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-organization-assignments) endpoint. + `all`: The team is assigned to all current and future organizations in the enterprise. + enum: + - disabled + - selected + - all + default: disabled + group_id: + nullable: true + type: string + description: The ID of the IdP group to assign team membership with. + You can get this value from the [REST API endpoints for SCIM](https://docs.github.com/rest/scim#list-provisioned-scim-groups-for-an-enterprise). + required: + - name + examples: + default: + value: + name: Justice League + description: A great team. + group_id: 62ab9291-fae2-468e-974b-7e45096d5021 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/enterprise-team" + examples: + default: + "$ref": "#/components/examples/enterprise-teams-item" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-teams + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships": + get: + summary: List members in an enterprise team + description: Lists all team members in an enterprise team. + tags: + - enterprise-team-memberships + operationId: enterprise-team-memberships/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-members#list-members-in-an-enterprise-team + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-members + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships/add": + post: + summary: Bulk add team members + description: Add multiple team members to an enterprise team. + tags: + - enterprise-team-memberships + operationId: enterprise-team-memberships/bulk-add + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-members#bulk-add-team-members + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - usernames + properties: + usernames: + type: array + description: The GitHub user handles to add to the team. + items: + type: string + description: The handle for the GitHub user account. + examples: + default: + value: + usernames: + - monalisa + - octocat + responses: + '200': + description: Successfully added team members. + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-members + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove": + post: + summary: Bulk remove team members + description: Remove multiple team members from an enterprise team. + tags: + - enterprise-team-memberships + operationId: enterprise-team-memberships/bulk-remove + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-members#bulk-remove-team-members + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - usernames + properties: + usernames: + type: array + description: The GitHub user handles to be removed from the team. + items: + type: string + description: The handle for the GitHub user account. + examples: + default: + value: + usernames: + - monalisa + - octocat + responses: + '200': + description: Successfully removed team members. + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-members + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}": + get: + summary: Get enterprise team membership + description: Returns whether the user is a member of the enterprise team. + tags: + - enterprise-team-memberships + operationId: enterprise-team-memberships/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-members#get-enterprise-team-membership + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: User is a member of the enterprise team. + content: + application/json: + schema: + "$ref": "#/components/schemas/simple-user" + examples: + exampleKey1: + "$ref": "#/components/examples/simple-user" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-members + put: + summary: Add team member + description: Add a team member to an enterprise team. + tags: + - enterprise-team-memberships + operationId: enterprise-team-memberships/add + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-members#add-team-member + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/username" + responses: + '201': + description: Successfully added team member + content: + application/json: + schema: + "$ref": "#/components/schemas/simple-user" + examples: + exampleKey1: + "$ref": "#/components/examples/simple-user" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-members + delete: + summary: Remove team membership + description: Remove membership of a specific user from a particular team in + an enterprise. + tags: + - enterprise-team-memberships + operationId: enterprise-team-memberships/remove + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-members#remove-team-membership + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-members + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations": + get: + summary: Get organization assignments + description: Get all organizations assigned to an enterprise team + tags: + - enterprise-team-organizations + operationId: enterprise-team-organizations/get-assignments + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#get-organization-assignments + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: An array of organizations the team is assigned to + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-simple" + examples: + default: + "$ref": "#/components/examples/organization-simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-organizations + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations/add": + post: + summary: Add organization assignments + description: Assign an enterprise team to multiple organizations. + tags: + - enterprise-team-organizations + operationId: enterprise-team-organizations/bulk-add + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-organization-assignments + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - organization_slugs + properties: + organization_slugs: + type: array + description: Organization slug to assign the team to. + items: + type: string + description: Organization slug to assign the team to + examples: + default: + value: + organization_slugs: + - github + responses: + '200': + description: Successfully assigned the enterprise team to organizations. + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-simple" + examples: + default: + "$ref": "#/components/examples/organization-simple-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-organizations + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove": + post: + summary: Remove organization assignments + description: Unassign an enterprise team from multiple organizations. + tags: + - enterprise-team-organizations + operationId: enterprise-team-organizations/bulk-remove + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#remove-organization-assignments + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - organization_slugs + properties: + organization_slugs: + type: array + description: Organization slug to unassign the team from. + items: + type: string + description: Organization slug to unassign the team from + examples: + default: + value: + organization_slugs: + - github + responses: + '204': + description: Successfully unassigned the enterprise team from organizations. + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-organizations + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}": + get: + summary: Get organization assignment + description: Check if an enterprise team is assigned to an organization + tags: + - enterprise-team-organizations + operationId: enterprise-team-organizations/get-assignment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#get-organization-assignment + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/org" + responses: + '200': + description: The team is assigned to the organization + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-simple" + examples: + default: + "$ref": "#/components/examples/organization-simple" + '404': + description: The team is not assigned to the organization + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-organizations + put: + summary: Add an organization assignment + description: Assign an enterprise team to an organization. + tags: + - enterprise-team-organizations + operationId: enterprise-team-organizations/add + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-an-organization-assignment + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/org" + responses: + '201': + description: Successfully assigned the enterprise team to the organization. + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-simple" + examples: + default: + "$ref": "#/components/examples/organization-simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-organizations + delete: + summary: Delete an organization assignment + description: Unassign an enterprise team from an organization. + tags: + - enterprise-team-organizations + operationId: enterprise-team-organizations/delete + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#delete-an-organization-assignment + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/enterprise-team" + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Successfully unassigned the enterprise team from the organization. + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-team-organizations + "/enterprises/{enterprise}/teams/{team_slug}": + get: + summary: Get an enterprise team + description: Gets a team using the team's slug. To create the slug, GitHub replaces + special characters in the name string, changes all words to lowercase, and + replaces spaces with a `-` separator and adds the "ent:" prefix. For example, + "My TEam Näme" would become `ent:my-team-name`. + tags: + - enterprise-teams + operationId: enterprise-teams/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-teams#get-an-enterprise-team + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/team-slug" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/enterprise-team" + examples: + default: + "$ref": "#/components/examples/enterprise-teams-item" + headers: + Link: + "$ref": "#/components/headers/link" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-teams + patch: + summary: Update an enterprise team + description: To edit a team, the authenticated user must be an enterprise owner. + tags: + - enterprise-teams + operationId: enterprise-teams/update + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-teams#update-an-enterprise-team + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/team-slug" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + nullable: true + type: string + description: A new name for the team. + description: + nullable: true + type: string + description: A new description for the team. + sync_to_organizations: + type: string + description: | + Retired: this field is no longer supported. + Whether the enterprise team should be reflected in each organization. + This value cannot be changed. + enum: + - all + - disabled + default: disabled + organization_selection_type: + type: string + description: | + Specifies which organizations in the enterprise should have access to this team. Can be one of `disabled`, `selected`, or `all`. + `disabled`: The team is not assigned to any organizations. This is the default when you create a new team. + `selected`: The team is assigned to specific organizations. You can then use the [add organization assignments API](https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-organization-assignments). + `all`: The team is assigned to all current and future organizations in the enterprise. + enum: + - disabled + - selected + - all + default: disabled + group_id: + nullable: true + type: string + description: The ID of the IdP group to assign team membership with. + The new IdP group will replace the existing one, or replace existing + direct members if the team isn't currently linked to an IdP group. + examples: + default: + value: + name: Justice League + description: A great team. + group_id: 62ab9291-fae2-468e-974b-7e45096d5021 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/enterprise-team" + examples: + default: + "$ref": "#/components/examples/enterprise-teams-item" + headers: + Link: + "$ref": "#/components/headers/link" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-teams + delete: + summary: Delete an enterprise team + description: |- + To delete an enterprise team, the authenticated user must be an enterprise owner. + + If you are an enterprise owner, deleting an enterprise team will delete all of its IdP mappings as well. + tags: + - enterprise-teams + operationId: enterprise-teams/delete + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/enterprise-teams/enterprise-teams#delete-an-enterprise-team + parameters: + - "$ref": "#/components/parameters/enterprise" + - "$ref": "#/components/parameters/team-slug" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: enterprise-teams + subcategory: enterprise-teams + "/events": + get: + summary: List public events + description: |- + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-public-events + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-public-events + parameters: + - "$ref": "#/components/parameters/public-events-per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + default: + "$ref": "#/components/examples/public-events-items" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/feeds": + get: + summary: Get feeds + description: |- + Lists the feeds available to the authenticated user. The response provides a URL for each feed. You can then get a specific feed by sending a request to one of the feed URLs. + + * **Timeline**: The GitHub global public timeline + * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * **Current user public**: The public timeline for the authenticated user + * **Current user**: The private timeline for the authenticated user + * **Current user actor**: The private timeline for activity created by the authenticated user + * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + + By default, timeline resources are returned in JSON. You can specify the `application/atom+xml` type in the `Accept` header to return timeline resources in Atom format. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + > [!NOTE] + > Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) since current feed URIs use the older, non revocable auth tokens. + tags: + - activity + operationId: activity/get-feeds + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/feeds#get-feeds + parameters: [] + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/feed" + examples: + default: + "$ref": "#/components/examples/feed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: feeds + "/gists": + get: + summary: List gists for the authenticated user + description: 'Lists the authenticated user''s gists or if called anonymously, + this endpoint returns all public gists:' + tags: + - gists + operationId: gists/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#list-gists-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/base-gist" + examples: + default: + "$ref": "#/components/examples/base-gist-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + post: + summary: Create a gist + description: |- + Allows you to add a new gist with one or more files. + + > [!NOTE] + > Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + operationId: gists/create + tags: + - gists + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#create-a-gist + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + description: + description: Description of the gist + example: Example Ruby script + type: string + files: + description: Names and content for the files that make up the gist + example: + hello.rb: + content: puts "Hello, World!" + type: object + additionalProperties: + type: object + properties: + content: + description: Content of the file + readOnly: false + type: string + required: + - content + public: + oneOf: + - description: Flag indicating whether the gist is public + example: true + type: boolean + default: false + - type: string + example: 'true' + default: 'false' + enum: + - 'true' + - 'false' + required: + - files + type: object + examples: + default: + summary: Creating a gist + value: + description: Example of a gist + public: false + files: + README.md: + content: Hello World + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gist-simple" + examples: + default: + "$ref": "#/components/examples/gist" + headers: + Location: + example: https://api.github.com/gists/aa5a315d61ae9438b18d + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gists/public": + get: + summary: List public gists + description: |- + List public gists sorted by most recently updated to least recently updated. + + Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + tags: + - gists + operationId: gists/list-public + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#list-public-gists + parameters: + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/base-gist" + examples: + default: + "$ref": "#/components/examples/base-gist-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gists/starred": + get: + summary: List starred gists + description: 'List the authenticated user''s starred gists:' + tags: + - gists + operationId: gists/list-starred + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#list-starred-gists + parameters: + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/base-gist" + examples: + default: + "$ref": "#/components/examples/base-gist-items" + headers: + Link: + "$ref": "#/components/headers/link" + '401': + "$ref": "#/components/responses/requires_authentication" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gists/{gist_id}": + get: + summary: Get a gist + description: |- + Gets a specified gist. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + tags: + - gists + operationId: gists/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#get-a-gist + parameters: + - "$ref": "#/components/parameters/gist-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gist-simple" + examples: + default: + "$ref": "#/components/examples/gist" + '403': + "$ref": "#/components/responses/forbidden_gist" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + patch: + summary: Update a gist + description: |- + Allows you to update a gist's description and to update, delete, or rename gist files. Files + from the previous version of the gist that aren't explicitly changed during an edit + are unchanged. + + At least one of `description` or `files` is required. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + tags: + - gists + operationId: gists/update + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#update-a-gist + parameters: + - "$ref": "#/components/parameters/gist-id" + requestBody: + required: true + content: + application/json: + schema: + properties: + description: + description: The description of the gist. + example: Example Ruby script + type: string + files: + description: |- + The gist files to be updated, renamed, or deleted. Each `key` must match the current filename + (including extension) of the targeted gist file. For example: `hello.py`. + + To delete a file, set the whole file to null. For example: `hello.py : null`. The file will also be + deleted if the specified object does not contain at least one of `content` or `filename`. + example: + hello.rb: + content: blah + filename: goodbye.rb + type: object + additionalProperties: + type: object + nullable: true + properties: + content: + description: The new content of the file. + type: string + filename: + description: The new filename for the file. + type: string + nullable: true + type: object + nullable: true + examples: + updateGist: + summary: Updating a gist + value: + description: An updated gist description + files: + README.md: + content: Hello World from GitHub + deleteFile: + summary: Deleting a gist file + value: + files: + hello.py: + renameFile: + summary: Renaming a gist file + value: + files: + hello.py: + filename: goodbye.py + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gist-simple" + examples: + updateGist: + "$ref": "#/components/examples/gist" + deleteFile: + "$ref": "#/components/examples/delete-gist-file" + renameFile: + "$ref": "#/components/examples/rename-gist-file" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + delete: + summary: Delete a gist + description: '' + tags: + - gists + operationId: gists/delete + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#delete-a-gist + parameters: + - "$ref": "#/components/parameters/gist-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gists/{gist_id}/comments": + get: + summary: List gist comments + description: |- + Lists the comments on a gist. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + tags: + - gists + operationId: gists/list-comments + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/comments#list-gist-comments + parameters: + - "$ref": "#/components/parameters/gist-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/gist-comment" + examples: + default: + "$ref": "#/components/examples/gist-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: comments + post: + summary: Create a gist comment + description: |- + Creates a comment on a gist. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + tags: + - gists + operationId: gists/create-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/comments#create-a-gist-comment + parameters: + - "$ref": "#/components/parameters/gist-id" + requestBody: + required: true + content: + application/json: + schema: + properties: + body: + description: The comment text. + type: string + maxLength: 65535 + example: Body of the attachment + type: object + required: + - body + examples: + default: + summary: Creating a comment in a gist + value: + body: This is a comment to a gist + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gist-comment" + examples: + default: + "$ref": "#/components/examples/gist-comment" + headers: + Location: + example: https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + schema: + type: string + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: comments + "/gists/{gist_id}/comments/{comment_id}": + get: + summary: Get a gist comment + description: |- + Gets a comment on a gist. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + tags: + - gists + operationId: gists/get-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/comments#get-a-gist-comment + parameters: + - "$ref": "#/components/parameters/gist-id" + - "$ref": "#/components/parameters/comment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gist-comment" + examples: + default: + "$ref": "#/components/examples/gist-comment" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden_gist" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: comments + patch: + summary: Update a gist comment + description: |- + Updates a comment on a gist. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + tags: + - gists + operationId: gists/update-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/comments#update-a-gist-comment + parameters: + - "$ref": "#/components/parameters/gist-id" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + properties: + body: + description: The comment text. + type: string + maxLength: 65535 + example: Body of the attachment + type: object + required: + - body + examples: + default: + summary: Updating a comment in a gist + value: + body: This is an update to a comment in a gist + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gist-comment" + examples: + default: + "$ref": "#/components/examples/gist-comment" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: comments + delete: + summary: Delete a gist comment + description: '' + tags: + - gists + operationId: gists/delete-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/comments#delete-a-gist-comment + parameters: + - "$ref": "#/components/parameters/gist-id" + - "$ref": "#/components/parameters/comment-id" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: comments + "/gists/{gist_id}/commits": + get: + summary: List gist commits + description: '' + tags: + - gists + operationId: gists/list-commits + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#list-gist-commits + parameters: + - "$ref": "#/components/parameters/gist-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/gist-commit" + examples: + default: + "$ref": "#/components/examples/gist-commit-items" + headers: + Link: + example: ; rel="next" + schema: + type: string + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gists/{gist_id}/forks": + get: + summary: List gist forks + description: '' + tags: + - gists + operationId: gists/list-forks + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#list-gist-forks + parameters: + - "$ref": "#/components/parameters/gist-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/gist-simple" + examples: + default: + "$ref": "#/components/examples/gist-fork-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + post: + summary: Fork a gist + description: '' + tags: + - gists + operationId: gists/fork + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#fork-a-gist + parameters: + - "$ref": "#/components/parameters/gist-id" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/base-gist" + examples: + default: + "$ref": "#/components/examples/base-gist" + headers: + Location: + example: https://api.github.com/gists/aa5a315d61ae9438b18d + schema: + type: string + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gists/{gist_id}/star": + get: + summary: Check if a gist is starred + description: '' + tags: + - gists + operationId: gists/check-is-starred + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#check-if-a-gist-is-starred + parameters: + - "$ref": "#/components/parameters/gist-id" + responses: + '204': + description: Response if gist is starred + '404': + description: Not Found if gist is not starred + content: + application/json: + schema: + type: object + properties: {} + additionalProperties: false + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + put: + summary: Star a gist + description: Note that you'll need to set `Content-Length` to zero when calling + out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + tags: + - gists + operationId: gists/star + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#star-a-gist + parameters: + - "$ref": "#/components/parameters/gist-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + delete: + summary: Unstar a gist + description: '' + tags: + - gists + operationId: gists/unstar + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#unstar-a-gist + parameters: + - "$ref": "#/components/parameters/gist-id" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gists/{gist_id}/{sha}": + get: + summary: Get a gist revision + description: |- + Gets a specified gist revision. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + tags: + - gists + operationId: gists/get-revision + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#get-a-gist-revision + parameters: + - "$ref": "#/components/parameters/gist-id" + - name: sha + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gist-simple" + examples: + default: + "$ref": "#/components/examples/gist" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/gitignore/templates": + get: + summary: Get all gitignore templates + description: List all templates available to pass as an option when [creating + a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + operationId: gitignore/get-all-templates + tags: + - gitignore + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gitignore/gitignore#get-all-gitignore-templates + parameters: [] + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + type: string + examples: + default: + value: + - Actionscript + - Android + - AppceleratorTitanium + - Autotools + - Bancha + - C + - C++ + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: gitignore + subcategory: gitignore + "/gitignore/templates/{name}": + get: + summary: Get a gitignore template + description: |- + Get the content of a gitignore template. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + operationId: gitignore/get-template + tags: + - gitignore + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gitignore/gitignore#get-a-gitignore-template + parameters: + - name: name + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gitignore-template" + examples: + default: + "$ref": "#/components/examples/gitignore-template" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: gitignore + subcategory: gitignore + "/installation/repositories": + get: + summary: List repositories accessible to the app installation + description: List repositories that an app installation can access. + tags: + - apps + operationId: apps/list-repos-accessible-to-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-app-installation + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repositories: + type: array + items: + allOf: + - "$ref": "#/components/schemas/repository" + repository_selection: + type: string + example: selected + examples: + default: + "$ref": "#/components/examples/repository-paginated-2" + headers: + Link: + "$ref": "#/components/headers/link" + '403': + "$ref": "#/components/responses/forbidden" + '304': + "$ref": "#/components/responses/not_modified" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: installations + "/installation/token": + delete: + summary: Revoke an installation access token + description: |- + Revokes the installation token you're using to authenticate as an installation and access this endpoint. + + Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + tags: + - apps + operationId: apps/revoke-installation-access-token + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/installations#revoke-an-installation-access-token + parameters: [] + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: apps + subcategory: installations + "/issues": + get: + summary: List issues assigned to the authenticated user + description: |- + List issues assigned to the authenticated user across all visible repositories including owned repositories, member + repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + necessarily assigned to you. + + > [!NOTE] + > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user + parameters: + - name: filter + description: Indicates which sorts of issues to return. `assigned` means issues + assigned to you. `created` means issues created by you. `mentioned` means + issues mentioning you. `subscribed` means issues you're subscribed to updates + for. `all` or `repos` means all issues you can see, regardless of participation + or creation. + in: query + required: false + schema: + type: string + enum: + - assigned + - created + - mentioned + - subscribed + - repos + - all + default: assigned + - name: state + description: Indicates the state of the issues to return. + in: query + required: false + schema: + type: string + enum: + - open + - closed + - all + default: open + - "$ref": "#/components/parameters/labels" + - name: sort + description: What to sort results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - comments + default: created + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/since" + - name: collab + in: query + required: false + schema: + type: boolean + - name: orgs + in: query + required: false + schema: + type: boolean + - name: owned + in: query + required: false + schema: + type: boolean + - name: pulls + in: query + required: false + schema: + type: boolean + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue-with-repo-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: issues + subcategory: issues + "/licenses": + get: + summary: Get all commonly used licenses + description: Lists the most commonly used licenses on GitHub. For more information, + see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + tags: + - licenses + operationId: licenses/get-all-commonly-used + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/licenses/licenses#get-all-commonly-used-licenses + parameters: + - name: featured + in: query + required: false + schema: + type: boolean + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/license-simple" + examples: + default: + "$ref": "#/components/examples/license-simple-items" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: licenses + subcategory: licenses + "/licenses/{license}": + get: + summary: Get a license + description: Gets information about a specific license. For more information, + see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + tags: + - licenses + operationId: licenses/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/licenses/licenses#get-a-license + parameters: + - name: license + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/license" + examples: + default: + "$ref": "#/components/examples/license" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: licenses + subcategory: licenses + "/markdown": + post: + summary: Render a Markdown document + description: Depending on what is rendered in the Markdown, you may need to + provide additional token scopes for labels, such as `issues:read` or `pull_requests:read`. + operationId: markdown/render + tags: + - markdown + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/markdown/markdown#render-a-markdown-document + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + text: + description: The Markdown text to render in HTML. + type: string + mode: + description: The rendering mode. + enum: + - markdown + - gfm + default: markdown + example: markdown + type: string + context: + description: The repository context to use when creating references + in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` + will change the text `#42` into an HTML link to issue 42 in the + `octo-org/octo-repo` repository. + type: string + required: + - text + type: object + examples: + default: + summary: Rendering markdown + value: + text: Hello **world** + responses: + '200': + description: Response + headers: + Content-Type: + "$ref": "#/components/headers/content-type" + Content-Length: + example: '279' + schema: + type: string + X-CommonMarker-Version: + "$ref": "#/components/headers/x-common-marker-version" + content: + text/html: + schema: + type: string + examples: + default: + summary: Example response + value: "

Hello world

" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: markdown + subcategory: markdown + "/markdown/raw": + post: + summary: Render a Markdown document in raw mode + description: You must send Markdown as plain text (using a `Content-Type` header + of `text/plain` or `text/x-markdown`) to this endpoint, rather than using + JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) + is not supported and Markdown will be rendered in plain format like a README.md + file. Markdown content must be 400 KB or less. + operationId: markdown/render-raw + tags: + - markdown + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/markdown/markdown#render-a-markdown-document-in-raw-mode + parameters: [] + requestBody: + required: false + content: + text/plain: + schema: + type: string + examples: + default: + value: + text: Hello **world** + text/x-markdown: + schema: + type: string + examples: + default: + summary: Rendering markdown + value: + text: Hello **world** + responses: + '200': + description: Response + headers: + X-CommonMarker-Version: + "$ref": "#/components/headers/x-common-marker-version" + content: + text/html: + schema: + type: string + examples: + default: + summary: Example response + value: "

Hello world

" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: markdown + subcategory: markdown + "/marketplace_listing/accounts/{account_id}": + get: + summary: Get a subscription plan for an account + description: |- + Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + + GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. + tags: + - apps + operationId: apps/get-subscription-plan-for-account + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account + parameters: + - "$ref": "#/components/parameters/account-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/marketplace-purchase" + examples: + default: + "$ref": "#/components/examples/marketplace-purchase" + '404': + description: Not Found when the account has not purchased the listing + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/marketplace_listing/plans": + get: + summary: List plans + description: |- + Lists all plans that are part of your GitHub Marketplace listing. + + GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. + tags: + - apps + operationId: apps/list-plans + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#list-plans + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/marketplace-listing-plan" + examples: + default: + "$ref": "#/components/examples/marketplace-listing-plan-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/marketplace_listing/plans/{plan_id}/accounts": + get: + summary: List accounts for a plan + description: |- + Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + + GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. + tags: + - apps + operationId: apps/list-accounts-for-plan + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan + parameters: + - "$ref": "#/components/parameters/plan-id" + - "$ref": "#/components/parameters/sort" + - name: direction + description: To return the oldest accounts first, set to `asc`. Ignored without + the `sort` parameter. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/marketplace-purchase" + examples: + default: + "$ref": "#/components/examples/marketplace-purchase-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/marketplace_listing/stubbed/accounts/{account_id}": + get: + summary: Get a subscription plan for an account (stubbed) + description: |- + Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + + GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. + tags: + - apps + operationId: apps/get-subscription-plan-for-account-stubbed + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account-stubbed + parameters: + - "$ref": "#/components/parameters/account-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/marketplace-purchase" + examples: + default: + "$ref": "#/components/examples/marketplace-purchase" + '404': + description: Not Found when the account has not purchased the listing + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/marketplace_listing/stubbed/plans": + get: + summary: List plans (stubbed) + description: |- + Lists all plans that are part of your GitHub Marketplace listing. + + GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. + tags: + - apps + operationId: apps/list-plans-stubbed + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#list-plans-stubbed + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/marketplace-listing-plan" + examples: + default: + "$ref": "#/components/examples/marketplace-listing-plan-items" + headers: + Link: + "$ref": "#/components/headers/link" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/marketplace_listing/stubbed/plans/{plan_id}/accounts": + get: + summary: List accounts for a plan (stubbed) + description: |- + Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + + GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. + tags: + - apps + operationId: apps/list-accounts-for-plan-stubbed + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan-stubbed + parameters: + - "$ref": "#/components/parameters/plan-id" + - "$ref": "#/components/parameters/sort" + - name: direction + description: To return the oldest accounts first, set to `asc`. Ignored without + the `sort` parameter. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/marketplace-purchase" + examples: + default: + "$ref": "#/components/examples/marketplace-purchase-items" + headers: + Link: + "$ref": "#/components/headers/link" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/meta": + get: + summary: Get GitHub meta information + description: |- + Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + + The API's response also includes a list of GitHub's domain names. + + The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + + > [!NOTE] + > This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + tags: + - meta + operationId: meta/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/meta/meta#get-apiname-meta-information + parameters: [] + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-overview" + examples: + default: + "$ref": "#/components/examples/api-overview" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: meta + subcategory: meta + "/networks/{owner}/{repo}/events": + get: + summary: List public events for a network of repositories + description: |- + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-public-events-for-repo-network + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-public-events-for-a-network-of-repositories + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + default: + "$ref": "#/components/examples/public-repo-events-items" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '304': + "$ref": "#/components/responses/not_modified" + '301': + "$ref": "#/components/responses/moved_permanently" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/notifications": + get: + summary: List notifications for the authenticated user + description: List all notifications for the current user, sorted by most recently + updated. + tags: + - activity + operationId: activity/list-notifications-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/all" + - "$ref": "#/components/parameters/participating" + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/before" + - "$ref": "#/components/parameters/page" + - name: per_page + description: The number of results per page (max 50). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 50 + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/thread" + examples: + default: + "$ref": "#/components/examples/thread-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + put: + summary: Mark notifications as read + description: Marks all notifications as "read" for the current user. If the + number of notifications is too large to complete in one request, you will + receive a `202 Accepted` status and GitHub will run an asynchronous process + to mark notifications as "read." To check whether any "unread" notifications + remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) + endpoint and pass the query parameter `all=false`. + tags: + - activity + operationId: activity/mark-notifications-as-read + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#mark-notifications-as-read + parameters: [] + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + last_read_at: + description: 'Describes the last point that notifications were checked. + Anything updated since this time will not be marked as read. If + you omit this parameter, all notifications are marked as read. + This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp.' + type: string + format: date-time + read: + description: Whether the notification has been read. + type: boolean + examples: + default: + value: + last_read_at: '2022-06-10T00:00:00Z' + read: true + responses: + '202': + description: Response + content: + application/json: + schema: + type: object + properties: + message: + type: string + examples: + default: + "$ref": "#/components/examples/notifications-mark-read" + '205': + description: Reset Content + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + "/notifications/threads/{thread_id}": + get: + summary: Get a thread + description: Gets information about a notification thread. + tags: + - activity + operationId: activity/get-thread + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#get-a-thread + parameters: + - "$ref": "#/components/parameters/thread-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/thread" + examples: + default: + "$ref": "#/components/examples/thread" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + patch: + summary: Mark a thread as read + description: 'Marks a thread as "read." Marking a thread as "read" is equivalent + to clicking a notification in your notification inbox on GitHub: https://github.com/notifications.' + tags: + - activity + operationId: activity/mark-thread-as-read + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#mark-a-thread-as-read + parameters: + - "$ref": "#/components/parameters/thread-id" + responses: + '205': + description: Reset Content + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + delete: + summary: Mark a thread as done + description: 'Marks a thread as "done." Marking a thread as "done" is equivalent + to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications.' + tags: + - activity + operationId: activity/mark-thread-as-done + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#mark-a-thread-as-done + parameters: + - "$ref": "#/components/parameters/thread-id" + responses: + '204': + description: No content + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + "/notifications/threads/{thread_id}/subscription": + get: + summary: Get a thread subscription for the authenticated user + description: |- + This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + + Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + tags: + - activity + operationId: activity/get-thread-subscription-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#get-a-thread-subscription-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/thread-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/thread-subscription" + examples: + default: + "$ref": "#/components/examples/thread-subscription" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + put: + summary: Set a thread subscription + description: |- + If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + + You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + + Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + tags: + - activity + operationId: activity/set-thread-subscription + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#set-a-thread-subscription + parameters: + - "$ref": "#/components/parameters/thread-id" + requestBody: + required: false + content: + application/json: + schema: + properties: + ignored: + description: Whether to block all notifications from a thread. + default: false + type: boolean + type: object + examples: + default: + value: + ignored: false + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/thread-subscription" + examples: + default: + "$ref": "#/components/examples/thread-subscription" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + delete: + summary: Delete a thread subscription + description: Mutes all future notifications for a conversation until you comment + on the thread or get an **@mention**. If you are watching the repository of + the thread, you will still receive notifications. To ignore future notifications + for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) + endpoint and set `ignore` to `true`. + tags: + - activity + operationId: activity/delete-thread-subscription + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription + parameters: + - "$ref": "#/components/parameters/thread-id" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + "/octocat": + get: + summary: Get Octocat + description: Get the octocat as ASCII art + tags: + - meta + operationId: meta/get-octocat + parameters: + - name: s + in: query + description: The words to show in Octocat's speech bubble + schema: + type: string + required: false + responses: + '200': + description: Response + content: + application/octocat-stream: + schema: + type: string + examples: + default: + "$ref": "#/components/examples/octocat" + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/meta/meta#get-octocat + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: meta + subcategory: meta + "/organizations": + get: + summary: List organizations + description: |- + Lists all organizations, in the order that they were created. + + > [!NOTE] + > Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + tags: + - orgs + operationId: orgs/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#list-organizations + parameters: + - "$ref": "#/components/parameters/since-org" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-simple" + examples: + default: + "$ref": "#/components/examples/organization-simple-items" + headers: + Link: + example: ; rel="next" + schema: + type: string + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + "/organizations/{org}/actions/cache/retention-limit": + get: + summary: Get GitHub Actions cache retention limit for an organization + description: |- + Gets GitHub Actions cache retention limit for an organization. All repositories under this + organization may not set a higher cache retention limit. + + OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-retention-limit-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-retention-limit-for-organization" + examples: + default: + "$ref": "#/components/examples/actions-cache-retention-limit" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + put: + summary: Set GitHub Actions cache retention limit for an organization + description: |- + Sets GitHub Actions cache retention limit for an organization. All repositories under this + organization may not set a higher cache retention limit. + + OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. + tags: + - actions + operationId: actions/set-actions-cache-retention-limit-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-retention-limit-for-organization" + examples: + selected_actions: + "$ref": "#/components/examples/actions-cache-retention-limit" + responses: + '204': + description: Response + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/organizations/{org}/actions/cache/storage-limit": + get: + summary: Get GitHub Actions cache storage limit for an organization + description: |- + Gets GitHub Actions cache storage limit for an organization. All repositories under this + organization may not set a higher cache storage limit. + + OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-storage-limit-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-storage-limit-for-organization" + examples: + default: + "$ref": "#/components/examples/actions-cache-storage-limit" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + put: + summary: Set GitHub Actions cache storage limit for an organization + description: |- + Sets GitHub Actions cache storage limit for an organization. All organizations and repositories under this + organization may not set a higher cache storage limit. + + OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. + tags: + - actions + operationId: actions/set-actions-cache-storage-limit-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-storage-limit-for-organization" + examples: + selected_actions: + "$ref": "#/components/examples/actions-cache-storage-limit" + responses: + '204': + description: Response + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/organizations/{org}/dependabot/repository-access": + get: + summary: Lists the repositories Dependabot can access in an organization + description: |- + Lists repositories that organization admins have allowed Dependabot to access when updating dependencies. + > [!NOTE] + > This operation supports both server-to-server and user-to-server access. + Unauthorized users will not see the existence of this endpoint. + tags: + - dependabot + operationId: dependabot/repository-access-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - name: page + in: query + description: The page number of results to fetch. + required: false + schema: + type: integer + minimum: 1 + default: 1 + - name: per_page + in: query + description: Number of results per page. + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependabot-repository-access-details" + examples: + default: + "$ref": "#/components/examples/dependabot-repository-access-details" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: repository-access + patch: + summary: Updates Dependabot's repository access list for an organization + description: |- + Updates repositories according to the list of repositories that organization admins have given Dependabot access to when they've updated dependencies. + + > [!NOTE] + > This operation supports both server-to-server and user-to-server access. + Unauthorized users will not see the existence of this endpoint. + + **Example request body:** + ```json + { + "repository_ids_to_add": [123, 456], + "repository_ids_to_remove": [789] + } + ``` + tags: + - dependabot + operationId: dependabot/update-repository-access-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/repository-access#updates-dependabots-repository-access-list-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + repository_ids_to_add: + type: array + items: + type: integer + description: List of repository IDs to add. + repository_ids_to_remove: + type: array + items: + type: integer + description: List of repository IDs to remove. + example: + repository_ids_to_add: + - 123 + - 456 + repository_ids_to_remove: + - 789 + examples: + '204': + summary: Example with a 'succeeded' status. + add-example: + summary: Add repositories + value: + repository_ids_to_add: + - 123 + - 456 + remove-example: + summary: Remove repositories + value: + repository_ids_to_remove: + - 789 + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: repository-access + "/organizations/{org}/dependabot/repository-access/default-level": + put: + summary: Set the default repository access level for Dependabot + description: |- + Sets the default level of repository access Dependabot will have while performing an update. Available values are: + - 'public' - Dependabot will only have access to public repositories, unless access is explicitly granted to non-public repositories. + - 'internal' - Dependabot will only have access to public and internal repositories, unless access is explicitly granted to private repositories. + + Unauthorized users will not see the existence of this endpoint. + + This operation supports both server-to-server and user-to-server access. + tags: + - dependabot + operationId: dependabot/set-repository-access-default-level + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/repository-access#set-the-default-repository-access-level-for-dependabot + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + default_level: + type: string + description: The default repository access level for Dependabot + updates. + enum: + - public + - internal + example: internal + required: + - default_level + examples: + '204': + summary: Example with a 'succeeded' status. + value: + default_level: public + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: repository-access + "/organizations/{org}/settings/billing/budgets": + get: + summary: Get all budgets for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager. + tags: + - billing + operationId: billing/get-all-budgets-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/budgets#get-all-budgets-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + "$ref": "#/components/responses/get_all_budgets" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: budgets + "/organizations/{org}/settings/billing/budgets/{budget_id}": + get: + summary: Get a budget by ID for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Gets a budget by ID. The authenticated user must be an organization admin or billing manager. + tags: + - billing + operationId: billing/get-budget-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/budgets#get-a-budget-by-id-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/budget" + responses: + '200': + "$ref": "#/components/responses/budget" + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: budgets + patch: + summary: Update a budget for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Updates an existing budget for an organization. The authenticated user must be an organization admin or billing manager. + tags: + - billing + operationId: billing/update-budget-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/budgets#update-a-budget-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/budget" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + budget_amount: + type: integer + description: The budget amount in whole dollars. For license-based + products, this represents the number of licenses. + prevent_further_usage: + type: boolean + description: Whether to prevent additional spending once the budget + is exceeded + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget + alert_recipients: + type: array + items: + type: string + description: Array of user login names who will receive alerts + budget_scope: + type: string + description: The scope of the budget + enum: + - enterprise + - organization + - repository + - cost_center + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + budget_type: + type: string + description: The type of pricing for the budget + enum: + - ProductPricing + - SkuPricing + budget_product_sku: + type: string + description: A single product or SKU that will be covered in the + budget + examples: + update-budget: + summary: Update budget example + value: + prevent_further_usage: false + budget_amount: 10 + budget_alerting: + will_alert: false + alert_recipients: [] + responses: + '200': + description: Budget updated successfully + content: + application/json: + schema: + type: object + properties: + message: + type: string + example: Budget successfully updated. + budget: + type: object + properties: + id: + type: string + description: ID of the budget. + budget_amount: + type: number + format: float + description: The budget amount in whole dollars. For license-based + products, this represents the number of licenses. + prevent_further_usage: + type: boolean + description: Whether to prevent additional spending once the + budget is exceeded + budget_alerting: + type: object + required: + - will_alert + - alert_recipients + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget + alert_recipients: + type: array + items: + type: string + description: Array of user login names who will receive + alerts + budget_scope: + type: string + description: The scope of the budget + enum: + - enterprise + - organization + - repository + - cost_center + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + default: '' + budget_type: + type: string + description: The type of pricing for the budget + enum: + - ProductPricing + - SkuPricing + budget_product_sku: + type: string + description: A single product or SKU that will be covered + in the budget + examples: + update-budget: + "$ref": "#/components/examples/update-budget" + '400': + "$ref": "#/components/responses/bad_request" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + description: Budget not found or feature not enabled + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + examples: + budget-not-found: + value: + message: Budget with ID 550e8400-e29b-41d4-a716-446655440000 not + found. + documentation_url: https://docs.github.com/rest/billing/budgets#update-a-budget + feature-not-enabled: + value: + message: Not Found + documentation_url: https://docs.github.com/rest/billing/budgets#update-a-budget + '422': + "$ref": "#/components/responses/validation_failed" + '500': + description: Internal server error + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + examples: + server-error: + value: + message: Unable to update budget. + documentation_url: https://docs.github.com/rest/billing/budgets#update-a-budget + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: billing + subcategory: budgets + delete: + summary: Delete a budget for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. + tags: + - billing + operationId: billing/delete-budget-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/budgets#delete-a-budget-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/budget" + responses: + '200': + "$ref": "#/components/responses/delete-budget" + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: budgets + "/organizations/{org}/settings/billing/premium_request/usage": + get: + summary: Get billing premium request usage report for an organization + description: |- + Gets a report of premium request usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account. + + **Note:** Only data from the past 24 months is accessible via this endpoint. + tags: + - billing + operationId: billing/get-github-billing-premium-request-usage-report-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-premium-request-usage-report-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/billing-usage-report-year" + - "$ref": "#/components/parameters/billing-usage-report-month-default" + - "$ref": "#/components/parameters/billing-usage-report-day" + - "$ref": "#/components/parameters/billing-usage-report-user" + - "$ref": "#/components/parameters/billing-usage-report-model" + - "$ref": "#/components/parameters/billing-usage-report-product" + responses: + '200': + "$ref": "#/components/responses/billing_premium_request_usage_report_org" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: usage + "/organizations/{org}/settings/billing/usage": + get: + summary: Get billing usage report for an organization + description: |- + Gets a report of the total usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account. + + **Note:** This endpoint is only available to organizations with access to the enhanced billing platform. For more information, see "[About the enhanced billing platform](https://docs.github.com/billing/using-the-new-billing-platform)." + tags: + - billing + operationId: billing/get-github-billing-usage-report-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-usage-report-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/billing-usage-report-year" + - "$ref": "#/components/parameters/billing-usage-report-month" + - "$ref": "#/components/parameters/billing-usage-report-day" + responses: + '200': + "$ref": "#/components/responses/billing_usage_report_org" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: usage + "/organizations/{org}/settings/billing/usage/summary": + get: + summary: Get billing usage summary for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Gets a summary report of usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account. + + **Note:** Only data from the past 24 months is accessible via this endpoint. + tags: + - billing + operationId: billing/get-github-billing-usage-summary-report-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-usage-summary-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/billing-usage-report-year" + - "$ref": "#/components/parameters/billing-usage-report-month-default" + - "$ref": "#/components/parameters/billing-usage-report-day" + - "$ref": "#/components/parameters/billing-usage-report-repository" + - "$ref": "#/components/parameters/billing-usage-report-product" + - "$ref": "#/components/parameters/billing-usage-report-sku" + responses: + '200': + "$ref": "#/components/responses/billing_usage_summary_report_org" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: usage + "/orgs/{org}": + get: + summary: Get an organization + description: |- + Gets information about an organization. + + When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, outside collaborators, guest collaborators, repository collaborators, or everyone with access to any repository within the organization to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + + To see the full details about an organization, the authenticated user must be an organization owner. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + + To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + tags: + - orgs + operationId: orgs/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#get-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-full" + examples: + default-response: + "$ref": "#/components/examples/organization-full" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + patch: + summary: Update an organization + description: |- + > [!WARNING] + > **Closing down notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + + > [!WARNING] + > **Closing down notice:** Code security product enablement for new repositories through the organization API is closing down. Please use [code security configurations](https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-organization) to set defaults instead. For more information on setting a default security configuration, see the [changelog](https://github.blog/changelog/2024-07-09-sunsetting-security-settings-defaults-parameters-in-the-organizations-rest-api/). + + Updates the organization's profile and member privileges. + + The authenticated user must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + tags: + - orgs + operationId: orgs/update + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#update-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + billing_email: + type: string + description: Billing email address. This address is not publicized. + company: + type: string + description: The company name. + email: + type: string + description: The publicly visible email address. + twitter_username: + type: string + description: The Twitter username of the company. + location: + type: string + description: The location. + name: + type: string + description: The shorthand name of the company. + description: + type: string + description: The description of the company. The maximum size is + 160 characters. + has_organization_projects: + type: boolean + description: Whether an organization can use organization projects. + has_repository_projects: + type: boolean + description: Whether repositories that belong to the organization + can use repository projects. + default_repository_permission: + type: string + description: Default permission level members have for organization + repositories. + enum: + - read + - write + - admin + - none + default: read + members_can_create_repositories: + type: boolean + description: Whether of non-admin organization members can create + repositories. **Note:** A parameter can override this parameter. + See `members_allowed_repository_creation_type` in this table for + details. + default: true + members_can_create_internal_repositories: + type: boolean + description: Whether organization members can create internal repositories, + which are visible to all enterprise members. You can only allow + members to create internal repositories if your organization is + associated with an enterprise account using GitHub Enterprise + Cloud or GitHub Enterprise Server 2.20+. For more information, + see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" + in the GitHub Help documentation. + members_can_create_private_repositories: + type: boolean + description: Whether organization members can create private repositories, + which are visible to organization members with permission. For + more information, see "[Restricting repository creation in your + organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" + in the GitHub Help documentation. + members_can_create_public_repositories: + type: boolean + description: Whether organization members can create public repositories, + which are visible to anyone. For more information, see "[Restricting + repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" + in the GitHub Help documentation. + members_allowed_repository_creation_type: + type: string + description: "Specifies which types of repositories non-admin organization + members can create. `private` is only available to repositories + that are part of an organization on GitHub Enterprise Cloud. \n**Note:** + This parameter is closing down and will be removed in the future. + Its return value ignores internal repositories. Using this parameter + overrides values set in `members_can_create_repositories`. See + the parameter deprecation notice in the operation description + for details." + enum: + - all + - private + - none + members_can_create_pages: + type: boolean + description: Whether organization members can create GitHub Pages + sites. Existing published sites will not be impacted. + default: true + members_can_create_public_pages: + type: boolean + description: Whether organization members can create public GitHub + Pages sites. Existing published sites will not be impacted. + default: true + members_can_create_private_pages: + type: boolean + description: Whether organization members can create private GitHub + Pages sites. Existing published sites will not be impacted. + default: true + members_can_fork_private_repositories: + type: boolean + description: Whether organization members can fork private organization + repositories. + default: false + web_commit_signoff_required: + type: boolean + description: Whether contributors to organization repositories are + required to sign off on commits they make through GitHub's web + interface. + default: false + blog: + type: string + example: '"http://github.blog"' + advanced_security_enabled_for_new_repositories: + type: boolean + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to this organization. + + To 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)." + + You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + deprecated: true + dependabot_alerts_enabled_for_new_repositories: + type: boolean + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization. + + To 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)." + + You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + deprecated: true + dependabot_security_updates_enabled_for_new_repositories: + type: boolean + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization. + + To 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)." + + You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + deprecated: true + dependency_graph_enabled_for_new_repositories: + type: boolean + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization. + + To 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)." + + You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + deprecated: true + secret_scanning_enabled_for_new_repositories: + type: boolean + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization. + + To 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)." + + You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + deprecated: true + secret_scanning_push_protection_enabled_for_new_repositories: + type: boolean + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization. + + To 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)." + + You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + deprecated: true + secret_scanning_push_protection_custom_link_enabled: + type: boolean + description: Whether a custom link is shown to contributors who + are blocked from pushing a secret by push protection. + secret_scanning_push_protection_custom_link: + type: string + description: If `secret_scanning_push_protection_custom_link_enabled` + is true, the URL that will be displayed to contributors who are + blocked from pushing a secret. + deploy_keys_enabled_for_repositories: + type: boolean + description: Controls whether or not deploy keys may be added and + used for repositories in the organization. + examples: + default: + value: + billing_email: mona@github.com + company: GitHub + email: mona@github.com + twitter_username: github + location: San Francisco + name: github + description: GitHub, the company. + default_repository_permission: read + members_can_create_repositories: true + members_allowed_repository_creation_type: all + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-full" + examples: + default: + "$ref": "#/components/examples/organization-full" + '422': + description: Validation failed + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/validation-error" + - "$ref": "#/components/schemas/validation-error-simple" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + delete: + summary: Delete an organization + description: |- + Deletes an organization and all its repositories. + + The organization login will be unavailable for 90 days after deletion. + + Please review the Terms of Service regarding account deletion before using this endpoint: + + https://docs.github.com/site-policy/github-terms/github-terms-of-service + operationId: orgs/delete + tags: + - orgs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#delete-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '202': + "$ref": "#/components/responses/accepted" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + "/orgs/{org}/actions/cache/usage": + get: + summary: Get GitHub Actions cache usage for an organization + description: |- + Gets the total GitHub Actions cache usage for an organization. + The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + + OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-usage-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-usage-org-enterprise" + examples: + default: + "$ref": "#/components/examples/actions-cache-usage-org-enterprise" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/orgs/{org}/actions/cache/usage-by-repository": + get: + summary: List repositories with GitHub Actions cache usage for an organization + description: |- + Lists repositories and their GitHub Actions cache usage for an organization. + The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + + OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-usage-by-repo-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#list-repositories-with-github-actions-cache-usage-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repository_cache_usages + properties: + total_count: + type: integer + repository_cache_usages: + type: array + items: + "$ref": "#/components/schemas/actions-cache-usage-by-repository" + examples: + default: + "$ref": "#/components/examples/org-actions-cache-usage-by-repo" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/orgs/{org}/actions/hosted-runners": + get: + summary: List GitHub-hosted runners for an organization + description: |- + Lists all GitHub-hosted runners configured in an organization. + + OAuth app tokens and personal access tokens (classic) need the `manage_runner:org` scope to use this endpoint. + tags: + - actions + operationId: actions/list-hosted-runners-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#list-github-hosted-runners-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - runners + properties: + total_count: + type: integer + runners: + type: array + items: + "$ref": "#/components/schemas/actions-hosted-runner" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + post: + summary: Create a GitHub-hosted runner for an organization + description: |- + Creates a GitHub-hosted runner for an organization. + OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + operationId: actions/create-hosted-runner-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#create-a-github-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + description: Name of the runner. Must be between 1 and 64 characters + and may only contain upper and lowercase letters a-z, numbers + 0-9, '.', '-', and '_'. + type: string + image: + description: The image of runner. To list all available images, + use `GET /actions/hosted-runners/images/github-owned` or `GET + /actions/hosted-runners/images/partner`. + type: object + properties: + id: + description: The unique identifier of the runner image. + type: string + source: + description: The source of the runner image. + type: string + enum: + - github + - partner + - custom + version: + description: The version of the runner image to deploy. This + is relevant only for runners using custom images. + type: string + nullable: true + size: + description: The machine size of the runner. To list available sizes, + use `GET actions/hosted-runners/machine-sizes` + type: string + runner_group_id: + description: The existing runner group to add this runner to. + type: integer + maximum_runners: + description: The maximum amount of runners to scale up to. Runners + will not auto-scale above this number. Use this setting to limit + your cost. + type: integer + enable_static_ip: + description: Whether this runner should be created with a static + public IP. Note limit on account. To list limits on account, use + `GET actions/hosted-runners/limits` + type: boolean + image_gen: + description: Whether this runner should be used to generate custom + images. + type: boolean + default: false + required: + - name + - image + - size + - runner_group_id + examples: + default: + value: + name: My Hosted runner + image: + id: ubuntu-latest + source: github + runner_group_id: 1 + size: 4-core + maximum_runners: 50 + enable_static_ip: false + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-hosted-runner" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/images/custom": + get: + summary: List custom images for an organization + description: |- + List custom images for an organization. + + OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + tags: + - actions + operationId: actions/list-custom-images-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#list-custom-images-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - images + properties: + total_count: + type: integer + images: + type: array + items: + "$ref": "#/components/schemas/actions-hosted-runner-custom-image" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-custom-image-versions" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}": + get: + summary: Get a custom image definition for GitHub Actions Hosted Runners + description: |- + Get a custom image definition for GitHub Actions Hosted Runners. + + OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + tags: + - actions + operationId: actions/get-custom-image-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-a-custom-image-definition-for-github-actions-hosted-runners + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/actions-custom-image-definition-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-hosted-runner-custom-image" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-custom-image" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + delete: + summary: Delete a custom image from the organization + description: |- + Delete a custom image from the organization. + + OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-custom-image-from-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#delete-a-custom-image-from-the-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/actions-custom-image-definition-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions": + get: + summary: List image versions of a custom image for an organization + description: |- + List image versions of a custom image for an organization. + + OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + tags: + - actions + operationId: actions/list-custom-image-versions-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#list-image-versions-of-a-custom-image-for-an-organization + parameters: + - "$ref": "#/components/parameters/actions-custom-image-definition-id" + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - image_versions + properties: + total_count: + type: integer + image_versions: + type: array + items: + "$ref": "#/components/schemas/actions-hosted-runner-custom-image-version" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-custom-image-versions" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}": + get: + summary: Get an image version of a custom image for GitHub Actions Hosted Runners + description: |- + Get an image version of a custom image for GitHub Actions Hosted Runners. + + OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + tags: + - actions + operationId: actions/get-custom-image-version-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-an-image-version-of-a-custom-image-for-github-actions-hosted-runners + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/actions-custom-image-definition-id" + - "$ref": "#/components/parameters/actions-custom-image-version" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-hosted-runner-custom-image-version" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-custom-image-version" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + delete: + summary: Delete an image version of custom image from the organization + description: |- + Delete an image version of custom image from the organization. + + OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-custom-image-version-from-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#delete-an-image-version-of-custom-image-from-the-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/actions-custom-image-definition-id" + - "$ref": "#/components/parameters/actions-custom-image-version" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/images/github-owned": + get: + summary: Get GitHub-owned images for GitHub-hosted runners in an organization + description: Get the list of GitHub-owned images available for GitHub-hosted + runners for an organization. + operationId: actions/get-hosted-runners-github-owned-images-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-github-owned-images-for-github-hosted-runners-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - images + properties: + total_count: + type: integer + images: + type: array + items: + "$ref": "#/components/schemas/actions-hosted-runner-curated-image" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-curated-image" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/images/partner": + get: + summary: Get partner images for GitHub-hosted runners in an organization + description: Get the list of partner images available for GitHub-hosted runners + for an organization. + operationId: actions/get-hosted-runners-partner-images-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-partner-images-for-github-hosted-runners-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - images + properties: + total_count: + type: integer + images: + type: array + items: + "$ref": "#/components/schemas/actions-hosted-runner-curated-image" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-curated-image" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/limits": + get: + summary: Get limits on GitHub-hosted runners for an organization + description: Get the GitHub-hosted runners limits for an organization. + operationId: actions/get-hosted-runners-limits-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-limits-on-github-hosted-runners-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-hosted-runner-limits" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-limits-default" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/machine-sizes": + get: + summary: Get GitHub-hosted runners machine specs for an organization + description: Get the list of machine specs available for GitHub-hosted runners + for an organization. + operationId: actions/get-hosted-runners-machine-specs-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-github-hosted-runners-machine-specs-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - machine_specs + properties: + total_count: + type: integer + machine_specs: + type: array + items: + "$ref": "#/components/schemas/actions-hosted-runner-machine-spec" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-machine-spec" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/platforms": + get: + summary: Get platforms for GitHub-hosted runners in an organization + description: Get the list of platforms available for GitHub-hosted runners for + an organization. + operationId: actions/get-hosted-runners-platforms-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-platforms-for-github-hosted-runners-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - platforms + properties: + total_count: + type: integer + platforms: + type: array + items: + type: string + examples: + default: + value: + total_count: 1 + platforms: + - linux-x64 + - win-x64 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/hosted-runners/{hosted_runner_id}": + get: + summary: Get a GitHub-hosted runner for an organization + description: |- + Gets a GitHub-hosted runner configured in an organization. + + OAuth app tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + tags: + - actions + operationId: actions/get-hosted-runner-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#get-a-github-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hosted-runner-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-hosted-runner" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: hosted-runners + patch: + summary: Update a GitHub-hosted runner for an organization + description: |- + Updates a GitHub-hosted runner for an organization. + OAuth app tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. + operationId: actions/update-hosted-runner-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#update-a-github-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hosted-runner-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + description: Name of the runner. Must be between 1 and 64 characters + and may only contain upper and lowercase letters a-z, numbers + 0-9, '.', '-', and '_'. + type: string + runner_group_id: + description: The existing runner group to add this runner to. + type: integer + maximum_runners: + description: The maximum amount of runners to scale up to. Runners + will not auto-scale above this number. Use this setting to limit + your cost. + type: integer + enable_static_ip: + description: Whether this runner should be updated with a static + public IP. Note limit on account. To list limits on account, use + `GET actions/hosted-runners/limits` + type: boolean + size: + description: The machine size of the runner. To list available sizes, + use `GET actions/hosted-runners/machine-sizes` + type: string + image_id: + description: The unique identifier of the runner image. To list + all available images, use `GET /actions/hosted-runners/images/github-owned` + or `GET /actions/hosted-runners/images/partner`. + type: string + image_version: + description: The version of the runner image to deploy. This is + relevant only for runners using custom images. + type: string + nullable: true + examples: + default: + value: + name: My larger runner + runner_group_id: 1 + maximum_runners: 50 + enable_static_ip: false + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-hosted-runner" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: hosted-runners + delete: + summary: Delete a GitHub-hosted runner for an organization + description: Deletes a GitHub-hosted runner for an organization. + operationId: actions/delete-hosted-runner-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/hosted-runners#delete-a-github-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hosted-runner-id" + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-hosted-runner" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: actions + subcategory: hosted-runners + "/orgs/{org}/actions/oidc/customization/sub": + get: + summary: Get the customization template for an OIDC subject claim for an organization + description: |- + Gets the customization template for an OpenID Connect (OIDC) subject claim. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - oidc + operationId: oidc/get-oidc-custom-sub-template-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: A JSON serialized template for OIDC subject claim customization + content: + application/json: + schema: + "$ref": "#/components/schemas/oidc-custom-sub" + examples: + default: + "$ref": "#/components/examples/oidc-custom-sub" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: oidc + put: + summary: Set the customization template for an OIDC subject claim for an organization + description: |- + Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - oidc + operationId: oidc/update-oidc-custom-sub-template-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/oidc-custom-sub" + examples: + default: + "$ref": "#/components/examples/oidc-custom-sub" + responses: + '201': + description: Empty response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + enabledForGitHubApps: true + previews: [] + category: actions + subcategory: oidc + "/orgs/{org}/actions/permissions": + get: + summary: Get GitHub Actions permissions for an organization + description: |- + Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/get-github-actions-permissions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-organization-permissions" + examples: + default: + "$ref": "#/components/examples/actions-organization-permissions" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + put: + summary: Set GitHub Actions permissions for an organization + description: |- + Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/set-github-actions-permissions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Response + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + enabled_repositories: + "$ref": "#/components/schemas/enabled-repositories" + allowed_actions: + "$ref": "#/components/schemas/allowed-actions" + sha_pinning_required: + "$ref": "#/components/schemas/sha-pinning-required" + required: + - enabled_repositories + examples: + default: + value: + enabled_repositories: all + allowed_actions: selected + sha_pinning_required: true + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/artifact-and-log-retention": + get: + summary: Get artifact and log retention settings for an organization + description: |- + Gets artifact and log retention settings for an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/get-artifact-and-log-retention-settings-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-artifact-and-log-retention-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-artifact-and-log-retention-response" + examples: + response: + summary: Example response + value: + days: 90 + maximum_allowed_days: 365 + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set artifact and log retention settings for an organization + description: |- + Sets artifact and log retention settings for an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/set-artifact-and-log-retention-settings-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-artifact-and-log-retention-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-artifact-and-log-retention" + examples: + application/json: + value: + days: 100 + responses: + '204': + description: No content + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/fork-pr-contributor-approval": + get: + summary: Get fork PR contributor approval permissions for an organization + description: |- + Gets the fork PR contributor approval policy for an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/get-fork-pr-contributor-approval-permissions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-fork-pr-contributor-approval-permissions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + examples: + default: + "$ref": "#/components/examples/actions-fork-pr-contributor-approval" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set fork PR contributor approval permissions for an organization + description: |- + Sets the fork PR contributor approval policy for an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/set-fork-pr-contributor-approval-permissions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-fork-pr-contributor-approval-permissions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + examples: + default: + summary: Set approval policy to first time contributors + value: + approval_policy: first_time_contributors + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos": + get: + summary: Get private repo fork PR workflow settings for an organization + description: Gets the settings for whether workflows from fork pull requests + can run on private repositories in an organization. + operationId: actions/get-private-repo-fork-pr-workflows-settings-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-private-repo-fork-pr-workflow-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos" + examples: + default: + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set private repo fork PR workflow settings for an organization + description: Sets the settings for whether workflows from fork pull requests + can run on private repositories in an organization. + operationId: actions/set-private-repo-fork-pr-workflows-settings-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-private-repo-fork-pr-workflow-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos-request" + examples: + default: + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + responses: + '204': + description: Empty response for successful settings update + '403': + description: Forbidden - Fork PR workflow settings for private repositories + are managed by the enterprise owner + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/repositories": + get: + summary: List selected repositories enabled for GitHub Actions in an organization + description: |- + Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/list-selected-repositories-enabled-github-actions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: number + repositories: + type: array + items: + "$ref": "#/components/schemas/repository" + examples: + default: + "$ref": "#/components/examples/repository-paginated" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + put: + summary: Set selected repositories enabled for GitHub Actions in an organization + description: |- + Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/set-selected-repositories-enabled-github-actions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-selected-repositories-enabled-for-github-actions-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Response + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + description: List of repository IDs to enable for GitHub Actions. + type: array + items: + type: integer + description: Unique identifier of the repository. + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - 32 + - 42 + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/repositories/{repository_id}": + put: + summary: Enable a selected repository for GitHub Actions in an organization + description: |- + Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/enable-selected-repository-github-actions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#enable-a-selected-repository-for-github-actions-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + delete: + summary: Disable a selected repository for GitHub Actions in an organization + description: |- + Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/disable-selected-repository-github-actions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#disable-a-selected-repository-for-github-actions-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/selected-actions": + get: + summary: Get allowed actions and reusable workflows for an organization + description: |- + Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/get-allowed-actions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/selected-actions" + examples: + default: + "$ref": "#/components/examples/selected-actions" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + put: + summary: Set allowed actions and reusable workflows for an organization + description: |- + Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/set-allowed-actions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Response + requestBody: + required: false + content: + application/json: + schema: + "$ref": "#/components/schemas/selected-actions" + examples: + selected_actions: + "$ref": "#/components/examples/selected-actions" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/self-hosted-runners": + get: + summary: Get self-hosted runners settings for an organization + description: |- + Gets the settings for self-hosted runners for an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/get-self-hosted-runners-permissions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-self-hosted-runners-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/self-hosted-runners-settings" + examples: + response: + summary: Example response + value: + enabled_repositories: selected + selected_repositories_url: http://api.github.localhost/organizations/1/actions/permissions/self-hosted-runners/repositories + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set self-hosted runners settings for an organization + description: |- + Sets the settings for self-hosted runners for an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/set-self-hosted-runners-permissions-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-self-hosted-runners-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - enabled_repositories + properties: + enabled_repositories: + type: string + description: The policy that controls whether self-hosted runners + can be used in the organization + enum: + - all + - selected + - none + examples: + application/json: + value: + enabled_repositories: all + responses: + '204': + description: No content + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/self-hosted-runners/repositories": + get: + summary: List repositories allowed to use self-hosted runners in an organization + description: |- + Lists repositories that are allowed to use self-hosted runners in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/list-selected-repositories-self-hosted-runners-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#list-repositories-allowed-to-use-self-hosted-runners-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + total_count: + type: integer + repositories: + type: array + items: + "$ref": "#/components/schemas/repository" + examples: + default: + "$ref": "#/components/examples/repository-paginated" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set repositories allowed to use self-hosted runners in an organization + description: |- + Sets repositories that are allowed to use self-hosted runners in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/set-selected-repositories-self-hosted-runners-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-repositories-allowed-to-use-self-hosted-runners-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - selected_repository_ids + properties: + selected_repository_ids: + type: array + items: + type: integer + description: IDs of repositories that can use repository-level self-hosted + runners + examples: + application/json: + value: + selected_repository_ids: + - 1 + - 2 + - 3 + responses: + '204': + description: No content + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id}": + put: + summary: Add a repository to the list of repositories allowed to use self-hosted + runners in an organization + description: |- + Adds a repository to the list of repositories that are allowed to use self-hosted runners in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/enable-selected-repository-self-hosted-runners-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#add-a-repository-to-the-list-of-repositories-allowed-to-use-self-hosted-runners-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: No content + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + delete: + summary: Remove a repository from the list of repositories allowed to use self-hosted + runners in an organization + description: |- + Removes a repository from the list of repositories that are allowed to use self-hosted runners in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + operationId: actions/disable-selected-repository-self-hosted-runners-organization + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#remove-a-repository-from-the-list-of-repositories-allowed-to-use-self-hosted-runners-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: No content + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/orgs/{org}/actions/permissions/workflow": + get: + summary: Get default workflow permissions for an organization + description: |- + Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - actions + operationId: actions/get-github-actions-default-workflow-permissions-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-get-default-workflow-permissions" + examples: + default: + "$ref": "#/components/examples/actions-default-workflow-permissions" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set default workflow permissions for an organization + description: |- + Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + can submit approving pull request reviews. For more information, see + "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - actions + operationId: actions/set-github-actions-default-workflow-permissions-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Success response + requestBody: + required: false + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-set-default-workflow-permissions" + examples: + default: + "$ref": "#/components/examples/actions-default-workflow-permissions" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/orgs/{org}/actions/runner-groups": + get: + summary: List self-hosted runner groups for an organization + description: |- + Lists all self-hosted runner groups configured in an organization and inherited from an enterprise. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/list-self-hosted-runner-groups-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#list-self-hosted-runner-groups-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/visible-to-repository" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - runner_groups + properties: + total_count: + type: number + runner_groups: + type: array + items: + "$ref": "#/components/schemas/runner-groups-org" + examples: + default: + "$ref": "#/components/examples/runner-groups-org" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + post: + summary: Create a self-hosted runner group for an organization + description: |- + Creates a new self-hosted runner group for an organization. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/create-self-hosted-runner-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#create-a-self-hosted-runner-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + description: Name of the runner group. + type: string + visibility: + description: Visibility of a runner group. You can select all repositories, + select individual repositories, or limit access to private repositories. + type: string + enum: + - selected + - all + - private + default: all + selected_repository_ids: + description: List of repository IDs that can access the runner group. + type: array + items: + type: integer + description: Unique identifier of the repository. + runners: + description: List of runner IDs to add to the runner group. + type: array + items: + type: integer + description: Unique identifier of the runner. + allows_public_repositories: + description: Whether the runner group can be used by `public` repositories. + type: boolean + default: false + restricted_to_workflows: + description: If `true`, the runner group will be restricted to running + only the workflows specified in the `selected_workflows` array. + type: boolean + default: false + selected_workflows: + description: List of workflows the runner group should be allowed + to run. This setting will be ignored unless `restricted_to_workflows` + is set to `true`. + type: array + items: + type: string + description: Name of workflow the runner group should be allowed + to run. Note that a ref, tag, or long SHA is required. + example: octo-org/octo-repo/.github/workflows/deploy.yaml@main + network_configuration_id: + description: The identifier of a hosted compute network configuration. + type: string + required: + - name + examples: + default: + value: + name: Expensive hardware runners + visibility: selected + selected_repository_ids: + - 32 + - 91 + runners: + - 9 + - 2 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/runner-groups-org" + examples: + default: + "$ref": "#/components/examples/runner-group" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + "/orgs/{org}/actions/runner-groups/{runner_group_id}": + get: + summary: Get a self-hosted runner group for an organization + description: |- + Gets a specific self-hosted runner group for an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/get-self-hosted-runner-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#get-a-self-hosted-runner-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/runner-groups-org" + examples: + default: + "$ref": "#/components/examples/runner-group-item" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + patch: + summary: Update a self-hosted runner group for an organization + description: |- + Updates the `name` and `visibility` of a self-hosted runner group in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/update-self-hosted-runner-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#update-a-self-hosted-runner-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + description: Name of the runner group. + type: string + visibility: + description: Visibility of a runner group. You can select all repositories, + select individual repositories, or all private repositories. + type: string + enum: + - selected + - all + - private + allows_public_repositories: + description: Whether the runner group can be used by `public` repositories. + type: boolean + default: false + restricted_to_workflows: + description: If `true`, the runner group will be restricted to running + only the workflows specified in the `selected_workflows` array. + type: boolean + default: false + selected_workflows: + description: List of workflows the runner group should be allowed + to run. This setting will be ignored unless `restricted_to_workflows` + is set to `true`. + type: array + items: + type: string + description: Name of workflow the runner group should be allowed + to run. Note that a ref, tag, or long SHA is required. + example: octo-org/octo-repo/.github/workflows/deploy.yaml@main + network_configuration_id: + description: The identifier of a hosted compute network configuration. + type: string + nullable: true + required: + - name + examples: + default: + value: + name: Expensive hardware runners + visibility: selected + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/runner-groups-org" + examples: + default: + "$ref": "#/components/examples/runner-group" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + delete: + summary: Delete a self-hosted runner group from an organization + description: |- + Deletes a self-hosted runner group for an organization. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/delete-self-hosted-runner-group-from-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#delete-a-self-hosted-runner-group-from-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + "/orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners": + get: + summary: List GitHub-hosted runners in a group for an organization + description: |- + Lists the GitHub-hosted runners in an organization group. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/list-github-hosted-runners-in-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#list-github-hosted-runners-in-a-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - runners + properties: + total_count: + type: number + runners: + type: array + items: + "$ref": "#/components/schemas/actions-hosted-runner" + examples: + default: + "$ref": "#/components/examples/actions-hosted-runner-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": + get: + summary: List repository access to a self-hosted runner group in an organization + description: |- + Lists the repositories with access to a self-hosted runner group configured in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/list-repo-access-to-self-hosted-runner-group-in-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#list-repository-access-to-a-self-hosted-runner-group-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: number + repositories: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-paginated" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + put: + summary: Set repository access for a self-hosted runner group in an organization + description: |- + Replaces the list of repositories that have access to a self-hosted runner group configured in an organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/set-repo-access-to-self-hosted-runner-group-in-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#set-repository-access-for-a-self-hosted-runner-group-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + description: List of repository IDs that can access the runner group. + type: array + items: + type: integer + description: Unique identifier of the repository. + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - 32 + - 91 + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": + put: + summary: Add repository access to a self-hosted runner group in an organization + description: |- + Adds a repository to the list of repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/add-repo-access-to-self-hosted-runner-group-in-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#add-repository-access-to-a-self-hosted-runner-group-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + delete: + summary: Remove repository access to a self-hosted runner group in an organization + description: |- + Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/remove-repo-access-to-self-hosted-runner-group-in-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#remove-repository-access-to-a-self-hosted-runner-group-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners": + get: + summary: List self-hosted runners in a group for an organization + description: |- + Lists self-hosted runners that are in a specific organization group. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/list-self-hosted-runners-in-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#list-self-hosted-runners-in-a-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - runners + properties: + total_count: + type: number + runners: + type: array + items: + "$ref": "#/components/schemas/runner" + examples: + default: + "$ref": "#/components/examples/runner-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + put: + summary: Set self-hosted runners in a group for an organization + description: |- + Replaces the list of self-hosted runners that are part of an organization runner group. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/set-self-hosted-runners-in-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#set-self-hosted-runners-in-a-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + runners: + description: List of runner IDs to add to the runner group. + type: array + items: + type: integer + description: Unique identifier of the runner. + required: + - runners + examples: + default: + value: + runners: + - 9 + - 2 + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": + put: + summary: Add a self-hosted runner to a group for an organization + description: |- + Adds a self-hosted runner to a runner group configured in an organization. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/add-self-hosted-runner-to-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#add-a-self-hosted-runner-to-a-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + - "$ref": "#/components/parameters/runner-id" + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + delete: + summary: Remove a self-hosted runner from a group for an organization + description: |- + Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: actions/remove-self-hosted-runner-from-group-for-org + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runner-groups#remove-a-self-hosted-runner-from-a-group-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-group-id" + - "$ref": "#/components/parameters/runner-id" + responses: + '204': + description: Response + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: self-hosted-runner-groups + "/orgs/{org}/actions/runners": + get: + summary: List self-hosted runners for an organization + description: |- + Lists all self-hosted runners configured in an organization. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/list-self-hosted-runners-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-an-organization + parameters: + - name: name + description: The name of a self-hosted runner. + in: query + schema: + type: string + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - runners + properties: + total_count: + type: integer + runners: + type: array + items: + "$ref": "#/components/schemas/runner" + examples: + default: + "$ref": "#/components/examples/runner-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/runners/downloads": + get: + summary: List runner applications for an organization + description: |- + Lists binaries for the runner application that you can download and run. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/list-runner-applications-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/runner-application" + examples: + default: + "$ref": "#/components/examples/runner-application-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/runners/generate-jitconfig": + post: + summary: Create configuration for a just-in-time runner for an organization + description: |- + Generates a configuration that can be passed to the runner application at startup. + + The authenticated user must have admin access to the organization. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/generate-runner-jitconfig-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - name + - runner_group_id + - labels + properties: + name: + type: string + description: The name of the new runner. + runner_group_id: + type: integer + description: The ID of the runner group to register the runner to. + labels: + type: array + minItems: 1 + maxItems: 100 + items: + type: string + description: 'The names of the custom labels to add to the runner. + **Minimum items**: 1. **Maximum items**: 100.' + work_folder: + type: string + description: The working directory to be used for job execution, + relative to the runner install directory. + default: _work + examples: + default: + value: + name: New runner + runner_group_id: 1 + labels: + - self-hosted + - X64 + - macOS + - no-gpu + work_folder: _work + responses: + '201': + "$ref": "#/components/responses/actions_runner_jitconfig" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/runners/registration-token": + post: + summary: Create a registration token for an organization + description: |- + Returns a token that you can pass to the `config` script. The token expires after one hour. + + For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + + ``` + ./config.sh --url https://github.com/octo-org --token TOKEN + ``` + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-registration-token-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/authentication-token" + examples: + default: + "$ref": "#/components/examples/authentication-token" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/runners/remove-token": + post: + summary: Create a remove token for an organization + description: |- + Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + + For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + + ``` + ./config.sh remove --token TOKEN + ``` + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-remove-token-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/authentication-token" + examples: + default: + "$ref": "#/components/examples/authentication-token-2" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/runners/{runner_id}": + get: + summary: Get a self-hosted runner for an organization + description: |- + Gets a specific self-hosted runner configured in an organization. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/get-self-hosted-runner-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/runner" + examples: + default: + "$ref": "#/components/examples/runner" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + delete: + summary: Delete a self-hosted runner from an organization + description: |- + Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-self-hosted-runner-from-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-id" + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/runners/{runner_id}/labels": + get: + summary: List labels for a self-hosted runner for an organization + description: |- + Lists all labels for a self-hosted runner configured in an organization. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/list-labels-for-self-hosted-runner-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-id" + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + post: + summary: Add custom labels to a self-hosted runner for an organization + description: |- + Adds custom labels to a self-hosted runner configured in an organization. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - actions + operationId: actions/add-custom-labels-to-self-hosted-runner-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - labels + properties: + labels: + type: array + minItems: 1 + maxItems: 100 + description: The names of the custom labels to add to the runner. + items: + type: string + examples: + default: + value: + labels: + - gpu + - accelerated + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + put: + summary: Set custom labels for a self-hosted runner for an organization + description: |- + Remove all previous custom labels and set the new custom labels for a specific + self-hosted runner configured in an organization. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/set-custom-labels-for-self-hosted-runner-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - labels + properties: + labels: + type: array + minItems: 0 + maxItems: 100 + description: The names of the custom labels to set for the runner. + You can pass an empty array to remove all custom labels. + items: + type: string + examples: + default: + value: + labels: + - gpu + - accelerated + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + delete: + summary: Remove all custom labels from a self-hosted runner for an organization + description: |- + Remove all custom labels from a self-hosted runner configured in an + organization. Returns the remaining read-only labels from the runner. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/remove-all-custom-labels-from-self-hosted-runner-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-id" + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels_readonly" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/runners/{runner_id}/labels/{name}": + delete: + summary: Remove a custom label from a self-hosted runner for an organization + description: |- + Remove a custom label from a self-hosted runner configured + in an organization. Returns the remaining labels from the runner. + + This endpoint returns a `404 Not Found` status if the custom label is not + present on the runner. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/remove-custom-label-from-self-hosted-runner-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/runner-id" + - "$ref": "#/components/parameters/runner-label-name" + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/orgs/{org}/actions/secrets": + get: + summary: List organization secrets + description: |- + Lists all secrets available in an organization without revealing their + encrypted values. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/list-org-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#list-organization-secrets + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/organization-actions-secret" + examples: + default: + "$ref": "#/components/examples/organization-actions-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/orgs/{org}/actions/secrets/public-key": + get: + summary: Get an organization public key + description: |- + Gets your public key, which you need to encrypt secrets. You need to + encrypt a secret before you can create or update secrets. + + The authenticated user must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-org-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#get-an-organization-public-key + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-public-key" + examples: + default: + "$ref": "#/components/examples/actions-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/orgs/{org}/actions/secrets/{secret_name}": + get: + summary: Get an organization secret + description: |- + Gets a single organization secret without revealing its encrypted value. + + The authenticated user must have collaborator access to a repository to create, update, or read secrets + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#get-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-actions-secret" + examples: + default: + "$ref": "#/components/examples/organization-actions-secret" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + put: + summary: Create or update an organization secret + description: |- + Creates or updates an organization secret with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-or-update-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get an organization public + key](https://docs.github.com/rest/actions/secrets#get-an-organization-public-key) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: ID of the key you used to encrypt the secret. + visibility: + type: string + description: Which type of organization repositories have access + to the organization secret. `selected` means only the repositories + specified by `selected_repository_ids` can access the secret. + enum: + - all + - private + - selected + selected_repository_ids: + type: array + description: An array of repository ids that can access the organization + secret. You can only provide a list of repository ids when the + `visibility` is set to `selected`. You can manage the list of + selected repositories using the [List selected repositories for + an organization secret](https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret), + [Set selected repositories for an organization secret](https://docs.github.com/rest/actions/secrets#set-selected-repositories-for-an-organization-secret), + and [Remove selected repository from an organization secret](https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret) + endpoints. + items: + type: integer + required: + - encrypted_value + - key_id + - visibility + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + delete: + summary: Delete an organization secret + description: |- + Deletes a secret in an organization using the secret name. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#delete-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/orgs/{org}/actions/secrets/{secret_name}/repositories": + get: + summary: List selected repositories for an organization secret + description: |- + Lists all repositories that have been selected when the `visibility` + for repository access to a secret is set to `selected`. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/list-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repositories: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/public-repository-paginated" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + put: + summary: Set selected repositories for an organization secret + description: |- + Replaces all repositories for an organization secret when the `visibility` + for repository access is set to `selected`. The visibility is set when you [Create + or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/set-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#set-selected-repositories-for-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + type: array + description: An array of repository ids that can access the organization + secret. You can only provide a list of repository ids when the + `visibility` is set to `selected`. You can add and remove individual + repositories using the [Add selected repository to an organization + secret](https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret) + and [Remove selected repository from an organization secret](https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret) + endpoints. + items: + type: integer + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - 64780797 + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": + put: + summary: Add selected repository to an organization secret + description: |- + Adds a repository to an organization secret when the `visibility` for + repository access is set to `selected`. For more information about setting the visibility, see [Create or + update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/add-selected-repo-to-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: No Content when repository was added to the selected list + '409': + description: Conflict when visibility type is not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + delete: + summary: Remove selected repository from an organization secret + description: |- + Removes a repository from an organization secret when the `visibility` + for repository access is set to `selected`. The visibility is set when you [Create + or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/remove-selected-repo-from-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response when repository was removed from the selected list + '409': + description: Conflict when visibility type not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/orgs/{org}/actions/variables": + get: + summary: List organization variables + description: |- + Lists all organization variables. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/list-org-variables + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#list-organization-variables + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variables-per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - variables + properties: + total_count: + type: integer + variables: + type: array + items: + "$ref": "#/components/schemas/organization-actions-variable" + examples: + default: + "$ref": "#/components/examples/organization-actions-variables-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + post: + summary: Create an organization variable + description: |- + Creates an organization variable that you can reference in a GitHub Actions workflow. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#create-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the variable. + value: + type: string + description: The value of the variable. + visibility: + type: string + description: The type of repositories in the organization that can + access the variable. `selected` means only the repositories specified + by `selected_repository_ids` can access the variable. + enum: + - all + - private + - selected + selected_repository_ids: + type: array + description: An array of repository ids that can access the organization + variable. You can only provide a list of repository ids when the + `visibility` is set to `selected`. + items: + type: integer + required: + - name + - value + - visibility + examples: + default: + value: + name: USERNAME + value: octocat + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a variable + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/orgs/{org}/actions/variables/{name}": + get: + summary: Get an organization variable + description: |- + Gets a specific variable in an organization. + + The authenticated user must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#get-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variable-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-actions-variable" + examples: + default: + "$ref": "#/components/examples/organization-actions-variable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + patch: + summary: Update an organization variable + description: |- + Updates an organization variable that you can reference in a GitHub Actions workflow. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/update-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#update-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variable-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the variable. + value: + type: string + description: The value of the variable. + visibility: + type: string + description: The type of repositories in the organization that can + access the variable. `selected` means only the repositories specified + by `selected_repository_ids` can access the variable. + enum: + - all + - private + - selected + selected_repository_ids: + type: array + description: An array of repository ids that can access the organization + variable. You can only provide a list of repository ids when the + `visibility` is set to `selected`. + items: + type: integer + examples: + default: + value: + name: USERNAME + value: octocat + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + delete: + summary: Delete an organization variable + description: |- + Deletes an organization variable using the variable name. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#delete-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variable-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/orgs/{org}/actions/variables/{name}/repositories": + get: + summary: List selected repositories for an organization variable + description: |- + Lists all repositories that can access an organization variable + that is available to selected repositories. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/list-selected-repos-for-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#list-selected-repositories-for-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variable-name" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repositories: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/public-repository-paginated" + '409': + description: Response when the visibility of the variable is not set to + `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + put: + summary: Set selected repositories for an organization variable + description: |- + Replaces all repositories for an organization variable that is available + to selected repositories. Organization variables that are available to selected + repositories have their `visibility` field set to `selected`. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/set-selected-repos-for-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#set-selected-repositories-for-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variable-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + type: array + description: The IDs of the repositories that can access the organization + variable. + items: + type: integer + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - 64780797 + responses: + '204': + description: Response + '409': + description: Response when the visibility of the variable is not set to + `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/orgs/{org}/actions/variables/{name}/repositories/{repository_id}": + put: + summary: Add selected repository to an organization variable + description: |- + Adds a repository to an organization variable that is available to selected repositories. + Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/add-selected-repo-to-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#add-selected-repository-to-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variable-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '409': + description: Response when the visibility of the variable is not set to + `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + delete: + summary: Remove selected repository from an organization variable + description: |- + Removes a repository from an organization variable that is + available to selected repositories. Organization variables that are available to + selected repositories have their `visibility` field set to `selected`. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + tags: + - actions + operationId: actions/remove-selected-repo-from-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#remove-selected-repository-from-an-organization-variable + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/variable-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '409': + description: Response when the visibility of the variable is not set to + `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/orgs/{org}/artifacts/metadata/deployment-record": + post: + summary: Create an artifact deployment record + description: |- + Create or update deployment records for an artifact associated with an organization. + This endpoint allows you to record information about a specific artifact, such as its name, digest, environments, cluster, and deployment. + tags: + - orgs + operationId: orgs/create-artifact-deployment-record + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-an-artifact-deployment-record + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + example: libfoo + digest: + type: string + description: The hex encoded digest of the artifact. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + minLength: 1 + maxLength: 100 + x-multi-segment: true + example: 1.2.3 + status: + type: string + description: The status of the artifact. Can be either deployed + or decommissioned. + enum: + - deployed + - decommissioned + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 64 + physical_environment: + type: string + description: The physical region of the deployment. + minLength: 1 + maxLength: 64 + cluster: + type: string + description: The deployment cluster. + deployment_name: + type: string + description: The name of the deployment. + tags: + type: object + description: The tags associated with the deployment. + additionalProperties: + type: string + maxProperties: 5 + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + github_repository: + type: string + description: |- + The name of the GitHub repository associated with the artifact. This should be used + when there are no provenance attestations available for the artifact. The repository + must belong to the organization specified in the path parameter. + + If a provenance attestation is available for the artifact, the API will use + the repository information from the attestation instead of this parameter. + minLength: 1 + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + example: my-github-repo + required: + - name + - digest + - status + - logical_environment + - deployment_name + examples: + default: + value: + name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + status: deployed + logical_environment: prod + physical_environment: pacific-east + cluster: moda-1 + deployment_name: deployment-pod + tags: + data-access: sensitive + responses: + '200': + description: Artifact deployment record stored successfully. + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of deployment records created + type: integer + deployment_records: + type: array + items: + "$ref": "#/components/schemas/artifact-deployment-record" + examples: + default: + "$ref": "#/components/examples/artifact-deployment-record-list" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}": + post: + summary: Set cluster deployment records + description: |- + Set deployment records for a given cluster. + If proposed records in the 'deployments' field have identical 'cluster', 'logical_environment', + 'physical_environment', and 'deployment_name' values as existing records, the existing records will be updated. + If no existing records match, new records will be created. + tags: + - orgs + operationId: orgs/set-cluster-deployment-records + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#set-cluster-deployment-records + parameters: + - "$ref": "#/components/parameters/org" + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 64 + pattern: "^[a-zA-Z0-9._-]+$" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 64 + physical_environment: + type: string + description: The physical region of the deployment. + minLength: 1 + maxLength: 64 + deployments: + type: array + description: The list of deployments to record. + items: + type: object + maxLength: 100 + properties: + name: + type: string + description: | + The name of the artifact. Note that if multiple deployments have identical 'digest' parameter values, + the name parameter must also be identical across all entries. + minLength: 1 + maxLength: 256 + digest: + type: string + description: | + The hex encoded digest of the artifact. Note that if multiple deployments have identical 'digest' parameter values, + the name and version parameters must also be identical across all entries. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: | + The artifact version. Note that if multiple deployments have identical 'digest' parameter values, + the version parameter must also be identical across all entries. + minLength: 1 + maxLength: 100 + x-multi-segment: true + example: 1.2.3 + status: + type: string + description: The deployment status of the artifact. + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: | + The unique identifier for the deployment represented by the new record. To accommodate differing + containers and namespaces within a record set, the following format is recommended: + {namespaceName}-{deploymentName}-{containerName}. + The deployment_name must be unique across all entries in the deployments array. + minLength: 1 + maxLength: 128 + github_repository: + type: string + description: |- + The name of the GitHub repository associated with the artifact. This should be used + when there are no provenance attestations available for the artifact. The repository + must belong to the organization specified in the path parameter. + + If a provenance attestation is available for the artifact, the API will use + the repository information from the attestation instead of this parameter. + minLength: 1 + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + example: my-github-repo + tags: + type: object + description: Key-value pairs to tag the deployment record. + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + required: + - name + - deployment_name + - digest + required: + - logical_environment + - deployments + examples: + default: + value: + logical_environment: prod + physical_environment: pacific-east + deployments: + - name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + version: 2.1.0 + status: deployed + deployment_name: deployment-pod + tags: + runtime-risk: sensitive-data + responses: + '200': + description: 'Deployment records created or updated successfully. + + ' + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of deployment records created + type: integer + deployment_records: + type: array + items: + "$ref": "#/components/schemas/artifact-deployment-record" + examples: + default: + "$ref": "#/components/examples/artifact-deployment-record-list" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/storage-record": + post: + summary: Create artifact metadata storage record + description: |- + Create metadata storage records for artifacts associated with an organization. + This endpoint will create a new artifact storage record on behalf of any artifact matching the provided digest and + associated with a repository owned by the organization. + tags: + - orgs + operationId: orgs/create-artifact-storage-record + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the artifact. + example: libfoo + minLength: 1 + maxLength: 256 + digest: + type: string + description: The digest of the artifact (algorithm:hex-encoded-digest). + example: sha256:0ecbaa601dba202129058746c7d8e3f282d0efb5fff0... + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + minLength: 1 + maxLength: 100 + x-multi-segment: true + example: 1.2.3 + artifact_url: + type: string + format: uri + pattern: "^https://" + description: The URL where the artifact is stored. + example: https://reg.example.com/artifactory/bar/libfoo-1.2.3 + path: + type: string + format: uri + description: The path of the artifact. + example: com/github/bar/libfoo-1.2.3 + registry_url: + type: string + format: uri + pattern: "^https://" + description: The base URL of the artifact registry. + example: https://reg.example.com/artifactory/ + minLength: 1 + repository: + type: string + description: The repository name within the registry. + example: bar + status: + type: string + description: The status of the artifact (e.g., active, inactive). + example: active + enum: + - active + - eol + - deleted + default: active + github_repository: + type: string + description: |- + The name of the GitHub repository associated with the artifact. This should be used + when there are no provenance attestations available for the artifact. The repository + must belong to the organization specified in the path parameter. + + If a provenance attestation is available for the artifact, the API will use + the repository information from the attestation instead of this parameter. + minLength: 1 + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + example: my-github-repo + required: + - name + - digest + - registry_url + examples: + default: + value: + name: libfoo + version: 1.2.3 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + artifact_url: https://reg.example.com/artifactory/bar/libfoo-1.2.3 + registry_url: https://reg.example.com/artifactory/ + repository: bar + status: active + responses: + '200': + description: Artifact metadata storage record stored successfully. + content: + application/json: + schema: + type: object + properties: + total_count: + type: integer + example: 1 + storage_records: + type: array + items: + type: object + properties: + id: + type: integer + name: + type: string + digest: + type: string + artifact_url: + type: string + nullable: true + registry_url: + type: string + repository: + type: string + nullable: true + status: + type: string + created_at: + type: string + updated_at: + type: string + examples: + default: + value: + total_count: 1 + storage_records: + - name: libfoo + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + artifact_url: https://reg.example.com/artifactory/bar/libfoo-1.2.3 + registry_url: https://reg.example.com/artifactory/ + repository: bar + status: active + created_at: '2023-10-01T12:00:00Z' + updated_at: '2023-10-01T12:00:00Z' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records": + get: + summary: List artifact deployment records + description: List deployment records for an artifact metadata associated with + an organization. + tags: + - orgs + operationId: orgs/list-artifact-deployment-records + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-deployment-records + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/subject-digest" + responses: + '200': + description: Successful response + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of deployment records for this digest + and organization + example: 3 + type: integer + deployment_records: + type: array + items: + "$ref": "#/components/schemas/artifact-deployment-record" + examples: + default: + "$ref": "#/components/examples/artifact-deployment-record-list" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/{subject_digest}/metadata/storage-records": + get: + summary: List artifact storage records + description: |- + List a collection of artifact storage records with a given subject digest that are associated with repositories owned by an organization. + + The collection of storage records returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `content:read` permission is required. + tags: + - orgs + operationId: orgs/list-artifact-storage-records + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-storage-records + parameters: + - "$ref": "#/components/parameters/org" + - name: subject_digest + description: The parameter should be set to the attestation's subject's SHA256 + digest, in the form `sha256:HEX_DIGEST`. + in: path + required: true + example: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + schema: + type: string + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + x-multi-segment: true + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of storage records for this digest and + organization + example: 3 + type: integer + storage_records: + type: array + items: + type: object + properties: + id: + type: integer + name: + type: string + digest: + type: string + artifact_url: + type: string + registry_url: + type: string + repository: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + examples: + default: + value: + storage_records: + - name: libfoo-1.2.3 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + artifact_url: https://reg.example.com/artifactory/bar/libfoo-1.2.3 + registry_url: https://reg.example.com/artifactory/ + repository: bar + status: active + created_at: '2023-10-01T12:00:00Z' + updated_at: '2023-10-01T12:00:00Z' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/attestations/bulk-list": + post: + summary: List attestations by bulk subject digests + description: |- + List a collection of artifact attestations associated with any entry in a list of subject digests owned by an organization. + + The collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required. + + **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + tags: + - orgs + operationId: orgs/list-attestations-bulk + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/attestations#list-attestations-by-bulk-subject-digests + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + subject_digests: + type: array + items: + type: string + description: List of subject digests to fetch attestations for. + minItems: 1 + maxItems: 1024 + predicate_type: + type: string + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text + for custom predicate types. + required: + - subject_digests + examples: + default: + "$ref": "#/components/examples/bulk-subject-digest-body" + withPredicateType: + "$ref": "#/components/examples/bulk-subject-digest-body-with-predicate-type" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + attestations_subject_digests: + type: object + additionalProperties: + nullable: true + type: array + items: + type: object + properties: + bundle: + type: object + properties: + mediaType: + type: string + verificationMaterial: + type: object + properties: {} + additionalProperties: true + dsseEnvelope: + type: object + properties: {} + additionalProperties: true + description: The bundle of the attestation. + repository_id: + type: integer + bundle_url: + type: string + description: Mapping of subject digest to bundles. + page_info: + type: object + properties: + has_next: + type: boolean + description: Indicates whether there is a next page. + has_previous: + type: boolean + description: Indicates whether there is a previous page. + next: + type: string + description: The cursor to the next page. + previous: + type: string + description: The cursor to the previous page. + description: Information about the current page. + examples: + default: + "$ref": "#/components/examples/list-attestations-bulk" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: attestations + "/orgs/{org}/attestations/delete-request": + post: + summary: Delete attestations in bulk + description: Delete artifact attestations in bulk by either subject digests + or unique ID. + tags: + - orgs + operationId: orgs/delete-attestations-bulk + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/attestations#delete-attestations-in-bulk + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + oneOf: + - properties: + subject_digests: + type: array + items: + type: string + description: List of subject digests associated with the artifact + attestations to delete. + minItems: 1 + maxItems: 1024 + required: + - subject_digests + - properties: + attestation_ids: + type: array + items: + type: integer + description: List of unique IDs associated with the artifact attestations + to delete. + minItems: 1 + maxItems: 1024 + required: + - attestation_ids + description: The request body must include either `subject_digests` + or `attestation_ids`, but not both. + examples: + by-subject-digests: + summary: Delete by subject digests + value: + subject_digests: + - sha256:abc123 + - sha512:def456 + by-attestation-ids: + summary: Delete by attestation IDs + value: + attestation_ids: + - 111 + - 222 + responses: + '200': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: attestations + "/orgs/{org}/attestations/digest/{subject_digest}": + delete: + summary: Delete attestations by subject digest + description: Delete an artifact attestation by subject digest. + tags: + - orgs + operationId: orgs/delete-attestations-by-subject-digest + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/attestations#delete-attestations-by-subject-digest + parameters: + - "$ref": "#/components/parameters/org" + - name: subject_digest + description: Subject Digest + in: path + required: true + schema: + type: string + x-multi-segment: true + responses: + '200': + description: Response + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: attestations + "/orgs/{org}/attestations/repositories": + get: + summary: List attestation repositories + description: |- + List repositories owned by the provided organization that have created at least one attested artifact + Results will be sorted in ascending order by repository ID + tags: + - orgs + operationId: orgs/list-attestation-repositories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/attestations#list-attestation-repositories + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/org" + - name: predicate_type + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text + for custom predicate types. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + type: integer + name: + type: string + examples: + default: + "$ref": "#/components/examples/list-attestation-repositories" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: attestations + "/orgs/{org}/attestations/{attestation_id}": + delete: + summary: Delete attestations by ID + description: Delete an artifact attestation by unique ID that is associated + with a repository owned by an org. + tags: + - orgs + operationId: orgs/delete-attestations-by-id + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/attestations#delete-attestations-by-id + parameters: + - "$ref": "#/components/parameters/org" + - name: attestation_id + description: Attestation ID + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: attestations + "/orgs/{org}/attestations/{subject_digest}": + get: + summary: List attestations + description: |- + List a collection of artifact attestations with a given subject digest that are associated with repositories owned by an organization. + + The collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required. + + **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + tags: + - orgs + operationId: orgs/list-attestations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/attestations#list-attestations + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/org" + - name: subject_digest + description: The parameter should be set to the attestation's subject's SHA256 + digest, in the form `sha256:HEX_DIGEST`. + in: path + required: true + schema: + type: string + x-multi-segment: true + - name: predicate_type + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text + for custom predicate types. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + attestations: + type: array + items: + type: object + properties: + bundle: + type: object + properties: + mediaType: + type: string + verificationMaterial: + type: object + properties: {} + additionalProperties: true + dsseEnvelope: + type: object + properties: {} + additionalProperties: true + description: |- + The attestation's Sigstore Bundle. + Refer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information. + repository_id: + type: integer + bundle_url: + type: string + initiator: + type: string + examples: + default: + "$ref": "#/components/examples/list-attestations" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: attestations + "/orgs/{org}/blocks": + get: + summary: List users blocked by an organization + description: List the users blocked by an organization. + tags: + - orgs + operationId: orgs/list-blocked-users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: blocking + "/orgs/{org}/blocks/{username}": + get: + summary: Check if a user is blocked by an organization + description: Returns a 204 if the given user is blocked by the given organization. + Returns a 404 if the organization is not blocking the user, or if the user + account has been identified as spam by GitHub. + tags: + - orgs + operationId: orgs/check-blocked-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: If the user is blocked + '404': + description: If the user is not blocked + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: blocking + put: + summary: Block a user from an organization + description: Blocks the given user on behalf of the specified organization and + returns a 204. If the organization cannot block the given user a 422 is returned. + tags: + - orgs + operationId: orgs/block-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: blocking + delete: + summary: Unblock a user from an organization + description: Unblocks the given user on behalf of the specified organization. + tags: + - orgs + operationId: orgs/unblock-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: blocking + "/orgs/{org}/campaigns": + get: + summary: List campaigns for an organization + description: |- + Lists campaigns in an organization. + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + tags: + - campaigns + operationId: campaigns/list-org-campaigns + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/campaigns/campaigns#list-campaigns-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/direction" + - name: state + description: If specified, only campaigns with this state will be returned. + in: query + required: false + schema: + "$ref": "#/components/schemas/campaign-state" + - name: sort + description: The property by which to sort the results. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - ends_at + - published + default: created + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/campaign-summary" + examples: + default: + "$ref": "#/components/examples/campaign-org-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: campaigns + subcategory: campaigns + post: + summary: Create a campaign for an organization + description: |- + Create a campaign for an organization. + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + + Fine-grained tokens must have the "Code scanning alerts" repository permissions (read) on all repositories included + in the campaign. + tags: + - campaigns + operationId: campaigns/create-campaign + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/campaigns/campaigns#create-a-campaign-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + description: The name of the campaign + type: string + minLength: 1 + maxLength: 50 + description: + description: A description for the campaign + type: string + minLength: 1 + maxLength: 255 + managers: + description: The logins of the users to set as the campaign managers. + At this time, only a single manager can be supplied. + type: array + maxItems: 10 + items: + description: The login of each manager + type: string + team_managers: + description: The slugs of the teams to set as the campaign managers. + type: array + maxItems: 10 + items: + description: The slug of each team + type: string + ends_at: + description: The end date and time of the campaign. The date must + be in the future. + type: string + format: date-time + contact_link: + description: The contact link of the campaign. Must be a URI. + type: string + format: uri + nullable: true + code_scanning_alerts: + description: The code scanning alerts to include in this campaign + type: array + minItems: 1 + items: + type: object + additionalProperties: false + properties: + repository_id: + type: integer + description: The repository id + alert_numbers: + type: array + description: The alert numbers + minItems: 1 + items: + type: integer + required: + - repository_id + - alert_numbers + nullable: true + generate_issues: + description: If true, will automatically generate issues for the + campaign. The default is false. + type: boolean + default: false + required: + - name + - description + - ends_at + oneOf: + - required: + - code_scanning_alerts + - required: + - secret_scanning_alerts + examples: + default: + value: + name: Critical CodeQL alerts + description: Address critical alerts before they are exploited to + prevent breaches, protect sensitive data, and mitigate financial + and reputational damage. + managers: + - octocat + ends_at: '2024-03-14T00:00:00Z' + code_scanning_alerts: + - repository_id: 1296269 + alert_numbers: + - 1 + - 2 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/campaign-summary" + examples: + default: + "$ref": "#/components/examples/campaign-summary" + '400': + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Unprocessable Entity + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '429': + description: Too Many Requests + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: campaigns + subcategory: campaigns + "/orgs/{org}/campaigns/{campaign_number}": + get: + summary: Get a campaign for an organization + description: |- + Gets a campaign for an organization. + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + tags: + - campaigns + operationId: campaigns/get-campaign-summary + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/campaigns/campaigns#get-a-campaign-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - name: campaign_number + description: The campaign number. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/campaign-summary" + examples: + default: + "$ref": "#/components/examples/campaign-summary" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Unprocessable Entity + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: campaigns + subcategory: campaigns + patch: + summary: Update a campaign + description: |- + Updates a campaign in an organization. + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + tags: + - campaigns + operationId: campaigns/update-campaign + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/campaigns/campaigns#update-a-campaign + parameters: + - "$ref": "#/components/parameters/org" + - name: campaign_number + description: The campaign number. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + description: The name of the campaign + type: string + minLength: 1 + maxLength: 50 + description: + description: A description for the campaign + type: string + minLength: 1 + maxLength: 255 + managers: + description: The logins of the users to set as the campaign managers. + At this time, only a single manager can be supplied. + type: array + maxItems: 10 + items: + type: string + team_managers: + description: The slugs of the teams to set as the campaign managers. + type: array + maxItems: 10 + items: + description: The slug of each team + type: string + ends_at: + description: The end date and time of the campaign, in ISO 8601 + format':' YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + contact_link: + description: The contact link of the campaign. Must be a URI. + type: string + format: uri + nullable: true + state: + "$ref": "#/components/schemas/campaign-state" + examples: + default: + value: + name: Critical CodeQL alerts + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/campaign-summary" + examples: + default: + "$ref": "#/components/examples/campaign-summary" + '400': + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Unprocessable Entity + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: campaigns + subcategory: campaigns + delete: + summary: Delete a campaign for an organization + description: |- + Deletes a campaign in an organization. + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + tags: + - campaigns + operationId: campaigns/delete-campaign + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/campaigns/campaigns#delete-a-campaign-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - name: campaign_number + description: The campaign number. + in: path + required: true + schema: + type: integer + responses: + '204': + description: Deletion successful + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: campaigns + subcategory: campaigns + "/orgs/{org}/code-scanning/alerts": + get: + summary: List code scanning alerts for an organization + description: |- + Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. 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)." + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/list-alerts-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/tool-name" + - "$ref": "#/components/parameters/tool-guid" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/direction" + - name: state + description: If specified, only code scanning alerts with this state will + be returned. + in: query + required: false + schema: + "$ref": "#/components/schemas/code-scanning-alert-state-query" + - name: sort + description: The property by which to sort the results. + in: query + required: false + schema: + type: string + enum: + - created + - updated + default: created + - name: severity + description: If specified, only code scanning alerts with this severity will + be returned. + in: query + required: false + schema: + "$ref": "#/components/schemas/code-scanning-alert-severity" + - name: assignees + description: | + Filter alerts by assignees. Provide a comma-separated list of user handles (e.g., `octocat` or `octocat,hubot`). + Use `*` to list alerts with at least one assignee or `none` to list alerts with no assignees. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-scanning-organization-alert-items" + examples: + default: + "$ref": "#/components/examples/code-scanning-organization-alert-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + "/orgs/{org}/code-security/configurations": + get: + summary: Get code security configurations for an organization + description: |- + Lists all code security configurations available in an organization. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-configurations-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-code-security-configurations-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - name: target_type + in: query + description: The target type of the code security configuration + required: false + schema: + type: string + enum: + - global + - all + default: all + - name: per_page + in: query + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + required: false + schema: + type: integer + default: 30 + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/code-security-configuration-list" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + post: + summary: Create a code security configuration + description: |- + Creates a code security configuration in an organization. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/create-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#create-a-code-security-configuration + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the code security configuration. Must be + unique within the organization. + description: + type: string + description: A description of the code security configuration + maxLength: 255 + advanced_security: + type: string + description: | + The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features. + + > [!WARNING] + > `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features. + enum: + - enabled + - disabled + - code_security + - secret_protection + default: disabled + code_security: + type: string + description: The enablement status of GitHub Code Security features. + enum: + - enabled + - disabled + - not_set + dependency_graph: + type: string + description: The enablement status of Dependency Graph + enum: + - enabled + - disabled + - not_set + default: enabled + dependency_graph_autosubmit_action: + type: string + description: The enablement status of Automatic dependency submission + enum: + - enabled + - disabled + - not_set + default: disabled + dependency_graph_autosubmit_action_options: + type: object + description: Feature options for Automatic dependency submission + properties: + labeled_runners: + type: boolean + description: Whether to use runners labeled with 'dependency-submission' + or standard GitHub runners. + default: false + dependabot_alerts: + type: string + description: The enablement status of Dependabot alerts + enum: + - enabled + - disabled + - not_set + default: disabled + dependabot_security_updates: + type: string + description: The enablement status of Dependabot security updates + enum: + - enabled + - disabled + - not_set + default: disabled + code_scanning_options: + "$ref": "#/components/schemas/code-scanning-options" + code_scanning_default_setup: + type: string + description: The enablement status of code scanning default setup + enum: + - enabled + - disabled + - not_set + default: disabled + code_scanning_default_setup_options: + "$ref": "#/components/schemas/code-scanning-default-setup-options" + code_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of code scanning delegated alert + dismissal + enum: + - enabled + - disabled + - not_set + default: not_set + secret_protection: + type: string + description: The enablement status of GitHub Secret Protection features. + enum: + - enabled + - disabled + - not_set + secret_scanning: + type: string + description: The enablement status of secret scanning + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_push_protection: + type: string + description: The enablement status of secret scanning push protection + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_delegated_bypass: + type: string + description: The enablement status of secret scanning delegated + bypass + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_delegated_bypass_options: + type: object + description: Feature options for secret scanning delegated bypass + properties: + reviewers: + type: array + description: The bypass reviewers for secret scanning delegated + bypass + 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 + secret_scanning_validity_checks: + type: string + description: The enablement status of secret scanning validity checks + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_non_provider_patterns: + type: string + description: The enablement status of secret scanning non provider + patterns + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_generic_secrets: + type: string + description: The enablement status of Copilot secret scanning + enum: + - enabled + - disabled + - not_set + default: disabled + secret_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of secret scanning delegated + alert dismissal + enum: + - enabled + - disabled + - not_set + private_vulnerability_reporting: + type: string + description: The enablement status of private vulnerability reporting + enum: + - enabled + - disabled + - not_set + default: disabled + enforcement: + type: string + description: The enforcement status for a security configuration + enum: + - enforced + - unenforced + default: enforced + required: + - name + - description + examples: + default: + summary: Example for a code security configuration + value: + name: octo-org recommended settings + description: This is a code security configuration for octo-org + advanced_security: enabled + dependabot_alerts: enabled + dependabot_security_updates: not_set + secret_scanning: enabled + responses: + '201': + description: Successfully created code security configuration + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/code-security-configuration" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/orgs/{org}/code-security/configurations/defaults": + get: + summary: Get default code security configurations + description: |- + Lists the default code security configurations for an organization. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-default-configurations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-default-code-security-configurations + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-default-configurations" + examples: + default: + "$ref": "#/components/examples/code-security-default-configurations" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/orgs/{org}/code-security/configurations/detach": + delete: + summary: Detach configurations from repositories + description: |- + Detach code security configuration(s) from a set of repositories. + Repositories will retain their settings but will no longer be associated with the configuration. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/detach-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#detach-configurations-from-repositories + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + selected_repository_ids: + type: array + description: An array of repository IDs to detach from configurations. + Up to 250 IDs can be provided. + minItems: 1 + maxItems: 250 + items: + type: integer + description: Unique identifier of the repository. + examples: + default: + summary: Example for detaching repositories from configurations. + value: + selected_repository_ids: + - 32 + - 91 + responses: + '204': + "$ref": "#/components/responses/no_content" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/orgs/{org}/code-security/configurations/{configuration_id}": + get: + summary: Get a code security configuration + description: |- + Gets a code security configuration available in an organization. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-a-code-security-configuration + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/configuration-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/code-security-configuration" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + patch: + summary: Update a code security configuration + description: |- + Updates a code security configuration in an organization. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/update-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#update-a-code-security-configuration + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/configuration-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the code security configuration. Must be + unique within the organization. + description: + type: string + description: A description of the code security configuration + maxLength: 255 + advanced_security: + type: string + description: | + The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features. + + > [!WARNING] + > `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features. + enum: + - enabled + - disabled + - code_security + - secret_protection + code_security: + type: string + description: The enablement status of GitHub Code Security features. + enum: + - enabled + - disabled + - not_set + dependency_graph: + type: string + description: The enablement status of Dependency Graph + enum: + - enabled + - disabled + - not_set + dependency_graph_autosubmit_action: + type: string + description: The enablement status of Automatic dependency submission + enum: + - enabled + - disabled + - not_set + dependency_graph_autosubmit_action_options: + type: object + description: Feature options for Automatic dependency submission + properties: + labeled_runners: + type: boolean + description: Whether to use runners labeled with 'dependency-submission' + or standard GitHub runners. + dependabot_alerts: + type: string + description: The enablement status of Dependabot alerts + enum: + - enabled + - disabled + - not_set + dependabot_security_updates: + type: string + description: The enablement status of Dependabot security updates + enum: + - enabled + - disabled + - not_set + code_scanning_default_setup: + type: string + description: The enablement status of code scanning default setup + enum: + - enabled + - disabled + - not_set + code_scanning_default_setup_options: + "$ref": "#/components/schemas/code-scanning-default-setup-options" + code_scanning_options: + "$ref": "#/components/schemas/code-scanning-options" + code_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of code scanning delegated alert + dismissal + enum: + - enabled + - disabled + - not_set + default: disabled + secret_protection: + type: string + description: The enablement status of GitHub Secret Protection features. + enum: + - enabled + - disabled + - not_set + secret_scanning: + type: string + description: The enablement status of secret scanning + enum: + - enabled + - disabled + - not_set + secret_scanning_push_protection: + type: string + description: The enablement status of secret scanning push protection + enum: + - enabled + - disabled + - not_set + secret_scanning_delegated_bypass: + type: string + description: The enablement status of secret scanning delegated + bypass + enum: + - enabled + - disabled + - not_set + secret_scanning_delegated_bypass_options: + type: object + description: Feature options for secret scanning delegated bypass + properties: + reviewers: + type: array + description: The bypass reviewers for secret scanning delegated + bypass + 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 + secret_scanning_validity_checks: + type: string + description: The enablement status of secret scanning validity checks + enum: + - enabled + - disabled + - not_set + secret_scanning_non_provider_patterns: + type: string + description: The enablement status of secret scanning non-provider + patterns + enum: + - enabled + - disabled + - not_set + secret_scanning_generic_secrets: + type: string + description: The enablement status of Copilot secret scanning + enum: + - enabled + - disabled + - not_set + secret_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of secret scanning delegated + alert dismissal + enum: + - enabled + - disabled + - not_set + private_vulnerability_reporting: + type: string + description: The enablement status of private vulnerability reporting + enum: + - enabled + - disabled + - not_set + enforcement: + type: string + description: The enforcement status for a security configuration + enum: + - enforced + - unenforced + examples: + default: + summary: Example for updating a code security configuration + value: + name: octo-org recommended settings v2 + secret_scanning: disabled + code_scanning_default_setup: enabled + responses: + '200': + description: Response when a configuration is updated + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + "$ref": "#/components/examples/code-security-configuration-updated" + '204': + description: Response when no new updates are made + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + delete: + summary: Delete a code security configuration + description: |- + Deletes the desired code security configuration from an organization. + Repositories attached to the configuration will retain their settings but will no longer be associated with + the configuration. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/delete-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#delete-a-code-security-configuration + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/configuration-id" + responses: + '204': + "$ref": "#/components/responses/no_content" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/orgs/{org}/code-security/configurations/{configuration_id}/attach": + post: + summary: Attach a configuration to repositories + description: |- + Attach a code security configuration to a set of repositories. If the repositories specified are already attached to a configuration, they will be re-attached to the provided configuration. + + If insufficient GHAS licenses are available to attach the configuration to a repository, only free features will be enabled. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/attach-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#attach-a-configuration-to-repositories + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/configuration-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + scope: + type: string + description: The type of repositories to attach the configuration + to. `selected` means the configuration will be attached to only + the repositories specified by `selected_repository_ids` + enum: + - all + - all_without_configurations + - public + - private_or_internal + - selected + selected_repository_ids: + type: array + description: An array of repository IDs to attach the configuration + to. You can only provide a list of repository ids when the `scope` + is set to `selected`. + items: + type: integer + description: Unique identifier of the repository. + required: + - scope + examples: + default: + summary: Example for attaching a configuration to some repositories + value: + scope: selected + selected_repository_ids: + - 32 + - 91 + responses: + '202': + "$ref": "#/components/responses/accepted" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/orgs/{org}/code-security/configurations/{configuration_id}/defaults": + put: + summary: Set a code security configuration as a default for an organization + description: |- + Sets a code security configuration as a default to be applied to new repositories in your organization. + + This configuration will be applied to the matching repository type (all, none, public, private and internal) by default when they are created. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/set-configuration-as-default + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/configuration-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + default_for_new_repos: + type: string + description: Specify which types of repository this security configuration + should be applied to by default. + enum: + - all + - none + - private_and_internal + - public + examples: + default: + summary: Set this configuration to be enabled by default on all new + repositories. + value: + default_for_new_repos: all + responses: + '200': + description: Default successfully changed. + content: + application/json: + schema: + type: object + properties: + default_for_new_repos: + type: string + description: Specifies which types of repository this security + configuration is applied to by default. + enum: + - all + - none + - private_and_internal + - public + configuration: + "$ref": "#/components/schemas/code-security-configuration" + examples: + default: + value: + default_for_new_repos: all + configuration: + "$ref": "#/components/examples/code-security-configuration" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/orgs/{org}/code-security/configurations/{configuration_id}/repositories": + get: + summary: Get repositories associated with a code security configuration + description: |- + Lists the repositories associated with a code security configuration in an organization. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-repositories-for-configuration + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-repositories-associated-with-a-code-security-configuration + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/configuration-id" + - name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + required: false + schema: + type: integer + default: 30 + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - name: status + description: |- + A comma-separated list of statuses. If specified, only repositories with these attachment statuses will be returned. + + Can be: `all`, `attached`, `attaching`, `detached`, `removed`, `enforced`, `failed`, `updating`, `removed_by_enterprise` + in: query + required: false + schema: + type: string + default: all + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-security-configuration-repositories" + examples: + default: + summary: Example of code security configuration repositories + value: + - status: attached + repository: + "$ref": "#/components/examples/simple-repository" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/orgs/{org}/codespaces": + get: + summary: List codespaces for the organization + description: |- + Lists the codespaces associated to a specified organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-in-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - codespaces + properties: + total_count: + type: integer + codespaces: + type: array + items: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespaces-list" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organizations + "/orgs/{org}/codespaces/access": + put: + summary: Manage access control for organization codespaces + description: |- + Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/set-codespaces-access + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces + parameters: + - "$ref": "#/components/parameters/org" + deprecated: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + visibility: + type: string + description: Which users can access codespaces in the organization. + `disabled` means that no users can access codespaces in the organization. + enum: + - disabled + - selected_members + - all_members + - all_members_and_outside_collaborators + selected_usernames: + type: array + description: The usernames of the organization members who should + have access to codespaces in the organization. Required when `visibility` + is `selected_members`. The provided list of usernames will replace + any existing value. + items: + type: string + maxItems: 100 + required: + - visibility + examples: + default: + value: + visibility: selected_members + selected_usernames: + - johnDoe + - atomIO + responses: + '204': + description: Response when successfully modifying permissions. + '304': + "$ref": "#/components/responses/not_modified" + '400': + description: Users are neither members nor collaborators of this organization. + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organizations + "/orgs/{org}/codespaces/access/selected_users": + post: + summary: Add users to Codespaces access for an organization + description: |- + Codespaces for the specified users will be billed to the organization. + + To use this endpoint, the access settings for the organization must be set to `selected_members`. + For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/set-codespaces-access-users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organizations#add-users-to-codespaces-access-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + deprecated: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_usernames: + type: array + description: The usernames of the organization members whose codespaces + be billed to the organization. + items: + type: string + maxItems: 100 + required: + - selected_usernames + examples: + default: + value: + selected_usernames: + - johnDoe + - atomIO + responses: + '204': + description: Response when successfully modifying permissions. + '304': + "$ref": "#/components/responses/not_modified" + '400': + description: Users are neither members nor collaborators of this organization. + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organizations + delete: + summary: Remove users from Codespaces access for an organization + description: |- + Codespaces for the specified users will no longer be billed to the organization. + + To use this endpoint, the access settings for the organization must be set to `selected_members`. + For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/delete-codespaces-access-users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organizations#remove-users-from-codespaces-access-for-an-organization + deprecated: true + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_usernames: + type: array + description: The usernames of the organization members whose codespaces + should not be billed to the organization. + items: + type: string + maxItems: 100 + required: + - selected_usernames + examples: + default: + value: + selected_usernames: + - johnDoe + - atomIO + responses: + '204': + description: Response when successfully modifying permissions. + '304': + "$ref": "#/components/responses/not_modified" + '400': + description: Users are neither members nor collaborators of this organization. + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organizations + "/orgs/{org}/codespaces/secrets": + get: + summary: List organization secrets + description: |- + Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + values. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-org-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/codespaces-org-secret" + examples: + default: + "$ref": "#/components/examples/repo-codespaces-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + "/orgs/{org}/codespaces/secrets/public-key": + get: + summary: Get an organization public key + description: |- + Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-org-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespaces-public-key" + examples: + default: + "$ref": "#/components/examples/codespaces-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + "/orgs/{org}/codespaces/secrets/{secret_name}": + get: + summary: Get an organization secret + description: |- + Gets an organization development environment secret without revealing its encrypted value. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespaces-org-secret" + examples: + default: + "$ref": "#/components/examples/repo-codespaces-secret" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + put: + summary: Create or update an organization secret + description: |- + Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/create-or-update-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get an organization public + key](https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: The ID of the key you used to encrypt the secret. + visibility: + type: string + description: Which type of organization repositories have access + to the organization secret. `selected` means only the repositories + specified by `selected_repository_ids` can access the secret. + enum: + - all + - private + - selected + selected_repository_ids: + type: array + description: An array of repository IDs that can access the organization + secret. You can only provide a list of repository IDs when the + `visibility` is set to `selected`. You can manage the list of + selected repositories using the [List selected repositories for + an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret), + [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret), + and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) + endpoints. + items: + type: integer + required: + - visibility + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response when updating a secret + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + delete: + summary: Delete an organization secret + description: |- + Deletes an organization development environment secret using the secret name. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/delete-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#delete-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories": + get: + summary: List selected repositories for an organization secret + description: |- + Lists all repositories that have been selected when the `visibility` + for repository access to a secret is set to `selected`. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repositories: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/public-repository-paginated" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + put: + summary: Set selected repositories for an organization secret + description: |- + Replaces all repositories for an organization development environment secret when the `visibility` + for repository access is set to `selected`. The visibility is set when you [Create + or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/set-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + type: array + description: An array of repository ids that can access the organization + secret. You can only provide a list of repository ids when the + `visibility` is set to `selected`. You can add and remove individual + repositories using the [Set selected repositories for an organization + secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret) + and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) + endpoints. + items: + type: integer + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - 64780797 + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '409': + description: Conflict when visibility type not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": + put: + summary: Add selected repository to an organization secret + description: |- + Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/add-selected-repo-to-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#add-selected-repository-to-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: No Content when repository was added to the selected list + '404': + "$ref": "#/components/responses/not_found" + '409': + description: Conflict when visibility type is not set to selected + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + delete: + summary: Remove selected repository from an organization secret + description: |- + Removes a repository from an organization development environment secret when the `visibility` + for repository access is set to `selected`. The visibility is set when you [Create + or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/remove-selected-repo-from-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response when repository was removed from the selected list + '404': + "$ref": "#/components/responses/not_found" + '409': + description: Conflict when visibility type not set to selected + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organization-secrets + "/orgs/{org}/copilot/billing": + get: + summary: Get Copilot seat information and settings for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Gets information about an organization's Copilot subscription, including seat breakdown + and feature policies. To configure these settings, go to your organization's settings on GitHub.com. + For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)." + + Only organization owners can view details about the organization's Copilot Business or Copilot Enterprise subscription. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/get-copilot-organization-details + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: OK + content: + application/json: + schema: + "$ref": "#/components/schemas/copilot-organization-details" + examples: + default: + "$ref": "#/components/examples/copilot-organization-details" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: There is a problem with your account's associated payment method. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-user-management + "/orgs/{org}/copilot/billing/seats": + get: + summary: List all Copilot seat assignments for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Lists all Copilot seats for which an organization with a Copilot Business or Copilot Enterprise subscription is currently being billed. + Only organization owners can view assigned seats. + + Each seat object contains information about the assigned user's most recent Copilot activity. Users must have telemetry enabled in their IDE for Copilot in the IDE activity to be reflected in `last_activity_at`. + For more information about activity data, see [Metrics data properties for GitHub Copilot](https://docs.github.com/copilot/reference/metrics-data). + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/list-copilot-seats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/page" + - name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 50 + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + total_seats: + type: integer + description: Total number of Copilot seats for the organization + currently being billed. + seats: + type: array + items: + "$ref": "#/components/schemas/copilot-seat-details" + examples: + default: + "$ref": "#/components/examples/copilot-seats-list" + headers: + Link: + "$ref": "#/components/headers/link" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-user-management + "/orgs/{org}/copilot/billing/selected_teams": + post: + summary: Add teams to the Copilot subscription for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Purchases a GitHub Copilot seat for all users within each specified team. + The organization will be billed for each seat based on the organization's Copilot plan. For more information about Copilot pricing, see "[About billing for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/about-billing-for-github-copilot-in-your-organization)." + + Only organization owners can purchase Copilot seats for their organization members. The organization must have a Copilot Business or Copilot Enterprise subscription and a configured suggestion matching policy. + For more information about setting up a Copilot subscription, see "[Subscribing to Copilot for your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/subscribing-to-copilot-for-your-organization)." + For more information about setting a suggestion matching policy, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/setting-policies-for-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#policies-for-suggestion-matching)." + + The response contains the total number of new seats that were created and existing seats that were refreshed. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/add-copilot-seats-for-teams + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + content: + application/json: + schema: + type: object + properties: + selected_teams: + type: array + description: List of team names within the organization to which + to grant access to GitHub Copilot. + items: + type: string + minItems: 1 + required: + - selected_teams + examples: + default: + value: + selected_teams: + - engteam1 + - engteam2 + - engteam3 + required: true + responses: + '201': + description: OK + content: + application/json: + schema: + type: object + description: The total number of seats created for members of the + specified team(s). + properties: + seats_created: + type: integer + required: + - seats_created + examples: + default: + value: + seats_created: 5 + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Copilot Business or Enterprise is not enabled for this organization, + billing has not been set up for this organization, a public code suggestions + policy has not been set for this organization, or the organization's Copilot + access setting is set to enable Copilot for all users or is unconfigured. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-user-management + delete: + summary: Remove teams from the Copilot subscription for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Sets seats for all members of each team specified to "pending cancellation". + This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle unless they retain access through another team. + For more information about disabling access to Copilot, see "[Revoking access to Copilot for members of your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/revoking-access-to-copilot-for-members-of-your-organization)." + + Only organization owners can cancel Copilot seats for their organization members. + + The response contains the total number of seats set to "pending cancellation". + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/cancel-copilot-seat-assignment-for-teams + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + content: + application/json: + schema: + type: object + properties: + selected_teams: + type: array + description: The names of teams from which to revoke access to GitHub + Copilot. + items: + type: string + minItems: 1 + required: + - selected_teams + examples: + default: + value: + selected_teams: + - engteam1 + - engteam2 + - engteam3 + required: true + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + description: The total number of seats set to "pending cancellation" + for members of the specified team(s). + properties: + seats_cancelled: + type: integer + required: + - seats_cancelled + examples: + default: + value: + seats_cancelled: 5 + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Copilot Business or Enterprise is not enabled for this organization, + billing has not been set up for this organization, a public code suggestions + policy has not been set for this organization, or the organization's Copilot + access setting is set to enable Copilot for all users or is unconfigured. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-user-management + "/orgs/{org}/copilot/billing/selected_users": + post: + summary: Add users to the Copilot subscription for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Purchases a GitHub Copilot seat for each user specified. + The organization will be billed for each seat based on the organization's Copilot plan. For more information about Copilot pricing, see "[About billing for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/about-billing-for-github-copilot-in-your-organization)." + + Only organization owners can purchase Copilot seats for their organization members. The organization must have a Copilot Business or Copilot Enterprise subscription and a configured suggestion matching policy. + For more information about setting up a Copilot subscription, see "[Subscribing to Copilot for your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/subscribing-to-copilot-for-your-organization)." + For more information about setting a suggestion matching policy, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/setting-policies-for-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#policies-for-suggestion-matching)." + + The response contains the total number of new seats that were created and existing seats that were refreshed. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/add-copilot-seats-for-users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + content: + application/json: + schema: + type: object + properties: + selected_usernames: + type: array + description: The usernames of the organization members to be granted + access to GitHub Copilot. + items: + type: string + minItems: 1 + required: + - selected_usernames + examples: + default: + value: + selected_usernames: + - cooluser1 + - hacker2 + - octocat + required: true + responses: + '201': + description: OK + content: + application/json: + schema: + type: object + description: The total number of seats created for the specified user(s). + properties: + seats_created: + type: integer + required: + - seats_created + examples: + default: + value: + seats_created: 5 + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Copilot Business or Enterprise is not enabled for this organization, + billing has not been set up for this organization, a public code suggestions + policy has not been set for this organization, or the organization's Copilot + access setting is set to enable Copilot for all users or is unconfigured. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-user-management + delete: + summary: Remove users from the Copilot subscription for an organization + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Sets seats for all users specified to "pending cancellation". + This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle unless they retain access through team membership. + For more information about disabling access to Copilot, see "[Revoking access to Copilot for members of your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/revoking-access-to-copilot-for-members-of-your-organization)." + + Only organization owners can cancel Copilot seats for their organization members. + + The response contains the total number of seats set to "pending cancellation". + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/cancel-copilot-seat-assignment-for-users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + content: + application/json: + schema: + type: object + properties: + selected_usernames: + type: array + description: The usernames of the organization members for which + to revoke access to GitHub Copilot. + items: + type: string + minItems: 1 + required: + - selected_usernames + examples: + default: + value: + selected_usernames: + - cooluser1 + - hacker2 + - octocat + required: true + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + description: The total number of seats set to "pending cancellation" + for the specified users. + properties: + seats_cancelled: + type: integer + required: + - seats_cancelled + examples: + default: + value: + seats_cancelled: 5 + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Copilot Business or Enterprise is not enabled for this organization, + billing has not been set up for this organization, a public code suggestions + policy has not been set for this organization, the seat management setting + is set to enable Copilot for all users or is unconfigured, or a user's + seat cannot be cancelled because it was assigned to them via a team. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-user-management + "/orgs/{org}/copilot/metrics": + get: + summary: Get Copilot metrics for an organization + description: |- + Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions. + + > [!NOTE] + > This endpoint will only return results for a given day if the organization contained **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day. + + The response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day, + and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + they must have telemetry enabled in their IDE. + + To access this endpoint, the Copilot Metrics API access policy must be enabled for the organization. + Only organization owners and owners and billing managers of the parent enterprise can view Copilot metrics. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/copilot-metrics-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - name: since + description: Show usage metrics since this date. This is a timestamp in [ISO + 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). + Maximum value is 100 days ago. + in: query + required: false + schema: + type: string + - name: until + description: Show usage metrics until this date. This is a timestamp in [ISO + 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) + and should not preceed the `since` date if it is passed. + in: query + required: false + schema: + type: string + - "$ref": "#/components/parameters/page" + - name: per_page + description: The number of days of metrics to display per page (max 100). + For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 100 + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/copilot-usage-metrics-day" + examples: + default: + "$ref": "#/components/examples/copilot-usage-metrics-for-day" + '500': + "$ref": "#/components/responses/internal_error" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/usage_metrics_api_disabled" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-metrics + "/orgs/{org}/dependabot/alerts": + get: + summary: List Dependabot alerts for an organization + description: |- + Lists Dependabot alerts for an organization. + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + tags: + - dependabot + operationId: dependabot/list-alerts-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-states" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-severities" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-ecosystems" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-packages" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-epss" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-artifact-registry-urls" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-artifact-registry" + - "$ref": "#/components/parameters/dependabot-alert-org-scope-comma-separated-has" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-runtime-risk" + - "$ref": "#/components/parameters/dependabot-alert-scope" + - "$ref": "#/components/parameters/dependabot-alert-sort" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/dependabot-alert-with-repository" + examples: + default: + "$ref": "#/components/examples/dependabot-alerts-for-organization" + '304': + "$ref": "#/components/responses/not_modified" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: alerts + "/orgs/{org}/dependabot/secrets": + get: + summary: List organization secrets + description: |- + Lists all secrets available in an organization without revealing their + encrypted values. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/list-org-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#list-organization-secrets + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/organization-dependabot-secret" + examples: + default: + "$ref": "#/components/examples/organization-dependabot-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/orgs/{org}/dependabot/secrets/public-key": + get: + summary: Get an organization public key + description: |- + Gets your public key, which you need to encrypt secrets. You need to + encrypt a secret before you can create or update secrets. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/get-org-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependabot-public-key" + examples: + default: + "$ref": "#/components/examples/dependabot-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/orgs/{org}/dependabot/secrets/{secret_name}": + get: + summary: Get an organization secret + description: |- + Gets a single organization secret without revealing its encrypted value. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/get-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#get-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-dependabot-secret" + examples: + default: + "$ref": "#/components/examples/organization-dependabot-secret" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + put: + summary: Create or update an organization secret + description: |- + Creates or updates an organization secret with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/create-or-update-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get an organization public + key](https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: ID of the key you used to encrypt the secret. + visibility: + type: string + description: Which type of organization repositories have access + to the organization secret. `selected` means only the repositories + specified by `selected_repository_ids` can access the secret. + enum: + - all + - private + - selected + selected_repository_ids: + type: array + description: An array of repository ids that can access the organization + secret. You can only provide a list of repository ids when the + `visibility` is set to `selected`. You can manage the list of + selected repositories using the [List selected repositories for + an organization secret](https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret), + [Set selected repositories for an organization secret](https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret), + and [Remove selected repository from an organization secret](https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret) + endpoints. Use integers when possible, as strings are supported + only to maintain backwards compatibility and may be removed in + the future. + items: + anyOf: + - type: integer + - type: string + required: + - visibility + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + delete: + summary: Delete an organization secret + description: |- + Deletes a secret in an organization using the secret name. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/delete-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#delete-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": + get: + summary: List selected repositories for an organization secret + description: |- + Lists all repositories that have been selected when the `visibility` + for repository access to a secret is set to `selected`. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/list-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repositories: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/public-repository-paginated" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + put: + summary: Set selected repositories for an organization secret + description: |- + Replaces all repositories for an organization secret when the `visibility` + for repository access is set to `selected`. The visibility is set when you [Create + or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/set-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + type: array + description: An array of repository ids that can access the organization + secret. You can only provide a list of repository ids when the + `visibility` is set to `selected`. You can add and remove individual + repositories using the [Set selected repositories for an organization + secret](https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret) + and [Remove selected repository from an organization secret](https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret) + endpoints. + items: + type: integer + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - 64780797 + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": + put: + summary: Add selected repository to an organization secret + description: |- + Adds a repository to an organization secret when the `visibility` for + repository access is set to `selected`. The visibility is set when you [Create or + update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/add-selected-repo-to-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#add-selected-repository-to-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: No Content when repository was added to the selected list + '409': + description: Conflict when visibility type is not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + delete: + summary: Remove selected repository from an organization secret + description: |- + Removes a repository from an organization secret when the `visibility` + for repository access is set to `selected`. The visibility is set when you [Create + or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/remove-selected-repo-from-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response when repository was removed from the selected list + '409': + description: Conflict when visibility type not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/orgs/{org}/docker/conflicts": + get: + summary: Get list of conflicting packages during Docker migration for organization + description: |- + Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + tags: + - packages + operationId: packages/list-docker-migration-conflicting-packages-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/packages-for-org" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/orgs/{org}/events": + get: + summary: List public organization events + description: |- + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-public-org-events + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-public-organization-events + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + 200-response: + "$ref": "#/components/examples/public-org-events-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/orgs/{org}/failed_invitations": + get: + summary: List failed organization invitations + description: The return hash contains `failed_at` and `failed_reason` fields + which represent the time at which the invitation failed and the reason for + the failure. + tags: + - orgs + operationId: orgs/list-failed-invitations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#list-failed-organization-invitations + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-invitation" + examples: + default: + "$ref": "#/components/examples/organization-invitation-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/hooks": + get: + summary: List organization webhooks + description: |- + List webhooks for an organization. + + The authenticated user must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/list-webhooks + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/org-hook" + examples: + default: + "$ref": "#/components/examples/org-hook-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + post: + summary: Create an organization webhook + description: |- + Create a hook that posts payloads in JSON format. + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or + edit webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/create-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: Must be passed as "web". + config: + type: object + description: Key/value pairs to provide settings for this webhook. + properties: + url: + "$ref": "#/components/schemas/webhook-config-url" + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + username: + type: string + example: '"kdaigle"' + password: + type: string + example: '"password"' + required: + - url + events: + type: array + description: Determines what [events](https://docs.github.com/webhooks/event-payloads) + the hook is triggered for. Set to `["*"]` to receive all possible + events. + default: + - push + items: + type: string + active: + type: boolean + description: Determines if notifications are sent when the webhook + is triggered. Set to `true` to send notifications. + default: true + required: + - name + - config + examples: + default: + value: + name: web + active: true + events: + - push + - pull_request + config: + url: http://example.com/webhook + content_type: json + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/org-hook" + examples: + default: + "$ref": "#/components/examples/org-hook" + headers: + Location: + example: https://api.github.com/orgs/octocat/hooks/1 + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + "/orgs/{org}/hooks/{hook_id}": + get: + summary: Get an organization webhook + description: |- + Returns a webhook configured in an organization. To get only the webhook + `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization). + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/get-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/org-hook" + examples: + default: + "$ref": "#/components/examples/org-hook" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + patch: + summary: Update an organization webhook + description: |- + Updates a webhook configured in an organization. When you update a webhook, + the `secret` will be overwritten. If you previously had a `secret` set, you must + provide the same `secret` or set a new `secret` or the secret will be removed. If + you are only updating individual webhook `config` properties, use "[Update a webhook + configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)". + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/update-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + config: + type: object + description: Key/value pairs to provide settings for this webhook. + properties: + url: + "$ref": "#/components/schemas/webhook-config-url" + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + required: + - url + events: + type: array + description: Determines what [events](https://docs.github.com/webhooks/event-payloads) + the hook is triggered for. + default: + - push + items: + type: string + active: + type: boolean + description: Determines if notifications are sent when the webhook + is triggered. Set to `true` to send notifications. + default: true + name: + type: string + example: '"web"' + examples: + default: + value: + active: true + events: + - pull_request + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/org-hook" + examples: + default: + "$ref": "#/components/examples/org-hook-2" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + delete: + summary: Delete an organization webhook + description: |- + Delete a webhook for an organization. + + The authenticated user must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/delete-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + "/orgs/{org}/hooks/{hook_id}/config": + get: + summary: Get a webhook configuration for an organization + description: |- + Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/get-webhook-config-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-config" + examples: + default: + "$ref": "#/components/examples/webhook-config" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + patch: + summary: Update a webhook configuration for an organization + description: |- + Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/update-webhook-config-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + url: + "$ref": "#/components/schemas/webhook-config-url" + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + examples: + default: + summary: Update an existing webhook + value: + url: http://example.com/webhook + content_type: json + insecure_ssl: '0' + secret: "********" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-config" + examples: + default: + "$ref": "#/components/examples/webhook-config" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + "/orgs/{org}/hooks/{hook_id}/deliveries": + get: + summary: List deliveries for an organization webhook + description: |- + Returns a list of webhook deliveries for a webhook configured in an organization. + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/list-webhook-deliveries + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/cursor" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/hook-delivery-item" + examples: + default: + "$ref": "#/components/examples/hook-delivery-items" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": + get: + summary: Get a webhook delivery for an organization webhook + description: |- + Returns a delivery for a webhook configured in an organization. + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/get-webhook-delivery + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + - "$ref": "#/components/parameters/delivery-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/hook-delivery" + examples: + default: + "$ref": "#/components/examples/hook-delivery" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": + post: + summary: Redeliver a delivery for an organization webhook + description: |- + Redeliver a delivery for a webhook configured in an organization. + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/redeliver-webhook-delivery + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + - "$ref": "#/components/parameters/delivery-id" + responses: + '202': + "$ref": "#/components/responses/accepted" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + "/orgs/{org}/hooks/{hook_id}/pings": + post: + summary: Ping an organization webhook + description: |- + This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) + to be sent to the hook. + + You must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + tags: + - orgs + operationId: orgs/ping-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/hook-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: webhooks + "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": + get: + summary: Get route stats by actor + description: Get API request count statistics for an actor broken down by route + within a specified time frame. + tags: + - orgs + operationId: api-insights/get-route-stats-by-actor + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-route-stats-by-actor + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-actor-type" + - "$ref": "#/components/parameters/api-insights-actor-id" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/api-insights-route-stats-sort" + - "$ref": "#/components/parameters/api-insights-api-route-substring" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-route-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-route-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/subject-stats": + get: + summary: Get subject stats + description: Get API request statistics for all subjects within an organization + within a specified time frame. Subjects can be users or GitHub Apps. + tags: + - orgs + operationId: api-insights/get-subject-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-subject-stats + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/api-insights-sort" + - "$ref": "#/components/parameters/api-insights-subject-name-substring" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-subject-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-subject-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/summary-stats": + get: + summary: Get summary stats + description: Get overall statistics of API requests made within an organization + by all users and apps within a specified time frame. + tags: + - orgs + operationId: api-insights/get-summary-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-summary-stats + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-summary-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-summary-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/summary-stats/users/{user_id}": + get: + summary: Get summary stats by user + description: Get overall statistics of API requests within the organization + for a user. + tags: + - orgs + operationId: api-insights/get-summary-stats-by-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-user-id" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-summary-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-summary-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": + get: + summary: Get summary stats by actor + description: Get overall statistics of API requests within the organization + made by a specific actor. Actors can be GitHub App installations, OAuth apps + or other tokens on behalf of a user. + tags: + - orgs + operationId: api-insights/get-summary-stats-by-actor + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-actor + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + - "$ref": "#/components/parameters/api-insights-actor-type" + - "$ref": "#/components/parameters/api-insights-actor-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-summary-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-summary-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/time-stats": + get: + summary: Get time stats + description: Get the number of API requests and rate-limited requests made within + an organization over a specified time period. + tags: + - orgs + operationId: api-insights/get-time-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-time-stats + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + - "$ref": "#/components/parameters/api-insights-timestamp-increment" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-time-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-time-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/time-stats/users/{user_id}": + get: + summary: Get time stats by user + description: Get the number of API requests and rate-limited requests made within + an organization by a specific user over a specified time period. + tags: + - orgs + operationId: api-insights/get-time-stats-by-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-user-id" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + - "$ref": "#/components/parameters/api-insights-timestamp-increment" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-time-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-time-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": + get: + summary: Get time stats by actor + description: Get the number of API requests and rate-limited requests made within + an organization by a specific actor within a specified time period. + tags: + - orgs + operationId: api-insights/get-time-stats-by-actor + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-actor + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-actor-type" + - "$ref": "#/components/parameters/api-insights-actor-id" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + - "$ref": "#/components/parameters/api-insights-timestamp-increment" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-time-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-time-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/insights/api/user-stats/{user_id}": + get: + summary: Get user stats + description: Get API usage statistics within an organization for a user broken + down by the type of access. + tags: + - orgs + operationId: api-insights/get-user-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/api-insights#get-user-stats + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/api-insights-user-id" + - "$ref": "#/components/parameters/api-insights-min-timestamp" + - "$ref": "#/components/parameters/api-insights-max-timestamp" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/api-insights-sort" + - "$ref": "#/components/parameters/api-insights-actor-name-substring" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/api-insights-user-stats" + examples: + default: + "$ref": "#/components/examples/api-insights-user-stats" + x-github: + enabledForGitHubApps: true + category: orgs + subcategory: api-insights + "/orgs/{org}/installation": + get: + summary: Get an organization installation for the authenticated app + description: |- + Enables an authenticated GitHub App to find the organization's installation information. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/get-org-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/installation" + examples: + default: + "$ref": "#/components/examples/installation" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + "/orgs/{org}/installations": + get: + summary: List app installations for an organization + description: |- + Lists all GitHub Apps in an organization. The installation count includes + all GitHub Apps installed on repositories in the organization. + + The authenticated user must be an organization owner to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + tags: + - orgs + operationId: orgs/list-app-installations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - installations + properties: + total_count: + type: integer + installations: + type: array + items: + "$ref": "#/components/schemas/installation" + examples: + default: + "$ref": "#/components/examples/installation-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + "/orgs/{org}/interaction-limits": + get: + summary: Get interaction restrictions for an organization + description: Shows which type of GitHub user can interact with this organization + and when the restriction expires. If there is no restrictions, you will see + an empty response. + tags: + - interactions + operationId: interactions/get-restrictions-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/orgs#get-interaction-restrictions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + anyOf: + - "$ref": "#/components/schemas/interaction-limit-response" + - type: object + properties: {} + additionalProperties: false + examples: + default: + "$ref": "#/components/examples/interaction-limit-response" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: orgs + put: + summary: Set interaction restrictions for an organization + description: Temporarily restricts interactions to a certain type of GitHub + user in any public repository in the given organization. You must be an organization + owner to set these restrictions. Setting the interaction limit at the organization + level will overwrite any interaction limits that are set for individual repositories + owned by the organization. + tags: + - interactions + operationId: interactions/set-restrictions-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/orgs#set-interaction-restrictions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/interaction-limit" + examples: + default: + value: + limit: collaborators_only + expiry: one_month + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/interaction-limit-response" + examples: + default: + "$ref": "#/components/examples/interaction-limit-response" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: orgs + delete: + summary: Remove interaction restrictions for an organization + description: Removes all interaction restrictions from public repositories in + the given organization. You must be an organization owner to remove restrictions. + tags: + - interactions + operationId: interactions/remove-restrictions-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/orgs#remove-interaction-restrictions-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: orgs + "/orgs/{org}/invitations": + get: + summary: List pending organization invitations + description: |- + The return hash contains a `role` field which refers to the Organization + Invitation role and will be one of the following values: `direct_member`, `admin`, + `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub + member, the `login` field in the return hash will be `null`. + tags: + - orgs + operationId: orgs/list-pending-invitations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#list-pending-organization-invitations + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - name: role + description: Filter invitations by their member role. + in: query + required: false + schema: + type: string + enum: + - all + - admin + - direct_member + - billing_manager + - hiring_manager + default: all + - name: invitation_source + description: Filter invitations by their invitation source. + in: query + required: false + schema: + type: string + enum: + - all + - member + - scim + default: all + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-invitation" + examples: + default: + "$ref": "#/components/examples/organization-invitation-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + post: + summary: Create an organization invitation + description: |- + Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + tags: + - orgs + operationId: orgs/create-invitation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#create-an-organization-invitation + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + invitee_id: + type: integer + description: "**Required unless you provide `email`**. GitHub user + ID for the person you are inviting." + email: + type: string + description: "**Required unless you provide `invitee_id`**. Email + address of the person you are inviting, which can be an existing + GitHub user." + role: + type: string + description: "The role for the new member. \n * `admin` - Organization + owners with full administrative rights to the organization and + complete access to all repositories and teams. \n * `direct_member` + - Non-owner organization members with ability to see other members + and join teams by invitation. \n * `billing_manager` - Non-owner + organization members with ability to manage the billing settings + of your organization. \n * `reinstate` - The previous role assigned + to the invitee before they were removed from your organization. + Can be one of the roles listed above. Only works if the invitee + was previously part of your organization." + enum: + - admin + - direct_member + - billing_manager + - reinstate + default: direct_member + team_ids: + type: array + description: Specify IDs for the teams you want to invite new members + to. + items: + type: integer + examples: + default: + value: + email: octocat@github.com + role: direct_member + team_ids: + - 12 + - 26 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-invitation" + examples: + default: + "$ref": "#/components/examples/organization-invitation" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/invitations/{invitation_id}": + delete: + summary: Cancel an organization invitation + description: |- + Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + tags: + - orgs + operationId: orgs/cancel-invitation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/invitation-id" + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/invitations/{invitation_id}/teams": + get: + summary: List organization invitation teams + description: List all teams associated with an invitation. In order to see invitations + in an organization, the authenticated user must be an organization owner. + tags: + - orgs + operationId: orgs/list-invitation-teams + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#list-organization-invitation-teams + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/invitation-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + default: + "$ref": "#/components/examples/team-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/issue-types": + get: + summary: List issue types for an organization + description: Lists all issue types for an organization. OAuth app tokens and + personal access tokens (classic) need the read:org scope to use this endpoint. + tags: + - orgs + operationId: orgs/list-issue-types + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/issue-types#list-issue-types-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue-type" + examples: + default: + "$ref": "#/components/examples/issue-type-items" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: issue-types + post: + summary: Create issue type for an organization + description: |- + Create a new issue type for an organization. + + You can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization). + + To use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and + personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/create-issue-type + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/issue-types#create-issue-type-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-create-issue-type" + examples: + default: + value: + name: Epic + description: An issue type for a multi-week tracking of work + is_enabled: true + color: green + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue-type" + examples: + default: + "$ref": "#/components/examples/issue-type" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: issue-types + "/orgs/{org}/issue-types/{issue_type_id}": + put: + summary: Update issue type for an organization + description: |- + Updates an issue type for an organization. + + You can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization). + + To use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and + personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/update-issue-type + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/issue-types#update-issue-type-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/issue-type-id" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-update-issue-type" + examples: + default: + value: + name: Epic + description: An issue type for a multi-week tracking of work + is_enabled: true + color: green + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue-type" + examples: + default: + "$ref": "#/components/examples/issue-type" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: issue-types + delete: + summary: Delete issue type for an organization + description: |- + Deletes an issue type for an organization. + + You can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization). + + To use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and + personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/delete-issue-type + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/issue-types#delete-issue-type-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/issue-type-id" + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed_simple" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: issue-types + "/orgs/{org}/issues": + get: + summary: List organization issues assigned to the authenticated user + description: |- + List issues in an organization assigned to the authenticated user. + + > [!NOTE] + > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/org" + - name: filter + description: Indicates which sorts of issues to return. `assigned` means issues + assigned to you. `created` means issues created by you. `mentioned` means + issues mentioning you. `subscribed` means issues you're subscribed to updates + for. `all` or `repos` means all issues you can see, regardless of participation + or creation. + in: query + required: false + schema: + type: string + enum: + - assigned + - created + - mentioned + - subscribed + - repos + - all + default: assigned + - name: state + description: Indicates the state of the issues to return. + in: query + required: false + schema: + type: string + enum: + - open + - closed + - all + default: open + - "$ref": "#/components/parameters/labels" + - name: type + description: Can be the name of an issue type. + in: query + required: false + schema: + type: string + - name: sort + description: What to sort results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - comments + default: created + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue-with-repo-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: issues + subcategory: issues + "/orgs/{org}/members": + get: + summary: List organization members + description: List all users who are members of an organization. If the authenticated + user is also a member of this organization then both concealed and public + members will be returned. + tags: + - orgs + operationId: orgs/list-members + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#list-organization-members + parameters: + - "$ref": "#/components/parameters/org" + - name: filter + description: Filter members returned in the list. `2fa_disabled` means that + only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) + enabled will be returned. `2fa_insecure` means that only members with [insecure + 2FA methods](https://docs.github.com/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization#requiring-secure-methods-of-two-factor-authentication-in-your-organization) + will be returned. These options are only available for organization owners. + in: query + required: false + schema: + type: string + enum: + - 2fa_disabled + - 2fa_insecure + - all + default: all + - name: role + description: Filter members returned by their role. + in: query + required: false + schema: + type: string + enum: + - all + - admin + - member + default: all + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/members/{username}": + get: + summary: Check organization membership for a user + description: Check if a user is, publicly or privately, a member of the organization. + tags: + - orgs + operationId: orgs/check-membership-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response if requester is an organization member and user is + a member + '302': + description: Response if requester is not an organization member + headers: + Location: + example: https://api.github.com/orgs/github/public_members/pezra + schema: + type: string + '404': + description: Not Found if requester is an organization member and user is + not a member + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + delete: + summary: Remove an organization member + description: |- + Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + + > [!NOTE] + > If a user has both direct membership in the organization as well as indirect membership via an enterprise team, only their direct membership will be removed. Their indirect membership via an enterprise team remains until the user is removed from the enterprise team. + tags: + - orgs + operationId: orgs/remove-member + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#remove-an-organization-member + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/members/{username}/codespaces": + get: + summary: List codespaces for a user in organization + description: |- + Lists the codespaces that a member of an organization has for repositories in that organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-codespaces-for-user-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - codespaces + properties: + total_count: + type: integer + codespaces: + type: array + items: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespaces-list" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organizations + "/orgs/{org}/members/{username}/codespaces/{codespace_name}": + delete: + summary: Delete a codespace from the organization + description: |- + Deletes a user's codespace. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/delete-from-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organizations#delete-a-codespace-from-the-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/codespace-name" + responses: + '202': + "$ref": "#/components/responses/accepted" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organizations + "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": + post: + summary: Stop a codespace for an organization user + description: |- + Stops a user's codespace. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/stop-in-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/organizations#stop-a-codespace-for-an-organization-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/codespace-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: organizations + "/orgs/{org}/members/{username}/copilot": + get: + summary: Get Copilot seat assignment details for a user + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Gets the GitHub Copilot seat details for a member of an organization who currently has access to GitHub Copilot. + + The seat object contains information about the user's most recent Copilot activity. Users must have telemetry enabled in their IDE for Copilot in the IDE activity to be reflected in `last_activity_at`. + For more information about activity data, see [Metrics data properties for GitHub Copilot](https://docs.github.com/copilot/reference/metrics-data). + + Only organization owners can view Copilot seat assignment details for members of their organization. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/get-copilot-seat-details-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: The user's GitHub Copilot seat details, including usage. + content: + application/json: + schema: + "$ref": "#/components/schemas/copilot-seat-details" + examples: + default: + "$ref": "#/components/examples/copilot-seat-detail-active" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Copilot Business or Enterprise is not enabled for this organization + or the user has a pending organization invitation. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-user-management + "/orgs/{org}/memberships/{username}": + get: + summary: Get organization membership for a user + description: In order to get a user's membership with an organization, the authenticated + user must be an organization member. The `state` parameter in the response + can be used to identify the user's membership status. + tags: + - orgs + operationId: orgs/get-membership-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/org-membership" + examples: + response-if-user-has-an-active-admin-membership-with-organization: + "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + put: + summary: Set organization membership for a user + description: "Only authenticated organization owners can add a member to the + organization or update the member's role.\n\n* If the authenticated user + is _adding_ a member to the organization, the invited user will receive an + email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) + will be `pending` until they accept the invitation.\n \n* Authenticated + users can _update_ a user's membership by passing the `role` parameter. If + the authenticated user changes a member's role to `admin`, the affected user + will receive an email notifying them that they've been made an organization + owner. If the authenticated user changes an owner's role to `member`, no email + will be sent.\n\n**Rate limits**\n\nTo prevent abuse, organization owners + are limited to creating 50 organization invitations for an organization within + a 24 hour period. If the organization is more than one month old or on a paid + plan, the limit is 500 invitations per 24 hour period." + tags: + - orgs + operationId: orgs/set-membership-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + role: + type: string + description: "The role to give the user in the organization. Can + be one of: \n * `admin` - The user will become an owner of the + organization. \n * `member` - The user will become a non-owner + member of the organization." + enum: + - admin + - member + default: member + examples: + default: + summary: Set an organization membership role for a user + value: + role: member + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/org-membership" + examples: + response-if-user-already-had-membership-with-organization: + "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + delete: + summary: Remove organization membership for a user + description: |- + In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + + If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + + > [!NOTE] + > If a user has both direct membership in the organization as well as indirect membership via an enterprise team, only their direct membership will be removed. Their indirect membership via an enterprise team remains until the user is removed from the enterprise team. + tags: + - orgs + operationId: orgs/remove-membership-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/migrations": + get: + summary: List organization migrations + description: |- + Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + + A list of `repositories` is only returned for export migrations. + tags: + - migrations + operationId: migrations/list-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/orgs#list-organization-migrations + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - name: exclude + description: Exclude attributes from the API response to improve performance + in: query + schema: + type: array + items: + description: Allowed values that can be passed to the exclude param. + enum: + - repositories + example: repositories + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/migration" + examples: + default: + "$ref": "#/components/examples/migration-with-short-org-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: orgs + post: + summary: Start an organization migration + description: Initiates the generation of a migration archive. + tags: + - migrations + operationId: migrations/start-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/orgs#start-an-organization-migration + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + repositories: + type: array + description: A list of arrays indicating which repositories should + be migrated. + items: + type: string + lock_repositories: + type: boolean + example: true + description: Indicates whether repositories should be locked (to + prevent manipulation) while migrating data. + default: false + exclude_metadata: + type: boolean + description: Indicates whether metadata should be excluded and only + git source should be included for the migration. + default: false + exclude_git_data: + type: boolean + description: Indicates whether the repository git data should be + excluded from the migration. + default: false + exclude_attachments: + type: boolean + example: true + description: Indicates whether attachments should be excluded from + the migration (to reduce migration archive file size). + default: false + exclude_releases: + type: boolean + example: true + description: Indicates whether releases should be excluded from + the migration (to reduce migration archive file size). + default: false + exclude_owner_projects: + type: boolean + example: true + description: Indicates whether projects owned by the organization + or users should be excluded. from the migration. + default: false + org_metadata_only: + type: boolean + example: true + description: Indicates whether this should only include organization + metadata (repositories array should be empty and will ignore other + flags). + default: false + exclude: + type: array + description: Exclude related items from being returned in the response + in order to improve performance of the request. + items: + type: string + enum: + - repositories + required: + - repositories + examples: + default: + value: + repositories: + - github/Hello-World + lock_repositories: true + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/migration" + examples: + default: + "$ref": "#/components/examples/migration-with-short-org-2" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: orgs + "/orgs/{org}/migrations/{migration_id}": + get: + summary: Get an organization migration status + description: |- + Fetches the status of a migration. + + The `state` of a migration can be one of the following values: + + * `pending`, which means the migration hasn't started yet. + * `exporting`, which means the migration is in progress. + * `exported`, which means the migration finished successfully. + * `failed`, which means the migration failed. + tags: + - migrations + operationId: migrations/get-status-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/migration-id" + - name: exclude + description: Exclude attributes from the API response to improve performance + in: query + schema: + type: array + items: + description: Allowed values that can be passed to the exclude param. + enum: + - repositories + example: repositories + type: string + responses: + '200': + description: |- + * `pending`, which means the migration hasn't started yet. + * `exporting`, which means the migration is in progress. + * `exported`, which means the migration finished successfully. + * `failed`, which means the migration failed. + content: + application/json: + schema: + "$ref": "#/components/schemas/migration" + examples: + default: + "$ref": "#/components/examples/migration-with-short-org" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: orgs + "/orgs/{org}/migrations/{migration_id}/archive": + get: + summary: Download an organization migration archive + description: Fetches the URL to a migration archive. + tags: + - migrations + operationId: migrations/download-archive-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/migration-id" + responses: + '302': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: orgs + delete: + summary: Delete an organization migration archive + description: Deletes a previous migration archive. Migration archives are automatically + deleted after seven days. + tags: + - migrations + operationId: migrations/delete-archive-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/migration-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: orgs + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": + delete: + summary: Unlock an organization repository + description: Unlocks a repository that was locked for migration. You should + unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) + when the migration is complete and you no longer need the source data. + tags: + - migrations + operationId: migrations/unlock-repo-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/migration-id" + - "$ref": "#/components/parameters/repo-name" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: orgs + "/orgs/{org}/migrations/{migration_id}/repositories": + get: + summary: List repositories in an organization migration + description: List all the repositories for this organization migration. + tags: + - migrations + operationId: migrations/list-repos-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/migration-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: orgs + "/orgs/{org}/organization-roles": + get: + summary: Get all organization roles for an organization + description: |- + Lists the organization roles available in this organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + To use this endpoint, the authenticated user must be one of: + + - An administrator for the organization. + - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/list-org-roles + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response - list of organization roles + content: + application/json: + schema: + type: object + properties: + total_count: + type: integer + description: The total number of organization roles available + to the organization. + roles: + type: array + description: The list of organization roles available to the organization. + items: + "$ref": "#/components/schemas/organization-role" + examples: + default: + "$ref": "#/components/examples/organization-role-list" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/organization-roles/teams/{team_slug}": + delete: + summary: Remove all organization roles for a team + description: |- + Removes all assigned organization roles from a team. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + The authenticated user must be an administrator for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/revoke-all-org-roles-team + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": + put: + summary: Assign an organization role to a team + description: |- + Assigns an organization role to a team in an organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + The authenticated user must be an administrator for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/assign-team-to-org-role + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/role-id" + responses: + '204': + description: Response + '404': + description: Response if the organization, team or role does not exist. + '422': + description: Response if the organization roles feature is not enabled for + the organization, or validation failed. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + delete: + summary: Remove an organization role from a team + description: |- + Removes an organization role from a team. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + The authenticated user must be an administrator for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/revoke-org-role-team + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/role-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/organization-roles/users/{username}": + delete: + summary: Remove all organization roles for a user + description: |- + Revokes all assigned organization roles from a user. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + The authenticated user must be an administrator for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/revoke-all-org-roles-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/organization-roles/users/{username}/{role_id}": + put: + summary: Assign an organization role to a user + description: |- + Assigns an organization role to a member of an organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + The authenticated user must be an administrator for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/assign-user-to-org-role + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/role-id" + responses: + '204': + description: Response + '404': + description: Response if the organization, user or role does not exist. + '422': + description: Response if the organization roles feature is not enabled enabled + for the organization, the validation failed, or the user is not an organization + member. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + delete: + summary: Remove an organization role from a user + description: |- + Remove an organization role from a user. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + The authenticated user must be an administrator for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/revoke-org-role-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/role-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/organization-roles/{role_id}": + get: + summary: Get an organization role + description: |- + Gets an organization role that is available to this organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + To use this endpoint, the authenticated user must be one of: + + - An administrator for the organization. + - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/get-org-role + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/role-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/organization-role" + examples: + default: + "$ref": "#/components/examples/organization-role" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/organization-roles/{role_id}/teams": + get: + summary: List teams that are assigned to an organization role + description: |- + Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + To use this endpoint, you must be an administrator for the organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/list-org-role-teams + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/role-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response - List of assigned teams + content: + application/json: + schema: + type: array + description: List of teams assigned to the organization role + items: + "$ref": "#/components/schemas/team-role-assignment" + examples: + default: + "$ref": "#/components/examples/team-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + description: Response if the organization or role does not exist. + '422': + description: Response if the organization roles feature is not enabled or + validation failed. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/organization-roles/{role_id}/users": + get: + summary: List users that are assigned to an organization role + description: |- + Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + + To use this endpoint, you must be an administrator for the organization. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/list-org-role-users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/role-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response - List of assigned users + content: + application/json: + schema: + type: array + description: List of users assigned to the organization role + items: + "$ref": "#/components/schemas/user-role-assignment" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + description: Response if the organization or role does not exist. + '422': + description: Response if the organization roles feature is not enabled or + validation failed. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: organization-roles + "/orgs/{org}/outside_collaborators": + get: + summary: List outside collaborators for an organization + description: List all users who are outside collaborators of an organization. + tags: + - orgs + operationId: orgs/list-outside-collaborators + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - name: filter + description: Filter the list of outside collaborators. `2fa_disabled` means + that only outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) + enabled will be returned. `2fa_insecure` means that only outside collaborators + with [insecure 2FA methods](https://docs.github.com/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization#requiring-secure-methods-of-two-factor-authentication-in-your-organization) + will be returned. + in: query + required: false + schema: + type: string + enum: + - 2fa_disabled + - 2fa_insecure + - all + default: all + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: outside-collaborators + "/orgs/{org}/outside_collaborators/{username}": + put: + summary: Convert an organization member to outside collaborator + description: When an organization member is converted to an outside collaborator, + they'll only have access to the repositories that their current team membership + allows. The user will no longer be a member of the organization. For more + information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". + Converting an organization member to an outside collaborator may be restricted + by enterprise administrators. For more information, see "[Enforcing repository + management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + tags: + - orgs + operationId: orgs/convert-member-to-outside-collaborator + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + async: + type: boolean + description: When set to `true`, the request will be performed asynchronously. + Returns a 202 status code when the job is successfully queued. + default: false + examples: + '202': + summary: Status code 202, asynchronous request + value: + async: true + '204': + summary: Status code 204, synchronous request + value: + responses: + '202': + description: User is getting converted asynchronously + content: + application/json: + schema: + type: object + properties: {} + additionalProperties: false + examples: + '202': + value: + '204': + description: User was converted + '403': + description: Forbidden if user is the last owner of the organization, not + a member of the organization, or if the enterprise enforces a policy for + inviting outside collaborators. For more information, see "[Enforcing + repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: outside-collaborators + delete: + summary: Remove outside collaborator from an organization + description: Removing a user from this list will remove them from all the organization's + repositories. + tags: + - orgs + operationId: orgs/remove-outside-collaborator + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '422': + description: Unprocessable Entity if user is a member of the organization + content: + application/json: + schema: + type: object + properties: + message: + type: string + documentation_url: + type: string + examples: + response-if-user-is-a-member-of-the-organization: + value: + message: You cannot specify an organization member to remove as + an outside collaborator. + documentation_url: https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: outside-collaborators + "/orgs/{org}/packages": + get: + summary: List packages for an organization + description: |- + Lists packages in an organization readable by the user. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/list-packages-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#list-packages-for-an-organization + parameters: + - name: package_type + description: The type of supported package. Packages in GitHub's Gradle registry + have the type `maven`. Docker images pushed to GitHub's Container registry + (`ghcr.io`) have the type `container`. You can use the type `docker` to + find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), + even if these have now been migrated to the Container registry. + in: query + required: true + schema: + type: string + enum: + - npm + - maven + - rubygems + - docker + - nuget + - container + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/package-visibility" + - name: page + description: The page number of the results to fetch. For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 1 + - name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 30 + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/packages-for-org" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '400': + "$ref": "#/components/responses/package_es_list_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/orgs/{org}/packages/{package_type}/{package_name}": + get: + summary: Get a package for an organization + description: |- + Gets a specific package in an organization. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-package-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-a-package-for-an-organization + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/package-org" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + delete: + summary: Delete a package for an organization + description: |- + Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + + The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/delete-package-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#delete-a-package-for-an-organization + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/orgs/{org}/packages/{package_type}/{package_name}/restore": + post: + summary: Restore a package for an organization + description: |- + Restores an entire package in an organization. + + You can restore a deleted package under the following conditions: + - The package was deleted within the last 30 days. + - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + + The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/restore-package-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#restore-a-package-for-an-organization + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/org" + - name: token + description: package token + schema: + type: string + required: false + in: query + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/orgs/{org}/packages/{package_type}/{package_name}/versions": + get: + summary: List package versions for a package owned by an organization + description: |- + Lists package versions for a package owned by an organization. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-all-package-versions-for-package-owned-by-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - name: state + in: query + required: false + description: The state of the package, either active or deleted. + schema: + type: string + enum: + - active + - deleted + default: active + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package-version" + examples: + default: + "$ref": "#/components/examples/package-versions-for-org" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": + get: + summary: Get a package version for an organization + description: |- + Gets a specific package version in an organization. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-package-version-for-organization + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-a-package-version-for-an-organization + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/package-version-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/package-version" + examples: + default: + "$ref": "#/components/examples/package-version-org" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + delete: + summary: Delete package version for an organization + description: |- + Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + + The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/delete-package-version-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/package-version-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": + post: + summary: Restore package version for an organization + description: |- + Restores a specific package version in an organization. + + You can restore a deleted package under the following conditions: + - The package was deleted within the last 30 days. + - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + + The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/restore-package-version-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#restore-package-version-for-an-organization + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/package-version-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/orgs/{org}/personal-access-token-requests": + get: + summary: List requests to access organization resources with fine-grained personal + access tokens + description: |- + Lists requests from organization members to access organization resources with a fine-grained personal access token. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/list-pat-grant-requests + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/personal-access-token-sort" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/personal-access-token-owner" + - "$ref": "#/components/parameters/personal-access-token-repository" + - "$ref": "#/components/parameters/personal-access-token-permission" + - "$ref": "#/components/parameters/personal-access-token-before" + - "$ref": "#/components/parameters/personal-access-token-after" + - "$ref": "#/components/parameters/personal-access-token-token-id" + responses: + '500': + "$ref": "#/components/responses/internal_error" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-programmatic-access-grant-request" + examples: + default: + "$ref": "#/components/examples/org-pat-grant-request-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + post: + summary: Review requests to access organization resources with fine-grained + personal access tokens + description: |- + Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/review-pat-grant-requests-in-bulk + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + pat_request_ids: + type: array + description: Unique identifiers of the requests for access via fine-grained + personal access token. Must be formed of between 1 and 100 `pat_request_id` + values. + items: + type: integer + minItems: 1 + maxItems: 100 + action: + type: string + description: Action to apply to the requests. + enum: + - approve + - deny + reason: + type: string + description: Reason for approving or denying the requests. Max 1024 + characters. + maxLength: 1024 + nullable: true + required: + - action + examples: + '204': + summary: Example of denying a request + value: + pat_request_ids: + - 42 + - 73 + action: deny + reason: Access is too broad. + responses: + '500': + "$ref": "#/components/responses/internal_error" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '202': + "$ref": "#/components/responses/accepted" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + "/orgs/{org}/personal-access-token-requests/{pat_request_id}": + post: + summary: Review a request to access organization resources with a fine-grained + personal access token + description: |- + Approves or denies a pending request to access organization resources via a fine-grained personal access token. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/review-pat-grant-request + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#review-a-request-to-access-organization-resources-with-a-fine-grained-personal-access-token + parameters: + - "$ref": "#/components/parameters/org" + - name: pat_request_id + in: path + description: Unique identifier of the request for access via fine-grained + personal access token. + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + action: + type: string + description: Action to apply to the request. + enum: + - approve + - deny + reason: + type: string + description: Reason for approving or denying the request. Max 1024 + characters. + maxLength: 1024 + nullable: true + required: + - action + examples: + '204': + summary: Example of denying a request + value: + action: deny + reason: This request is denied because the access is too broad. + responses: + '500': + "$ref": "#/components/responses/internal_error" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '204': + "$ref": "#/components/responses/no_content" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + "/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": + get: + summary: List repositories requested to be accessed by a fine-grained personal + access token + description: |- + Lists the repositories a fine-grained personal access token request is requesting access to. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/list-pat-grant-request-repositories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token + parameters: + - "$ref": "#/components/parameters/org" + - name: pat_request_id + in: path + description: Unique identifier of the request for access via fine-grained + personal access token. + required: true + schema: + type: integer + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '500': + "$ref": "#/components/responses/internal_error" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + "/orgs/{org}/personal-access-tokens": + get: + summary: List fine-grained personal access tokens with access to organization + resources + description: |- + Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/list-pat-grants + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/personal-access-token-sort" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/personal-access-token-owner" + - "$ref": "#/components/parameters/personal-access-token-repository" + - "$ref": "#/components/parameters/personal-access-token-permission" + - "$ref": "#/components/parameters/personal-access-token-before" + - "$ref": "#/components/parameters/personal-access-token-after" + - "$ref": "#/components/parameters/personal-access-token-token-id" + responses: + '500': + "$ref": "#/components/responses/internal_error" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-programmatic-access-grant" + examples: + default: + "$ref": "#/components/examples/org-pat-grant-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + post: + summary: Update the access to organization resources via fine-grained personal + access tokens + description: |- + Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/update-pat-accesses + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + action: + type: string + description: Action to apply to the fine-grained personal access + token. + enum: + - revoke + pat_ids: + description: The IDs of the fine-grained personal access tokens. + type: array + items: + type: integer + description: Unique identifier of the fine-grained personal access + token. + minItems: 1 + maxItems: 100 + required: + - action + - pat_ids + examples: + '204': + summary: Example of revoking a fine-grained personal access token. + value: + action: revoke + pat_ids: + - 1296269 + - 1296280 + responses: + '500': + "$ref": "#/components/responses/internal_error" + '404': + "$ref": "#/components/responses/not_found" + '202': + "$ref": "#/components/responses/accepted" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + "/orgs/{org}/personal-access-tokens/{pat_id}": + post: + summary: Update the access a fine-grained personal access token has to organization + resources + description: |- + Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/update-pat-access + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/fine-grained-personal-access-token-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + action: + type: string + description: Action to apply to the fine-grained personal access + token. + enum: + - revoke + required: + - action + examples: + '204': + summary: Example of revoking a fine-grained personal access token. + value: + action: revoke + responses: + '500': + "$ref": "#/components/responses/internal_error" + '404': + "$ref": "#/components/responses/not_found" + '204': + "$ref": "#/components/responses/no_content" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + "/orgs/{org}/personal-access-tokens/{pat_id}/repositories": + get: + summary: List repositories a fine-grained personal access token has access to + description: |- + Lists the repositories a fine-grained personal access token has access to. + + Only GitHub Apps can use this endpoint. + tags: + - orgs + operationId: orgs/list-pat-grant-repositories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to + parameters: + - "$ref": "#/components/parameters/org" + - name: pat_id + in: path + description: Unique identifier of the fine-grained personal access token. + required: true + schema: + type: integer + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '500': + "$ref": "#/components/responses/internal_error" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: personal-access-tokens + "/orgs/{org}/private-registries": + get: + summary: List private registries for an organization + description: |2- + + Lists all private registry configurations available at the organization-level without revealing their encrypted + values. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - private-registries + operationId: private-registries/list-org-private-registries + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/private-registries/organization-configurations#list-private-registries-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - configurations + properties: + total_count: + type: integer + configurations: + type: array + items: + "$ref": "#/components/schemas/org-private-registry-configuration" + examples: + default: + "$ref": "#/components/examples/org-private-registry-configurations-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: private-registries + subcategory: organization-configurations + post: + summary: Create a private registry for an organization + description: |2- + + Creates a private registry configuration with an encrypted value for an organization. Encrypt your secret using [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - private-registries + operationId: private-registries/create-org-private-registry + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/private-registries/organization-configurations#create-a-private-registry-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + registry_type: + description: The registry type. + type: string + enum: + - maven_repository + - nuget_feed + - goproxy_server + - npm_registry + - rubygems_server + - cargo_registry + - composer_repository + - docker_registry + - git_source + - helm_registry + - hex_organization + - hex_repository + - pub_repository + - python_index + - terraform_registry + url: + description: The URL of the private registry. + type: string + format: uri + username: + description: The username to use when authenticating with the private + registry. This field should be omitted if the private registry + does not require a username for authentication. + type: string + nullable: true + replaces_base: + description: Whether this private registry should replace the base + registry (e.g., npmjs.org for npm, rubygems.org for rubygems). + When set to `true`, Dependabot will only use this registry and + will not fall back to the public registry. When set to `false` + (default), Dependabot will use this registry for scoped packages + but may fall back to the public registry for other packages. + type: boolean + default: false + encrypted_value: + description: The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get private registries + public key for an organization](https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization) + endpoint. + type: string + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + description: The ID of the key you used to encrypt the secret. + type: string + visibility: + description: Which type of organization repositories have access + to the private registry. `selected` means only the repositories + specified by `selected_repository_ids` can access the private + registry. + type: string + enum: + - all + - private + - selected + selected_repository_ids: + description: An array of repository IDs that can access the organization + private registry. You can only provide a list of repository IDs + when `visibility` is set to `selected`. You can manage the list + of selected repositories using the [Update a private registry + for an organization](https://docs.github.com/rest/private-registries/organization-configurations#update-a-private-registry-for-an-organization) + endpoint. This field should be omitted if `visibility` is set + to `all` or `private`. + type: array + items: + type: integer + required: + - registry_type + - url + - encrypted_value + - key_id + - visibility + examples: + org-private-registry-with-private-visibility: + summary: Example of a private registry configuration with private + visibility + value: + registry_type: maven_repository + url: https://maven.pkg.github.com/organization/ + username: monalisa + replaces_base: true + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + visibility: private + org-private-registry-with-selected-visibility: + summary: Example of a private registry configuration with selected + visibility + value: + registry_type: maven_repository + url: https://maven.pkg.github.com/organization/ + username: monalisa + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: The organization private registry configuration + content: + application/json: + schema: + "$ref": "#/components/schemas/org-private-registry-configuration-with-selected-repositories" + examples: + org-private-registry-with-selected-visibility: + "$ref": "#/components/examples/org-private-registry-configuration" + org-private-registry-with-private-visibility: + "$ref": "#/components/examples/org-private-registry-configuration-with-selected-repositories" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: private-registries + subcategory: organization-configurations + "/orgs/{org}/private-registries/public-key": + get: + summary: Get private registries public key for an organization + description: |2- + + Gets the org public key, which is needed to encrypt private registry secrets. You need to encrypt a secret before you can create or update secrets. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - private-registries + operationId: private-registries/get-org-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - key_id + - key + properties: + key_id: + description: The identifier for the key. + example: '012345678912345678' + type: string + key: + description: The Base64 encoded public key. + example: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + type: string + examples: + default: + "$ref": "#/components/examples/private-registries-public-key" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: private-registries + subcategory: organization-configurations + "/orgs/{org}/private-registries/{secret_name}": + get: + summary: Get a private registry for an organization + description: |2- + + Get the configuration of a single private registry defined for an organization, omitting its encrypted value. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - private-registries + operationId: private-registries/get-org-private-registry + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/private-registries/organization-configurations#get-a-private-registry-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: The specified private registry configuration for the organization + content: + application/json: + schema: + "$ref": "#/components/schemas/org-private-registry-configuration" + examples: + default: + "$ref": "#/components/examples/org-private-registry-configuration" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: private-registries + subcategory: organization-configurations + patch: + summary: Update a private registry for an organization + description: |2- + + Updates a private registry configuration with an encrypted value for an organization. Encrypt your secret using [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - private-registries + operationId: private-registries/update-org-private-registry + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/private-registries/organization-configurations#update-a-private-registry-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + registry_type: + description: The registry type. + type: string + enum: + - maven_repository + - nuget_feed + - goproxy_server + - npm_registry + - rubygems_server + - cargo_registry + - composer_repository + - docker_registry + - git_source + - helm_registry + - hex_organization + - hex_repository + - pub_repository + - python_index + - terraform_registry + url: + description: The URL of the private registry. + type: string + format: uri + username: + description: The username to use when authenticating with the private + registry. This field should be omitted if the private registry + does not require a username for authentication. + type: string + nullable: true + replaces_base: + description: Whether this private registry should replace the base + registry (e.g., npmjs.org for npm, rubygems.org for rubygems). + When set to `true`, Dependabot will only use this registry and + will not fall back to the public registry. When set to `false` + (default), Dependabot will use this registry for scoped packages + but may fall back to the public registry for other packages. + type: boolean + default: false + encrypted_value: + description: The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get private registries + public key for an organization](https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization) + endpoint. + type: string + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + description: The ID of the key you used to encrypt the secret. + type: string + visibility: + description: Which type of organization repositories have access + to the private registry. `selected` means only the repositories + specified by `selected_repository_ids` can access the private + registry. + type: string + enum: + - all + - private + - selected + selected_repository_ids: + description: An array of repository IDs that can access the organization + private registry. You can only provide a list of repository IDs + when `visibility` is set to `selected`. This field should be omitted + if `visibility` is set to `all` or `private`. + type: array + items: + type: integer + examples: + default: + value: + username: monalisa + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: private-registries + subcategory: organization-configurations + delete: + summary: Delete a private registry for an organization + description: |2- + + Delete a private registry configuration at the organization-level. + + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - private-registries + operationId: private-registries/delete-org-private-registry + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/private-registries/organization-configurations#delete-a-private-registry-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: private-registries + subcategory: organization-configurations + "/orgs/{org}/projectsV2": + get: + summary: List projects for organization + description: List all projects owned by a specific organization accessible by + the authenticated user. + tags: + - projects + operationId: projects/list-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/projects#list-projects-for-organization + parameters: + - "$ref": "#/components/parameters/org" + - name: q + description: Limit results to projects of the specified type. + in: query + required: false + schema: + type: string + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2" + examples: + default: + "$ref": "#/components/examples/projects-v2" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: projects + "/orgs/{org}/projectsV2/{project_number}": + get: + summary: Get project for organization + description: Get a specific organization-owned project. + tags: + - projects + operationId: projects/get-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/projects#get-project-for-organization + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2" + examples: + default: + "$ref": "#/components/examples/projects-v2" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: projects + "/orgs/{org}/projectsV2/{project_number}/drafts": + post: + summary: Create draft item for organization owned project + description: Create draft issue item for the specified organization owned project. + tags: + - projects + operationId: projects/create-draft-item-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/drafts#create-draft-item-for-organization-owned-project + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/project-number" + requestBody: + required: true + description: Details of the draft item to create in the project. + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: The title of the draft issue item to create in the + project. + body: + type: string + description: The body content of the draft issue item to create + in the project. + required: + - title + examples: + title: + summary: Example with Sample Draft Issue Title + value: + title: Sample Draft Issue Title + body: + summary: Example with Sample Draft Issue Title and Body + value: + title: Sample Draft Issue Title + body: This is the body content of the draft issue. + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-simple" + examples: + draft_issue: + "$ref": "#/components/examples/projects-v2-item-simple" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: drafts + "/orgs/{org}/projectsV2/{project_number}/fields": + get: + summary: List project fields for organization + description: List all fields for a specific organization-owned project. + tags: + - projects + operationId: projects/list-fields-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/fields#list-project-fields-for-organization + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2-field" + examples: + default: + "$ref": "#/components/examples/projects-v2-field-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: fields + post: + summary: Add a field to an organization-owned project. + description: Add a field to an organization-owned project. + tags: + - projects + operationId: projects/add-field-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/fields#add-a-field-to-an-organization-owned-project + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - type: object + properties: + issue_field_id: + type: integer + description: The ID of the IssueField to create the field for. + required: + - issue_field_id + additionalProperties: false + - type: object + properties: + name: + type: string + description: The name of the field. + data_type: + type: string + description: The field's data type. + enum: + - text + - number + - date + required: + - name + - data_type + additionalProperties: false + - type: object + properties: + name: + type: string + description: The name of the field. + data_type: + type: string + description: The field's data type. + enum: + - single_select + single_select_options: + type: array + description: The options available for single select fields. At + least one option must be provided when creating a single select + field. + items: + "$ref": "#/components/schemas/projects-v2-field-single-select-option" + required: + - name + - data_type + - single_select_options + additionalProperties: false + - type: object + properties: + name: + type: string + description: The name of the field. + data_type: + type: string + description: The field's data type. + enum: + - iteration + iteration_configuration: + "$ref": "#/components/schemas/projects-v2-field-iteration-configuration" + required: + - name + - data_type + - iteration_configuration + additionalProperties: false + examples: + text_field: + summary: Create a text field + value: + name: Team notes + data_type: text + number_field: + summary: Create a number field + value: + name: Story points + data_type: number + date_field: + summary: Create a date field + value: + name: Due date + data_type: date + single_select_field: + "$ref": "#/components/examples/projects-v2-field-single-select-request" + iteration_field: + "$ref": "#/components/examples/projects-v2-field-iteration-request" + responses: + '201': + description: Response for adding a field to an organization-owned project. + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-field" + examples: + text_field: + "$ref": "#/components/examples/projects-v2-field-text" + number_field: + "$ref": "#/components/examples/projects-v2-field-number" + date_field: + "$ref": "#/components/examples/projects-v2-field-date" + single_select_field: + "$ref": "#/components/examples/projects-v2-field-single-select" + iteration_field: + "$ref": "#/components/examples/projects-v2-field-iteration" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: fields + "/orgs/{org}/projectsV2/{project_number}/fields/{field_id}": + get: + summary: Get project field for organization + description: Get a specific field for an organization-owned project. + tags: + - projects + operationId: projects/get-field-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/fields#get-project-field-for-organization + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/field-id" + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-field" + examples: + default: + "$ref": "#/components/examples/projects-v2-field" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: fields + "/orgs/{org}/projectsV2/{project_number}/items": + get: + summary: List items for an organization owned project + description: List all items for a specific organization-owned project accessible + by the authenticated user. + tags: + - projects + operationId: projects/list-items-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#list-items-for-an-organization-owned-project + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + - name: q + description: Search query to filter items, see [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) + for more information. + in: query + required: false + schema: + type: string + - name: fields + description: |- + Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + + Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789` + in: query + required: false + schema: + oneOf: + - type: string + - type: array + maxItems: 50 + items: + type: string + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + default: + "$ref": "#/components/examples/projects-v2-item-with-content" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + post: + summary: Add item to organization owned project + description: Add an issue or pull request item to the specified organization + owned project. + tags: + - projects + operationId: projects/add-item-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#add-item-to-organization-owned-project + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/project-number" + requestBody: + required: true + description: Details of the item to add to the project. You can specify either + the unique ID or the repository owner, name, and issue/PR number. + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + type: + type: string + enum: + - Issue + - PullRequest + description: The type of item to add to the project. Must be either + Issue or PullRequest. + id: + type: integer + description: The unique identifier of the issue or pull request + to add to the project. + owner: + type: string + description: The repository owner login. + repo: + type: string + description: The repository name. + number: + type: integer + description: The issue or pull request number. + required: + - type + oneOf: + - required: + - id + - required: + - owner + - repo + - number + examples: + issue_with_id: + summary: Add an issue using its unique ID + value: + type: Issue + id: 3 + pull_request_with_id: + summary: Add a pull request using its unique ID + value: + type: PullRequest + id: 3 + issue_with_nwo: + summary: Add an issue using repository owner, name, and issue number + value: + type: Issue + owner: octocat + repo: hello-world + number: 42 + pull_request_with_nwo: + summary: Add a pull request using repository owner, name, and PR number + value: + type: PullRequest + owner: octocat + repo: hello-world + number: 123 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-simple" + examples: + issue_with_id: + summary: Response for adding an issue using its unique ID + value: + "$ref": "#/components/examples/projects-v2-item-simple" + pull_request_with_id: + summary: Response for adding a pull request using its unique ID + value: + "$ref": "#/components/examples/projects-v2-item-simple" + issue_with_nwo: + summary: Response for adding an issue using repository owner, name, + and issue number + value: + "$ref": "#/components/examples/projects-v2-item-simple" + pull_request_with_nwo: + summary: Response for adding a pull request using repository owner, + name, and PR number + value: + "$ref": "#/components/examples/projects-v2-item-simple" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + "/orgs/{org}/projectsV2/{project_number}/items/{item_id}": + get: + summary: Get an item for an organization owned project + description: Get a specific item from an organization-owned project. + tags: + - projects + operationId: projects/get-org-item + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#get-an-item-for-an-organization-owned-project + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/item-id" + - name: fields + description: |- + Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + + Example: fields[]=123&fields[]=456&fields[]=789 or fields=123,456,789 + in: query + required: false + schema: + oneOf: + - type: string + - type: array + maxItems: 50 + items: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + default: + "$ref": "#/components/examples/projects-v2-item-with-content" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + patch: + summary: Update project item for organization + description: Update a specific item in an organization-owned project. + tags: + - projects + operationId: projects/update-item-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#update-project-item-for-organization + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/item-id" + requestBody: + required: true + description: Field updates to apply to the project item. Only text, number, + date, single select, and iteration fields are supported. + content: + application/json: + schema: + type: object + properties: + fields: + type: array + description: A list of field updates to apply. + items: + type: object + properties: + id: + type: integer + description: The ID of the project field to update. + value: + description: |- + The new value for the field: + - For text, number, and date fields, provide the new value directly. + - For single select and iteration fields, provide the ID of the option or iteration. + - To clear the field, set this to null. + nullable: true + oneOf: + - type: string + - type: number + required: + - id + - value + required: + - fields + examples: + text_field: + summary: Update a text field + value: + fields: + - id: 123 + value: Updated text value + number_field: + summary: Update a number field + value: + fields: + - id: 456 + value: 42.5 + date_field: + summary: Update a date field + value: + fields: + - id: 789 + value: '2023-10-05' + single_select_field: + summary: Update a single select field + value: + fields: + - id: 789 + value: 47fc9ee4 + iteration_field: + summary: Update an iteration field + value: + fields: + - id: 1011 + value: 866ee5b8 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + text_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + number_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + date_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + single_select_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + iteration_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + delete: + summary: Delete project item for organization + description: Delete a specific item from an organization-owned project. + tags: + - projects + operationId: projects/delete-item-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#delete-project-item-for-organization + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/item-id" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + "/orgs/{org}/projectsV2/{project_number}/views": + post: + summary: Create a view for an organization-owned project + description: Create a new view in an organization-owned project. Views allow + you to customize how items in a project are displayed and filtered. + tags: + - projects + operationId: projects/create-view-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/views#create-a-view-for-an-organization-owned-project + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/project-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the view. + example: Sprint Board + layout: + type: string + description: The layout of the view. + enum: + - table + - board + - roadmap + example: board + filter: + type: string + description: The filter query for the view. See [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) + for more information. + example: is:issue is:open + visible_fields: + type: array + description: |- + `visible_fields` is not applicable to `roadmap` layout views. + For `table` and `board` layouts, this represents the field IDs that should be visible in the view. If not provided, the default visible fields will be used. + items: + type: integer + example: + - 123 + - 456 + - 789 + required: + - name + - layout + additionalProperties: false + examples: + table_view: + summary: Create a table view + value: + name: All Issues + layout: table + filter: is:issue + visible_fields: + - 123 + - 456 + - 789 + board_view: + summary: Create a board view with filter + value: + name: Sprint Board + layout: board + filter: is:issue is:open label:sprint + visible_fields: + - 123 + - 456 + - 789 + roadmap_view: + summary: Create a roadmap view + value: + name: Product Roadmap + layout: roadmap + responses: + '201': + description: Response for creating a view in an organization-owned project. + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-view" + examples: + table_view: + summary: Response for creating a table view + value: + "$ref": "#/components/examples/projects-v2-view" + board_view: + summary: Response for creating a board view with filter + value: + "$ref": "#/components/examples/projects-v2-view" + roadmap_view: + summary: Response for creating a roadmap view + value: + "$ref": "#/components/examples/projects-v2-view" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '503': + description: Service unavailable + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: views + "/orgs/{org}/projectsV2/{project_number}/views/{view_number}/items": + get: + summary: List items for an organization project view + description: List items in an organization project with the saved view's filter + applied. + tags: + - projects + operationId: projects/list-view-items-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#list-items-for-an-organization-project-view + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/view-number" + - name: fields + description: |- + Limit results to specific fields, by their IDs. If not specified, the + title field will be returned. + + Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789` + in: query + required: false + schema: + oneOf: + - type: string + - type: array + maxItems: 50 + items: + type: string + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + default: + "$ref": "#/components/examples/projects-v2-item-with-content" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + "/orgs/{org}/properties/schema": + get: + summary: Get all custom properties for an organization + description: |- + Gets all custom properties defined for an organization. + Organization members can read these properties. + tags: + - orgs + operationId: orgs/custom-properties-for-repos-get-organization-definitions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/custom-property" + examples: + default: + "$ref": "#/components/examples/custom-properties" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: custom-properties + patch: + summary: Create or update custom properties for an organization + description: |- + Creates new or updates existing custom properties defined for an organization in a batch. + + If the property already exists, the existing property will be replaced with the new values. + Missing optional values will fall back to default values, previous values will be overwritten. + E.g. if a property exists with `values_editable_by: org_and_repo_actors` and it's updated without specifying `values_editable_by`, it will be updated to default value `org_actors`. + + To use this endpoint, the authenticated user must be one of: + - An administrator for the organization. + - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + tags: + - orgs + operationId: orgs/custom-properties-for-repos-create-or-update-organization-definitions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + properties: + type: array + description: The array of custom properties to create or update. + items: + "$ref": "#/components/schemas/custom-property" + minItems: 1 + maxItems: 100 + required: + - properties + examples: + default: + value: + properties: + - property_name: environment + value_type: single_select + required: true + default_value: production + description: Prod or dev environment + allowed_values: + - production + - development + values_editable_by: org_actors + - property_name: service + value_type: string + - property_name: team + value_type: string + description: Team owning the repository + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/custom-property" + examples: + default: + "$ref": "#/components/examples/custom-properties" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: custom-properties + "/orgs/{org}/properties/schema/{custom_property_name}": + get: + summary: Get a custom property for an organization + description: |- + Gets a custom property that is defined for an organization. + Organization members can read these properties. + tags: + - orgs + operationId: orgs/custom-properties-for-repos-get-organization-definition + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/custom-property-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/custom-property" + examples: + default: + "$ref": "#/components/examples/custom-property" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: custom-properties + put: + summary: Create or update a custom property for an organization + description: |- + Creates a new or updates an existing custom property that is defined for an organization. + + To use this endpoint, the authenticated user must be one of: + - An administrator for the organization. + - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + tags: + - orgs + operationId: orgs/custom-properties-for-repos-create-or-update-organization-definition + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/custom-property-name" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/custom-property-set-payload" + examples: + default: + value: + value_type: single_select + required: true + default_value: production + description: Prod or dev environment + allowed_values: + - production + - development + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/custom-property" + examples: + default: + "$ref": "#/components/examples/custom-property" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: custom-properties + delete: + summary: Remove a custom property for an organization + description: |- + Removes a custom property that is defined for an organization. + + To use this endpoint, the authenticated user must be one of: + - An administrator for the organization. + - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + tags: + - orgs + operationId: orgs/custom-properties-for-repos-delete-organization-definition + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/custom-property-name" + responses: + '204': + "$ref": "#/components/responses/no_content" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: custom-properties + "/orgs/{org}/properties/values": + get: + summary: List custom property values for organization repositories + description: |- + Lists organization repositories with all of their custom property values. + Organization members can read these properties. + tags: + - orgs + operationId: orgs/custom-properties-for-repos-get-organization-values + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - name: repository_query + description: Finds repositories in the organization with a query containing + one or more search keywords and qualifiers. Qualifiers allow you to limit + your search to specific areas of GitHub. The REST API supports the same + qualifiers as the web interface for GitHub. To learn more about the format + of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" + for a detailed list of qualifiers. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/org-repo-custom-property-values" + examples: + default: + "$ref": "#/components/examples/org-repo-custom-property-values" + headers: + Link: + "$ref": "#/components/headers/link" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: custom-properties + patch: + summary: Create or update custom property values for organization repositories + description: |- + Create new or update existing custom property values for repositories in a batch that belong to an organization. + Each target repository will have its custom property values updated to match the values provided in the request. + + A maximum of 30 repositories can be updated in a single request. + + Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + + To use this endpoint, the authenticated user must be one of: + - An administrator for the organization. + - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + tags: + - orgs + operationId: orgs/custom-properties-for-repos-create-or-update-organization-values + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + repository_names: + type: array + description: The names of repositories that the custom property + values will be applied to. + items: + type: string + minItems: 1 + maxItems: 30 + properties: + type: array + description: List of custom property names and associated values + to apply to the repositories. + items: + "$ref": "#/components/schemas/custom-property-value" + required: + - repository_names + - properties + examples: + default: + "$ref": "#/components/examples/org-repo-update-custom-property-values" + responses: + '204': + description: No Content when custom property values are successfully created + or updated + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: custom-properties + "/orgs/{org}/public_members": + get: + summary: List public organization members + description: Members of an organization can choose to have their membership + publicized or not. + tags: + - orgs + operationId: orgs/list-public-members + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#list-public-organization-members + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/orgs/{org}/public_members/{username}": + get: + summary: Check public organization membership for a user + description: Check if the provided user is a public member of the organization. + tags: + - orgs + operationId: orgs/check-public-membership-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response if user is a public member + '404': + description: Not Found if user is not a public member + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + put: + summary: Set public organization membership for the authenticated user + description: |- + The user can publicize their own membership. (A user cannot publicize the membership for another user.) + + Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + tags: + - orgs + operationId: orgs/set-public-membership-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: orgs + subcategory: members + delete: + summary: Remove public organization membership for the authenticated user + description: Removes the public membership for the authenticated user from the + specified organization, unless public visibility is enforced by default. + tags: + - orgs + operationId: orgs/remove-public-membership-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: orgs + subcategory: members + "/orgs/{org}/repos": + get: + summary: List organization repositories + description: |- + Lists repositories for the specified organization. + + > [!NOTE] + > In order to see the `security_and_analysis` block for a repository 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)." + tags: + - repos + operationId: repos/list-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-organization-repositories + parameters: + - "$ref": "#/components/parameters/org" + - name: type + description: Specifies the types of repositories you want returned. + in: query + required: false + schema: + type: string + enum: + - all + - public + - private + - forks + - sources + - member + default: all + - name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - pushed + - full_name + default: created + - name: direction + description: 'The order to sort by. Default: `asc` when using `full_name`, + otherwise `desc`.' + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + post: + summary: Create an organization repository + description: |- + Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + + OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + tags: + - repos + operationId: repos/create-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#create-an-organization-repository + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + 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: Whether the repository is private. + default: false + visibility: + type: string + description: The visibility of the repository. + enum: + - public + - private + 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 + has_downloads: + description: Whether downloads are enabled. + default: true + type: boolean + example: true + is_template: + type: boolean + description: Either `true` to make this repo available as a template + repository or `false` to prevent it. + default: false + team_id: + type: integer + description: The id of the team that will be granted access to this + repository. This is only valid when creating a repository in an + organization. + auto_init: + type: boolean + description: Pass `true` to create an initial commit with empty + README. + default: false + gitignore_template: + type: string + description: Desired language or platform [.gitignore template](https://github.com/github/gitignore) + to apply. Use the name of the template without the extension. + For example, "Haskell". + license_template: + type: string + description: Choose an [open source license template](https://choosealicense.com/) + that best suits your needs, and then use the [license keyword](https://docs.github.com/articles/licensing-a-repository/#searching-github-by-license-type) + as the `license_template` string. For example, "mit" or "mpl-2.0". + 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. **The authenticated user must be an organization + owner to set this property to `true`.** + 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 + deprecated: true + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + Required when using `squash_merge_commit_message`. + + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + Required when using `merge_commit_message`. + + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + custom_properties: + type: object + description: The custom properties for the new repository. The keys + are the custom property names, and the values are the corresponding + custom property values. + additionalProperties: true + required: + - name + examples: + default: + value: + name: Hello-World + description: This is your first repository + homepage: https://github.com + private: false + has_issues: true + has_projects: true + has_wiki: true + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/full-repository" + examples: + default: + "$ref": "#/components/examples/full-repository" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World + schema: + type: string + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/orgs/{org}/rulesets": + get: + summary: Get all organization repository rulesets + description: Get all the repository rulesets for an organization. + tags: + - repos + operationId: repos/get-org-rulesets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rules + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/ruleset-targets" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/org-ruleset-items" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + post: + summary: Create an organization repository ruleset + description: Create a repository ruleset for an organization. + tags: + - repos + operationId: repos/create-org-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rules#create-an-organization-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rules + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + description: Request body + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the ruleset. + target: + type: string + description: The target of the ruleset + enum: + - branch + - tag + - push + - repository + default: branch + enforcement: + "$ref": "#/components/schemas/repository-rule-enforcement" + bypass_actors: + type: array + description: The actors that can bypass the rules in this ruleset + items: + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + conditions: + "$ref": "#/components/schemas/org-ruleset-conditions" + rules: + type: array + description: An array of rules within the ruleset. + items: + "$ref": "#/components/schemas/org-rules" + required: + - name + - enforcement + examples: + default: + value: + name: super cool ruleset + target: branch + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + repository_name: + include: + - important_repository + - another_important_repository + exclude: + - unimportant_repository + protected: true + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/org-ruleset" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + "/orgs/{org}/rulesets/rule-suites": + get: + summary: List organization rule suites + description: |- + Lists suites of rule evaluations at the organization level. + For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + tags: + - repos + operationId: repos/get-org-rule-suites + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/ref-in-query" + - "$ref": "#/components/parameters/repository-name-in-query" + - "$ref": "#/components/parameters/time-period" + - "$ref": "#/components/parameters/actor-name-in-query" + - "$ref": "#/components/parameters/rule-suite-result" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/rule-suites" + examples: + default: + "$ref": "#/components/examples/rule-suite-items" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rule-suites + "/orgs/{org}/rulesets/rule-suites/{rule_suite_id}": + get: + summary: Get an organization rule suite + description: |- + Gets information about a suite of rule evaluations from within an organization. + For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + tags: + - repos + operationId: repos/get-org-rule-suite + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rule-suites#get-an-organization-rule-suite + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/rule-suite-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/rule-suite" + examples: + default: + "$ref": "#/components/examples/rule-suite" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rule-suites + "/orgs/{org}/rulesets/{ruleset_id}": + get: + summary: Get an organization repository ruleset + description: |- + Get a repository ruleset for an organization. + + **Note:** To prevent leaking sensitive information, the `bypass_actors` property is only returned if the user + making the API request has write access to the ruleset. + tags: + - repos + operationId: repos/get-org-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rules#get-an-organization-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rules + parameters: + - "$ref": "#/components/parameters/org" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/org-ruleset" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + put: + summary: Update an organization repository ruleset + description: Update a ruleset for an organization. + tags: + - repos + operationId: repos/update-org-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rules + parameters: + - "$ref": "#/components/parameters/org" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + requestBody: + description: Request body + required: false + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the ruleset. + target: + type: string + description: The target of the ruleset + enum: + - branch + - tag + - push + - repository + enforcement: + "$ref": "#/components/schemas/repository-rule-enforcement" + bypass_actors: + type: array + description: The actors that can bypass the rules in this ruleset + items: + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + conditions: + "$ref": "#/components/schemas/org-ruleset-conditions" + rules: + description: An array of rules within the ruleset. + type: array + items: + "$ref": "#/components/schemas/org-rules" + examples: + default: + value: + name: super cool ruleset + target: branch + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + repository_name: + include: + - important_repository + - another_important_repository + exclude: + - unimportant_repository + protected: true + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/org-ruleset" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + delete: + summary: Delete an organization repository ruleset + description: Delete a ruleset for an organization. + tags: + - repos + operationId: repos/delete-org-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rules + parameters: + - "$ref": "#/components/parameters/org" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + "/orgs/{org}/rulesets/{ruleset_id}/history": + get: + summary: Get organization ruleset history + description: Get the history of an organization ruleset. + tags: + - orgs + operationId: orgs/get-org-ruleset-history + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rules#get-organization-ruleset-history + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/ruleset-version" + examples: + default: + "$ref": "#/components/examples/ruleset-history" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rules + "/orgs/{org}/rulesets/{ruleset_id}/history/{version_id}": + get: + summary: Get organization ruleset version + description: Get a version of an organization ruleset. + tags: + - orgs + operationId: orgs/get-org-ruleset-version + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/rules#get-organization-ruleset-version + parameters: + - "$ref": "#/components/parameters/org" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + - name: version_id + description: The ID of the version + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/ruleset-version-with-state" + examples: + default: + "$ref": "#/components/examples/org-ruleset-version-with-state" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: rules + "/orgs/{org}/secret-scanning/alerts": + get: + summary: List secret scanning alerts for an organization + description: |- + Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + tags: + - secret-scanning + operationId: secret-scanning/list-alerts-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/secret-scanning-alert-state" + - "$ref": "#/components/parameters/secret-scanning-alert-secret-type" + - "$ref": "#/components/parameters/secret-scanning-alert-resolution" + - "$ref": "#/components/parameters/secret-scanning-alert-assignee" + - "$ref": "#/components/parameters/secret-scanning-alert-sort" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/secret-scanning-pagination-before-org-repo" + - "$ref": "#/components/parameters/secret-scanning-pagination-after-org-repo" + - "$ref": "#/components/parameters/secret-scanning-alert-validity" + - "$ref": "#/components/parameters/secret-scanning-alert-publicly-leaked" + - "$ref": "#/components/parameters/secret-scanning-alert-multi-repo" + - "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-secret-scanning-alert" + examples: + default: + "$ref": "#/components/examples/organization-secret-scanning-alert-list" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: secret-scanning + "/orgs/{org}/secret-scanning/pattern-configurations": + get: + summary: List organization pattern configurations + description: |- + Lists the secret scanning pattern configurations for an organization. + + Personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - secret-scanning + operationId: secret-scanning/list-org-pattern-configs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/push-protection#list-organization-pattern-configurations + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: push-protection + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/secret-scanning-pattern-configuration" + examples: + default: + "$ref": "#/components/examples/secret-scanning-pattern-configuration" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + patch: + summary: Update organization pattern configurations + description: |- + Updates the secret scanning pattern configurations for an organization. + + Personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - secret-scanning + operationId: secret-scanning/update-org-pattern-configs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/push-protection#update-organization-pattern-configurations + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: push-protection + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + pattern_config_version: + "$ref": "#/components/schemas/secret-scanning-row-version" + provider_pattern_settings: + type: array + description: Pattern settings for provider patterns. + items: + type: object + properties: + token_type: + type: string + description: The ID of the pattern to configure. + push_protection_setting: + type: string + description: Push protection setting to set for the pattern. + enum: + - not-set + - disabled + - enabled + custom_pattern_settings: + type: array + description: Pattern settings for custom patterns. + items: + type: object + properties: + token_type: + type: string + description: The ID of the pattern to configure. + custom_pattern_version: + "$ref": "#/components/schemas/secret-scanning-row-version" + push_protection_setting: + type: string + description: Push protection setting to set for the pattern. + enum: + - disabled + - enabled + examples: + default: + value: + pattern_config_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + provider_pattern_settings: + - token_type: GITHUB_PERSONAL_ACCESS_TOKEN + push_protection_setting: enabled + custom_pattern_settings: + - token_type: cp_2 + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + push_protection_setting: enabled + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + pattern_config_version: + type: string + description: The updated pattern configuration version. + examples: + default: + value: + pattern_config_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '422': + "$ref": "#/components/responses/validation_failed" + "/orgs/{org}/security-advisories": + get: + summary: List repository security advisories for an organization + description: |- + Lists repository security advisories for an organization. + + The authenticated user must be an owner or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + tags: + - security-advisories + operationId: security-advisories/list-org-repository-advisories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/direction" + - name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - published + default: created + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - name: per_page + description: The number of advisories to return per page. For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + - name: state + description: Filter by the state of the repository advisories. Only advisories + of this state will be returned. + in: query + required: false + schema: + type: string + enum: + - triage + - draft + - published + - closed + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository-advisory" + examples: + default: + "$ref": "#/components/examples/list-repository-advisories" + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + "/orgs/{org}/security-managers": + get: + summary: List security manager teams + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the "[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)" endpoints instead. + tags: + - orgs + operationId: orgs/list-security-manager-teams + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team-simple" + examples: + default: + "$ref": "#/components/examples/team-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: orgs + subcategory: security-managers + deprecationDate: '2024-12-01' + removalDate: '2026-01-01' + deprecated: true + "/orgs/{org}/security-managers/teams/{team_slug}": + put: + summary: Add a security manager team + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the "[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)" endpoints instead. + tags: + - orgs + operationId: orgs/add-security-manager-team + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: orgs + subcategory: security-managers + deprecationDate: '2024-12-01' + removalDate: '2026-01-01' + deprecated: true + delete: + summary: Remove a security manager team + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the "[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)" endpoints instead. + tags: + - orgs + operationId: orgs/remove-security-manager-team + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: orgs + subcategory: security-managers + deprecationDate: '2024-12-01' + removalDate: '2026-01-01' + deprecated: true + "/orgs/{org}/settings/immutable-releases": + get: + summary: Get immutable releases settings for an organization + description: |- + Gets the immutable releases policy for repositories in an organization. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/get-immutable-releases-settings + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#get-immutable-releases-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Immutable releases settings response + content: + application/json: + schema: + "$ref": "#/components/schemas/immutable-releases-organization-settings" + examples: + default: + value: + enforced_repositories: all + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + put: + summary: Set immutable releases settings for an organization + description: |- + Sets the immutable releases policy for repositories in an organization. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/set-immutable-releases-settings + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#set-immutable-releases-settings-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + responses: + '204': + description: Response + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + enforced_repositories: + type: string + description: The policy that controls how immutable releases are + enforced in the organization. + enum: + - all + - none + - selected + example: all + selected_repository_ids: + type: array + description: An array of repository ids for which immutable releases + enforcement should be applied. You can only provide a list of + repository ids when the `enforced_repositories` is set to `selected`. + You can add and remove individual repositories using the [Enable + a selected repository for immutable releases in an organization](https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization) + and [Disable a selected repository for immutable releases in an + organization](https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization) + endpoints. + items: + type: integer + required: + - enforced_repositories + examples: + default: + value: + enforced_repositories: all + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + "/orgs/{org}/settings/immutable-releases/repositories": + get: + summary: List selected repositories for immutable releases enforcement + description: |- + List all of the repositories that have been selected for immutable releases enforcement in an organization. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/get-immutable-releases-settings-repositories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#list-selected-repositories-for-immutable-releases-enforcement + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repositories: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/public-repository-paginated" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + put: + summary: Set selected repositories for immutable releases enforcement + description: |- + Replaces all repositories that have been selected for immutable releases enforcement in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + tags: + - orgs + operationId: orgs/set-immutable-releases-settings-repositories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#set-selected-repositories-for-immutable-releases-enforcement + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + type: array + description: An array of repository ids for which immutable releases + enforcement should be applied. You can only provide a list of + repository ids when the `enforced_repositories` is set to `selected`. + You can add and remove individual repositories using the [Enable + a selected repository for immutable releases in an organization](https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization) + and [Disable a selected repository for immutable releases in an + organization](https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization) + endpoints. + items: + type: integer + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - 64780797 + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + "/orgs/{org}/settings/immutable-releases/repositories/{repository_id}": + put: + summary: Enable a selected repository for immutable releases in an organization + description: |- + Adds a repository to the list of selected repositories that are enforced for immutable releases in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: orgs/enable-selected-repository-immutable-releases-organization + tags: + - orgs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + delete: + summary: Disable a selected repository for immutable releases in an organization + description: |- + Removes a repository from the list of selected repositories that are enforced for immutable releases in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`. + + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + operationId: orgs/disable-selected-repository-immutable-releases-organization + tags: + - orgs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + "/orgs/{org}/settings/network-configurations": + get: + summary: List hosted compute network configurations for an organization + description: |- + Lists all hosted compute network configurations configured in an organization. + + OAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint. + tags: + - hosted-compute + operationId: hosted-compute/list-network-configurations-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/network-configurations#list-hosted-compute-network-configurations-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - network_configurations + properties: + total_count: + type: integer + network_configurations: + type: array + items: + "$ref": "#/components/schemas/network-configuration" + examples: + default: + "$ref": "#/components/examples/network-configurations-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: network-configurations + post: + summary: Create a hosted compute network configuration for an organization + description: |- + Creates a hosted compute network configuration for an organization. + + OAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint. + tags: + - hosted-compute + operationId: hosted-compute/create-network-configuration-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/network-configurations#create-a-hosted-compute-network-configuration-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + description: Name of the network configuration. Must be between + 1 and 100 characters and may only contain upper and lowercase + letters a-z, numbers 0-9, '.', '-', and '_'. + type: string + compute_service: + description: The hosted compute service to use for the network configuration. + type: string + enum: + - none + - actions + network_settings_ids: + type: array + minItems: 1 + maxItems: 1 + description: A list of identifiers of the network settings resources + to use for the network configuration. Exactly one resource identifier + must be specified in the list. + items: + type: string + required: + - name + - network_settings_ids + examples: + default: + value: + name: my-network-configuration + network_settings_ids: + - 23456789ABDCEF1 + compute_service: actions + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/network-configuration" + examples: + default: + "$ref": "#/components/examples/network-configuration" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: network-configurations + "/orgs/{org}/settings/network-configurations/{network_configuration_id}": + get: + summary: Get a hosted compute network configuration for an organization + description: |- + Gets a hosted compute network configuration configured in an organization. + + OAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint. + tags: + - hosted-compute + operationId: hosted-compute/get-network-configuration-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/network-configurations#get-a-hosted-compute-network-configuration-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/network-configuration-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/network-configuration" + examples: + default: + "$ref": "#/components/examples/network-configuration" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: network-configurations + patch: + summary: Update a hosted compute network configuration for an organization + description: |- + Updates a hosted compute network configuration for an organization. + + OAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint. + tags: + - hosted-compute + operationId: hosted-compute/update-network-configuration-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/network-configurations#update-a-hosted-compute-network-configuration-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/network-configuration-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + description: Name of the network configuration. Must be between + 1 and 100 characters and may only contain upper and lowercase + letters a-z, numbers 0-9, '.', '-', and '_'. + type: string + compute_service: + description: The hosted compute service to use for the network configuration. + type: string + enum: + - none + - actions + network_settings_ids: + type: array + minItems: 0 + maxItems: 1 + description: A list of identifiers of the network settings resources + to use for the network configuration. Exactly one resource identifier + must be specified in the list. + items: + type: string + examples: + default: + value: + name: my-network-configuration + network_settings_ids: + - 23456789ABDCEF1 + compute_service: actions + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/network-configuration" + examples: + default: + "$ref": "#/components/examples/network-configuration" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: network-configurations + delete: + summary: Delete a hosted compute network configuration from an organization + description: |- + Deletes a hosted compute network configuration from an organization. + + OAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint. + tags: + - hosted-compute + operationId: hosted-compute/delete-network-configuration-from-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/network-configurations#delete-a-hosted-compute-network-configuration-from-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/network-configuration-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: network-configurations + "/orgs/{org}/settings/network-settings/{network_settings_id}": + get: + summary: Get a hosted compute network settings resource for an organization + description: |- + Gets a hosted compute network settings resource configured for an organization. + + OAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint. + tags: + - hosted-compute + operationId: hosted-compute/get-network-settings-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/network-configurations#get-a-hosted-compute-network-settings-resource-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/network-settings-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/network-settings" + examples: + default: + "$ref": "#/components/examples/network-settings" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: network-configurations + "/orgs/{org}/team/{team_slug}/copilot/metrics": + get: + summary: Get Copilot metrics for a team + description: |- + Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions. + + > [!NOTE] + > This endpoint will only return results for a given day if the team had **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day. + + The response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day, + and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + they must have telemetry enabled in their IDE. + + To access this endpoint, the Copilot Metrics API access policy must be enabled for the organization containing the team within GitHub settings. + Only organization owners for the organization that contains this team and owners and billing managers of the parent enterprise can view Copilot metrics for a team. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/copilot-metrics-for-team + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-a-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - name: since + description: Show usage metrics since this date. This is a timestamp in [ISO + 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). + Maximum value is 100 days ago. + in: query + required: false + schema: + type: string + - name: until + description: Show usage metrics until this date. This is a timestamp in [ISO + 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) + and should not preceed the `since` date if it is passed. + in: query + required: false + schema: + type: string + - "$ref": "#/components/parameters/page" + - name: per_page + description: The number of days of metrics to display per page (max 100). + For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 100 + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/copilot-usage-metrics-day" + examples: + default: + "$ref": "#/components/examples/copilot-usage-metrics-for-day" + '500': + "$ref": "#/components/responses/internal_error" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/usage_metrics_api_disabled" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-metrics + "/orgs/{org}/teams": + get: + summary: List teams + description: Lists all teams in an organization that are visible to the authenticated + user. + tags: + - teams + operationId: teams/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#list-teams + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + default: + "$ref": "#/components/examples/team-items" + headers: + Link: + "$ref": "#/components/headers/link" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + post: + summary: Create a team + description: |- + To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + + When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + tags: + - teams + operationId: teams/create + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#create-a-team + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the team. + description: + type: string + description: The description of the team. + maintainers: + type: array + description: List GitHub usernames for organization members who + will become team maintainers. + items: + type: string + repo_names: + type: array + description: The full name (e.g., "organization-name/repository-name") + of repositories to add the team to. + items: + type: string + privacy: + type: string + description: "The level of privacy this team should have. The options + are: \n**For a non-nested team:** \n * `secret` - only visible + to organization owners and members of this team. \n * `closed` + - visible to all members of this organization. \nDefault: `secret` + \ \n**For a parent or child team:** \n * `closed` - visible to + all members of this organization. \nDefault for child team: `closed`" + enum: + - secret + - closed + notification_setting: + type: string + description: "The notification setting the team has chosen. The + options are: \n * `notifications_enabled` - team members receive + notifications when the team is @mentioned. \n * `notifications_disabled` + - no one receives notifications. \nDefault: `notifications_enabled`" + enum: + - notifications_enabled + - notifications_disabled + permission: + type: string + description: "**Closing down notice**. The permission that new repositories + will be added to the team with when none is specified." + enum: + - pull + - push + default: pull + parent_team_id: + type: integer + description: The ID of a team to set as the parent team. + required: + - name + examples: + default: + value: + name: Justice League + description: A great team + permission: push + notification_setting: notifications_enabled + privacy: closed + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + "/orgs/{org}/teams/{team_slug}": + get: + summary: Get a team by name + description: |- + Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + tags: + - teams + operationId: teams/get-by-name + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#get-a-team-by-name + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + patch: + summary: Update a team + description: |- + To edit a team, the authenticated user must either be an organization owner or a team maintainer. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + tags: + - teams + operationId: teams/update-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#update-a-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the team. + description: + type: string + description: The description of the team. + privacy: + type: string + description: "The level of privacy this team should have. Editing + teams without specifying this parameter leaves `privacy` intact. + When a team is nested, the `privacy` for parent teams cannot be + `secret`. The options are: \n**For a non-nested team:** \n * + `secret` - only visible to organization owners and members of + this team. \n * `closed` - visible to all members of this organization. + \ \n**For a parent or child team:** \n * `closed` - visible to + all members of this organization." + enum: + - secret + - closed + notification_setting: + type: string + description: "The notification setting the team has chosen. Editing + teams without specifying this parameter leaves `notification_setting` + intact. The options are: \n * `notifications_enabled` - team members + receive notifications when the team is @mentioned. \n * `notifications_disabled` + - no one receives notifications." + enum: + - notifications_enabled + - notifications_disabled + permission: + type: string + description: "**Closing down notice**. The permission that new repositories + will be added to the team with when none is specified." + enum: + - pull + - push + - admin + default: pull + parent_team_id: + type: integer + description: The ID of a team to set as the parent team. + nullable: true + examples: + default: + value: + name: new team name + description: new team description + privacy: closed + notification_setting: notifications_enabled + responses: + '200': + description: Response when the updated information already exists + content: + application/json: + schema: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full" + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + delete: + summary: Delete a team + description: |- + To delete a team, the authenticated user must be an organization owner or team maintainer. + + If you are an organization owner, deleting a parent team will delete all of its child teams as well. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + tags: + - teams + operationId: teams/delete-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#delete-a-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + "/orgs/{org}/teams/{team_slug}/invitations": + get: + summary: List pending team invitations + description: |- + The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + tags: + - teams + operationId: teams/list-pending-invitations-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#list-pending-team-invitations + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-invitation" + examples: + default: + "$ref": "#/components/examples/organization-invitation-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: members + "/orgs/{org}/teams/{team_slug}/members": + get: + summary: List team members + description: |- + Team members will include the members of child teams. + + To list members in a team, the team must be visible to the authenticated user. + tags: + - teams + operationId: teams/list-members-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#list-team-members + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - name: role + description: Filters members returned by their role in the team. + in: query + required: false + schema: + type: string + enum: + - member + - maintainer + - all + default: all + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: members + "/orgs/{org}/teams/{team_slug}/memberships/{username}": + get: + summary: Get team membership for a user + description: |- + Team members will include the members of child teams. + + To get a user's membership with a team, the team must be visible to the authenticated user. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + + > [!NOTE] + > The response contains the `state` of the membership and the member's `role`. + + The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + tags: + - teams + operationId: teams/get-membership-for-user-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#get-team-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-membership" + examples: + response-if-user-is-a-team-maintainer: + "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + '404': + description: if user has no team membership + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: members + put: + summary: Add or update team membership for a user + description: |- + Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + + Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + > [!NOTE] + > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + + An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + + If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + tags: + - teams + operationId: teams/add-or-update-membership-for-user-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/username" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + role: + type: string + description: The role that this user should have in the team. + enum: + - member + - maintainer + default: member + examples: + default: + summary: Add or update team membership for an organization member + value: + role: maintainer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-membership" + examples: + response-if-users-membership-with-team-is-now-pending: + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + '403': + description: Forbidden if team synchronization is set up + '422': + description: Unprocessable Entity if you attempt to add an organization + to a team + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: members + delete: + summary: Remove team membership for a user + description: |- + To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + + Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + > [!NOTE] + > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + tags: + - teams + operationId: teams/remove-membership-for-user-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '403': + description: Forbidden if team synchronization is set up + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: members + "/orgs/{org}/teams/{team_slug}/repos": + get: + summary: List team repositories + description: |- + Lists a team's repositories visible to the authenticated user. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + tags: + - teams + operationId: teams/list-repos-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#list-team-repositories + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": + get: + summary: Check team permissions for a repository + description: |- + Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + + You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types/) via the `application/vnd.github.v3.repository+json` accept header. + + If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + + If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + tags: + - teams + operationId: teams/check-permissions-for-repo-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Alternative response with repository permissions + content: + application/json: + schema: + "$ref": "#/components/schemas/team-repository" + examples: + alternative-response-with-repository-permissions: + "$ref": "#/components/examples/team-repository-alternative-response-with-repository-permissions" + '204': + description: Response if team has permission for the repository. This is + the response when the repository media type hasn't been provded in the + Accept header. + '404': + description: Not Found if team does not have permission for the repository + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + put: + summary: Add or update team repository permissions + description: |- + To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + + For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + tags: + - teams + operationId: teams/add-or-update-repo-permissions-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + permission: + type: string + description: 'The permission to grant the team on this repository. + We accept the following permissions to be set: `pull`, `triage`, + `push`, `maintain`, `admin` and you can also specify a custom + repository role name, if the owning organization has defined any. + If no permission is specified, the team''s `permission` attribute + will be used to determine what permission to grant the team on + this repository.' + examples: + default: + summary: Adding a team to an organization repository with the write + role + value: + permission: push + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + delete: + summary: Remove a repository from a team + description: |- + If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + tags: + - teams + operationId: teams/remove-repo-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + "/orgs/{org}/teams/{team_slug}/teams": + get: + summary: List child teams + description: |- + Lists the child teams of the team specified by `{team_slug}`. + + > [!NOTE] + > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + tags: + - teams + operationId: teams/list-child-in-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#list-child-teams + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/team-slug" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: if child teams exist + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + response-if-child-teams-exist: + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: teams + subcategory: teams + "/orgs/{org}/{security_product}/{enablement}": + post: + summary: Enable or disable a security feature for an organization + description: |- + > [!WARNING] + > **Closing down notice:** The ability to enable or disable a security feature for all eligible repositories in an organization is closing down. Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. For more information, see the [changelog](https://github.blog/changelog/2024-07-22-deprecation-of-api-endpoint-to-enable-or-disable-a-security-feature-for-an-organization/). + + Enables or disables the specified security feature for all eligible repositories in an organization. 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)." + + The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `admin:org`, `write:org`, or `repo` scopes to use this endpoint. + tags: + - orgs + operationId: orgs/enable-or-disable-security-product-on-all-org-repos + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization + parameters: + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/security-product" + - "$ref": "#/components/parameters/org-security-product-enablement" + requestBody: + required: false + content: + application/json: + schema: + properties: + query_suite: + description: |- + CodeQL query suite to be used. If you specify the `query_suite` parameter, the default setup will be configured with this query suite only on all repositories that didn't have default setup already configured. It will not change the query suite on repositories that already have default setup configured. + If you don't specify any `query_suite` in your request, the preferred query suite of the organization will be applied. + type: string + enum: + - default + - extended + examples: + default: + value: + responses: + '204': + description: Action started + '422': + description: The action could not be taken due to an in progress enablement, + or a policy is preventing enablement + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: orgs + subcategory: orgs + deprecationDate: '2024-07-22' + removalDate: '2025-07-22' + deprecated: true + "/rate_limit": + get: + summary: Get rate limit status for the authenticated user + description: |- + > [!NOTE] + > Accessing this endpoint does not count against your REST API rate limit. + + Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * The `dependency_sbom` object provides your rate limit status for requesting SBOMs from the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/about-the-rest-api/api-versions)." + + > [!NOTE] + > The `rate` object is closing down. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + tags: + - rate-limit + operationId: rate-limit/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/rate-limit/rate-limit#get-rate-limit-status-for-the-authenticated-user + parameters: [] + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/rate-limit-overview" + examples: + default: + "$ref": "#/components/examples/rate-limit-overview" + headers: + X-RateLimit-Limit: + "$ref": "#/components/headers/x-rate-limit-limit" + X-RateLimit-Remaining: + "$ref": "#/components/headers/x-rate-limit-remaining" + X-RateLimit-Reset: + "$ref": "#/components/headers/x-rate-limit-reset" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: rate-limit + subcategory: rate-limit + "/repos/{owner}/{repo}": + get: + summary: Get a repository + description: |- + The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + + > [!NOTE] + > - In order to see the `security_and_analysis` block for a repository 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)." + > - To view merge-related settings, you must have the `contents:read` and `contents:write` permissions. + tags: + - repos + operationId: repos/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#get-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/full-repository" + examples: + default-response: + "$ref": "#/components/examples/full-repository-default-response" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '301': + "$ref": "#/components/responses/moved_permanently" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + patch: + summary: Update a repository + description: "**Note**: To edit a repository's topics, use the [Replace all + repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) + endpoint." + tags: + - repos + operationId: repos/update + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#update-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + 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 + description: |- + Specify which security and analysis features to enable or disable for the repository. + + To 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)." + + For example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request: + `{ "security_and_analysis": {"advanced_security": { "status": "enabled" } } }`. + + You can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request. + nullable: true + properties: + advanced_security: + type: object + description: |- + Use the `status` property to enable or disable GitHub Advanced Security for this repository. + For more information, see "[About GitHub Advanced + Security](/github/getting-started-with-github/learning-about-github/about-github-advanced-security)." + + For 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`. + 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 + deprecated: true + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + Required when using `squash_merge_commit_message`. + + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + Required when using `merge_commit_message`. + + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `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 + examples: + default: + value: + name: Hello-World + description: This is your first repository + homepage: https://github.com + private: true + has_issues: true + has_projects: true + has_wiki: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/full-repository" + examples: + default: + "$ref": "#/components/examples/full-repository" + '307': + "$ref": "#/components/responses/temporary_redirect" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + delete: + summary: Delete a repository + description: |- + Deleting a repository requires admin access. + + If an organization owner has configured the organization to prevent members from deleting organization-owned + repositories, you will get a `403 Forbidden` response. + + OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + tags: + - repos + operationId: repos/delete + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#delete-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + '403': + description: 'If an organization owner has configured the organization to + prevent members from deleting organization-owned repositories, a member + will get this response:' + content: + application/json: + schema: + type: object + properties: + message: + type: string + documentation_url: + type: string + examples: + default: + value: + message: Organization members cannot delete repositories. + documentation_url: https://docs.github.com/rest/repos/repos#delete-a-repository + '307': + "$ref": "#/components/responses/temporary_redirect" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/actions/artifacts": + get: + summary: List artifacts for a repository + description: |- + Lists all artifacts for a repository. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-artifacts-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/artifact-name" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - artifacts + properties: + total_count: + type: integer + artifacts: + type: array + items: + "$ref": "#/components/schemas/artifact" + examples: + default: + "$ref": "#/components/examples/artifact-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: artifacts + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": + get: + summary: Get an artifact + description: |- + Gets a specific artifact for a workflow run. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-artifact + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/artifacts#get-an-artifact + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/artifact-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/artifact" + examples: + default: + "$ref": "#/components/examples/artifact" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: artifacts + delete: + summary: Delete an artifact + description: |- + Deletes an artifact for a workflow run. + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-artifact + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/artifacts#delete-an-artifact + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/artifact-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: artifacts + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": + get: + summary: Download an artifact + description: |- + Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + the response header to find the URL for the download. The `:archive_format` must be `zip`. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/download-artifact + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/artifacts#download-an-artifact + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/artifact-id" + - name: archive_format + in: path + required: true + schema: + type: string + responses: + '302': + description: Response + headers: + Location: + "$ref": "#/components/headers/location" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: artifacts + "/repos/{owner}/{repo}/actions/cache/retention-limit": + get: + summary: Get GitHub Actions cache retention limit for a repository + description: |- + Gets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if + not manually removed or evicted due to size constraints. + + OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-retention-limit-for-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" + examples: + default: + "$ref": "#/components/examples/actions-cache-retention-limit" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + put: + summary: Set GitHub Actions cache retention limit for a repository + description: |- + Sets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if + not manually removed or evicted due to size constraints. + + OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + tags: + - actions + operationId: actions/set-actions-cache-retention-limit-for-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" + examples: + selected_actions: + "$ref": "#/components/examples/actions-cache-retention-limit" + responses: + '204': + description: Response + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/repos/{owner}/{repo}/actions/cache/storage-limit": + get: + summary: Get GitHub Actions cache storage limit for a repository + description: |- + Gets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be + stored before eviction occurs. + + OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-storage-limit-for-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" + examples: + default: + "$ref": "#/components/examples/actions-cache-storage-limit" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + put: + summary: Set GitHub Actions cache storage limit for a repository + description: |- + Sets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be + stored before eviction occurs. + + OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + tags: + - actions + operationId: actions/set-actions-cache-storage-limit-for-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" + examples: + selected_actions: + "$ref": "#/components/examples/actions-cache-storage-limit" + responses: + '204': + description: Response + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/repos/{owner}/{repo}/actions/cache/usage": + get: + summary: Get GitHub Actions cache usage for a repository + description: |- + Gets GitHub Actions cache usage for a repository. + The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-usage + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-usage-by-repository" + examples: + default: + "$ref": "#/components/examples/actions-cache-usage" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/repos/{owner}/{repo}/actions/caches": + get: + summary: List GitHub Actions caches for a repository + description: |- + Lists the GitHub Actions caches for a repository. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-actions-cache-list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/actions-cache-git-ref-full" + - "$ref": "#/components/parameters/actions-cache-key" + - "$ref": "#/components/parameters/actions-cache-list-sort" + - "$ref": "#/components/parameters/direction" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-list" + examples: + default: + "$ref": "#/components/examples/actions-cache-list" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: actions + subcategory: cache + delete: + summary: Delete GitHub Actions caches for a repository (using a cache key) + description: |- + Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-actions-cache-by-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/actions-cache-key-required" + - "$ref": "#/components/parameters/actions-cache-git-ref-full" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-cache-list" + examples: + default: + "$ref": "#/components/examples/actions-cache-list" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/repos/{owner}/{repo}/actions/caches/{cache_id}": + delete: + summary: Delete a GitHub Actions cache for a repository (using a cache ID) + description: |- + Deletes a GitHub Actions cache for a repository, using a cache ID. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-actions-cache-by-id + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/cache-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: cache + "/repos/{owner}/{repo}/actions/jobs/{job_id}": + get: + summary: Get a job for a workflow run + description: |- + Gets a specific job in a workflow run. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-job-for-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-jobs#get-a-job-for-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/job-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/job" + examples: + default: + "$ref": "#/components/examples/job" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-jobs + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": + get: + summary: Download job logs for a workflow run + description: |- + Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + for `Location:` in the response header to find the URL for the download. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/download-job-logs-for-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-jobs#download-job-logs-for-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/job-id" + responses: + '302': + description: Response + headers: + Location: + example: https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/jobs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D + schema: + type: string + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-jobs + "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": + post: + summary: Re-run a job from a workflow run + description: |- + Re-run a job and its dependent jobs in a workflow run. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/re-run-job-for-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/job-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + enable_debug_logging: + type: boolean + default: false + description: Whether to enable debug logging for the re-run. + examples: + default: + value: + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/oidc/customization/sub": + get: + summary: Get the customization template for an OIDC subject claim for a repository + description: |- + Gets the customization template for an OpenID Connect (OIDC) subject claim. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-custom-oidc-sub-claim-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Status response + content: + application/json: + schema: + "$ref": "#/components/schemas/oidc-custom-sub-repo" + examples: + default: + "$ref": "#/components/examples/oidc-custom-sub-repo" + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + previews: [] + category: actions + subcategory: oidc + put: + summary: Set the customization template for an OIDC subject claim for a repository + description: |- + Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/set-custom-oidc-sub-claim-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + title: Actions OIDC subject customization for a repository + description: Actions OIDC subject customization for a repository + type: object + required: + - use_default + properties: + use_default: + description: Whether to use the default template or not. If `true`, + the `include_claim_keys` field is ignored. + type: boolean + include_claim_keys: + description: Array of unique strings. Each claim key can only contain + alphanumeric characters and underscores. + type: array + items: + type: string + examples: + default: + value: + use_default: false + include_claim_keys: + - repo + - context + responses: + '201': + description: Empty response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '404': + "$ref": "#/components/responses/not_found" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + enabledForGitHubApps: true + previews: [] + category: actions + subcategory: oidc + "/repos/{owner}/{repo}/actions/organization-secrets": + get: + summary: List repository organization secrets + description: |- + Lists all organization secrets shared with a repository without revealing their encrypted + values. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-repo-organization-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/actions-secret" + examples: + default: + "$ref": "#/components/examples/actions-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/repos/{owner}/{repo}/actions/organization-variables": + get: + summary: List repository organization variables + description: |- + Lists all organization variables shared with a repository. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-repo-organization-variables + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#list-repository-organization-variables + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/variables-per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - variables + properties: + total_count: + type: integer + variables: + type: array + items: + "$ref": "#/components/schemas/actions-variable" + examples: + default: + "$ref": "#/components/examples/actions-variables-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/repos/{owner}/{repo}/actions/permissions": + get: + summary: Get GitHub Actions permissions for a repository + description: |- + Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/get-github-actions-permissions-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-repository-permissions" + examples: + default: + "$ref": "#/components/examples/actions-repository-permissions" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + put: + summary: Set GitHub Actions permissions for a repository + description: |- + Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/set-github-actions-permissions-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + enabled: + "$ref": "#/components/schemas/actions-enabled" + allowed_actions: + "$ref": "#/components/schemas/allowed-actions" + sha_pinning_required: + "$ref": "#/components/schemas/sha-pinning-required" + required: + - enabled + examples: + default: + value: + enabled: true + allowed_actions: selected + sha_pinning_required: true + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + "/repos/{owner}/{repo}/actions/permissions/access": + get: + summary: Get the level of access for workflows outside of the repository + description: |- + Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + This endpoint only applies to private repositories. + For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-workflow-access-to-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-the-level-of-access-for-workflows-outside-of-the-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-workflow-access-to-repository" + examples: + default: + "$ref": "#/components/examples/actions-workflow-access-to-repository" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: actions + subcategory: permissions + put: + summary: Set the level of access for workflows outside of the repository + description: |- + Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + This endpoint only applies to private repositories. + For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/set-workflow-access-to-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-the-level-of-access-for-workflows-outside-of-the-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-workflow-access-to-repository" + examples: + default: + "$ref": "#/components/examples/actions-workflow-access-to-repository" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: actions + subcategory: permissions + "/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention": + get: + summary: Get artifact and log retention settings for a repository + description: |- + Gets artifact and log retention settings for a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/get-artifact-and-log-retention-settings-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-artifact-and-log-retention-settings-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-artifact-and-log-retention-response" + examples: + default: + value: + days: 90 + maximum_allowed_days: 365 + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set artifact and log retention settings for a repository + description: |- + Sets artifact and log retention settings for a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/set-artifact-and-log-retention-settings-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-artifact-and-log-retention-settings-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Empty response for successful settings update + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-artifact-and-log-retention" + examples: + default: + summary: Set retention days + value: + days: 90 + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval": + get: + summary: Get fork PR contributor approval permissions for a repository + description: |- + Gets the fork PR contributor approval policy for a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/get-fork-pr-contributor-approval-permissions-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-fork-pr-contributor-approval-permissions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + examples: + default: + "$ref": "#/components/examples/actions-fork-pr-contributor-approval" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set fork PR contributor approval permissions for a repository + description: |- + Sets the fork PR contributor approval policy for a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/set-fork-pr-contributor-approval-permissions-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-fork-pr-contributor-approval-permissions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + examples: + default: + summary: Set approval policy to first time contributors + value: + approval_policy: first_time_contributors + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos": + get: + summary: Get private repo fork PR workflow settings for a repository + description: |- + Gets the settings for whether workflows from fork pull requests can run on a private repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/get-private-repo-fork-pr-workflows-settings-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-private-repo-fork-pr-workflow-settings-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos" + examples: + default: + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set private repo fork PR workflow settings for a repository + description: |- + Sets the settings for whether workflows from fork pull requests can run on a private repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/set-private-repo-fork-pr-workflows-settings-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-private-repo-fork-pr-workflow-settings-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos-request" + examples: + default: + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + responses: + '204': + description: Empty response for successful settings update + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/repos/{owner}/{repo}/actions/permissions/selected-actions": + get: + summary: Get allowed actions and reusable workflows for a repository + description: |- + Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/get-allowed-actions-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/selected-actions" + examples: + default: + "$ref": "#/components/examples/selected-actions" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + put: + summary: Set allowed actions and reusable workflows for a repository + description: |- + Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/set-allowed-actions-repository + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + requestBody: + required: false + content: + application/json: + schema: + "$ref": "#/components/schemas/selected-actions" + examples: + selected_actions: + "$ref": "#/components/examples/selected-actions" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: actions + subcategory: permissions + "/repos/{owner}/{repo}/actions/permissions/workflow": + get: + summary: Get default workflow permissions for a repository + description: |- + Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + as well as if GitHub Actions can submit approving pull request reviews. + For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-github-actions-default-workflow-permissions-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-get-default-workflow-permissions" + examples: + default: + "$ref": "#/components/examples/actions-default-workflow-permissions" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: permissions + put: + summary: Set default workflow permissions for a repository + description: |- + Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + can submit approving pull request reviews. + For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/set-github-actions-default-workflow-permissions-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Success response + '409': + description: Conflict response when changing a setting is prevented by the + owning organization + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-set-default-workflow-permissions" + examples: + default: + "$ref": "#/components/examples/actions-default-workflow-permissions" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: permissions + "/repos/{owner}/{repo}/actions/runners": + get: + summary: List self-hosted runners for a repository + description: |- + Lists all self-hosted runners configured in a repository. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-self-hosted-runners-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-a-repository + parameters: + - name: name + description: The name of a self-hosted runner. + in: query + schema: + type: string + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - runners + properties: + total_count: + type: integer + runners: + type: array + items: + "$ref": "#/components/schemas/runner" + examples: + default: + "$ref": "#/components/examples/runner-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runners/downloads": + get: + summary: List runner applications for a repository + description: |- + Lists binaries for the runner application that you can download and run. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-runner-applications-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/runner-application" + examples: + default: + "$ref": "#/components/examples/runner-application-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runners/generate-jitconfig": + post: + summary: Create configuration for a just-in-time runner for a repository + description: |- + Generates a configuration that can be passed to the runner application at startup. + + The authenticated user must have admin access to the repository. + + OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + tags: + - actions + operationId: actions/generate-runner-jitconfig-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - name + - runner_group_id + - labels + properties: + name: + type: string + description: The name of the new runner. + runner_group_id: + type: integer + description: The ID of the runner group to register the runner to. + labels: + type: array + minItems: 1 + maxItems: 100 + items: + type: string + description: 'The names of the custom labels to add to the runner. + **Minimum items**: 1. **Maximum items**: 100.' + work_folder: + type: string + description: The working directory to be used for job execution, + relative to the runner install directory. + default: _work + examples: + default: + value: + name: New runner + runner_group_id: 1 + labels: + - self-hosted + - X64 + - macOS + - no-gpu + work_folder: _work + responses: + '201': + "$ref": "#/components/responses/actions_runner_jitconfig" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runners/registration-token": + post: + summary: Create a registration token for a repository + description: |- + Returns a token that you can pass to the `config` script. The token expires after one hour. + + For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + + ``` + ./config.sh --url https://github.com/octo-org --token TOKEN + ``` + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-registration-token-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/authentication-token" + examples: + default: + "$ref": "#/components/examples/authentication-token" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runners/remove-token": + post: + summary: Create a remove token for a repository + description: |- + Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + + For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + + ``` + ./config.sh remove --token TOKEN + ``` + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-remove-token-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/authentication-token" + examples: + default: + "$ref": "#/components/examples/authentication-token-2" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runners/{runner_id}": + get: + summary: Get a self-hosted runner for a repository + description: |- + Gets a specific self-hosted runner configured in a repository. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-self-hosted-runner-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/runner-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/runner" + examples: + default: + "$ref": "#/components/examples/runner" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + delete: + summary: Delete a self-hosted runner from a repository + description: |- + Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-self-hosted-runner-from-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/runner-id" + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": + get: + summary: List labels for a self-hosted runner for a repository + description: |- + Lists all labels for a self-hosted runner configured in a repository. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-labels-for-self-hosted-runner-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/runner-id" + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + post: + summary: Add custom labels to a self-hosted runner for a repository + description: |- + Adds custom labels to a self-hosted runner configured in a repository. + + Authenticated users must have admin access to the organization to use this endpoint. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/add-custom-labels-to-self-hosted-runner-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/runner-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - labels + properties: + labels: + type: array + minItems: 1 + maxItems: 100 + description: The names of the custom labels to add to the runner. + items: + type: string + examples: + default: + value: + labels: + - gpu + - accelerated + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + put: + summary: Set custom labels for a self-hosted runner for a repository + description: |- + Remove all previous custom labels and set the new custom labels for a specific + self-hosted runner configured in a repository. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/set-custom-labels-for-self-hosted-runner-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/runner-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - labels + properties: + labels: + type: array + minItems: 0 + maxItems: 100 + description: The names of the custom labels to set for the runner. + You can pass an empty array to remove all custom labels. + items: + type: string + examples: + default: + value: + labels: + - gpu + - accelerated + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + delete: + summary: Remove all custom labels from a self-hosted runner for a repository + description: |- + Remove all custom labels from a self-hosted runner configured in a + repository. Returns the remaining read-only labels from the runner. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/remove-all-custom-labels-from-self-hosted-runner-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/runner-id" + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels_readonly" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": + delete: + summary: Remove a custom label from a self-hosted runner for a repository + description: |- + Remove a custom label from a self-hosted runner configured + in a repository. Returns the remaining labels from the runner. + + This endpoint returns a `404 Not Found` status if the custom label is not + present on the runner. + + Authenticated users must have admin access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/remove-custom-label-from-self-hosted-runner-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/runner-id" + - "$ref": "#/components/parameters/runner-label-name" + responses: + '200': + "$ref": "#/components/responses/actions_runner_labels" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: self-hosted-runners + "/repos/{owner}/{repo}/actions/runs": + get: + summary: List workflow runs for a repository + description: |- + Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + + This endpoint will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`. + tags: + - actions + operationId: actions/list-workflow-runs-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/actor" + - "$ref": "#/components/parameters/workflow-run-branch" + - "$ref": "#/components/parameters/event" + - "$ref": "#/components/parameters/workflow-run-status" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/created" + - "$ref": "#/components/parameters/exclude-pull-requests" + - "$ref": "#/components/parameters/workflow-run-check-suite-id" + - "$ref": "#/components/parameters/workflow-run-head-sha" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - workflow_runs + properties: + total_count: + type: integer + workflow_runs: + type: array + items: + "$ref": "#/components/schemas/workflow-run" + examples: + default: + "$ref": "#/components/examples/workflow-run-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}": + get: + summary: Get a workflow run + description: |- + Gets a specific workflow run. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/get-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + - "$ref": "#/components/parameters/exclude-pull-requests" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/workflow-run" + examples: + default: + "$ref": "#/components/examples/workflow-run" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + delete: + summary: Delete a workflow run + description: |- + Deletes a specific workflow run. + + Anyone with write access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/delete-workflow-run + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#delete-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": + get: + summary: Get the review history for a workflow run + description: |- + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/get-reviews-for-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/environment-approvals" + examples: + default: + "$ref": "#/components/examples/environment-approvals-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": + post: + summary: Approve a workflow run for a fork pull request + description: |- + Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/approve-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#approve-a-workflow-run-for-a-fork-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": + get: + summary: List workflow run artifacts + description: |- + Lists artifacts for a workflow run. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-workflow-run-artifacts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/artifact-name" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - artifacts + properties: + total_count: + type: integer + artifacts: + type: array + items: + "$ref": "#/components/schemas/artifact" + examples: + default: + "$ref": "#/components/examples/artifact-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: artifacts + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": + get: + summary: Get a workflow run attempt + description: |- + Gets a specific workflow run attempt. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/get-workflow-run-attempt + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run-attempt + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + - "$ref": "#/components/parameters/attempt-number" + - "$ref": "#/components/parameters/exclude-pull-requests" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/workflow-run" + examples: + default: + "$ref": "#/components/examples/workflow-run" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": + get: + summary: List jobs for a workflow run attempt + description: |- + Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-jobs-for-workflow-run-attempt + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + - "$ref": "#/components/parameters/attempt-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - jobs + properties: + total_count: + type: integer + jobs: + type: array + items: + "$ref": "#/components/schemas/job" + examples: + default: + "$ref": "#/components/examples/job-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-jobs + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": + get: + summary: Download workflow run attempt logs + description: |- + Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + 1 minute. Look for `Location:` in the response header to find the URL for the download. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/download-workflow-run-attempt-logs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-attempt-logs + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + - "$ref": "#/components/parameters/attempt-number" + responses: + '302': + description: Response + headers: + Location: + example: https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D + schema: + type: string + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": + post: + summary: Cancel a workflow run + description: |- + Cancels a workflow run using its `id`. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/cancel-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#cancel-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": + post: + summary: Review custom deployment protection rules for a workflow run + description: |- + Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + + > [!NOTE] + > GitHub Apps can only review their own custom deployment protection rules. To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/review-custom-gates-for-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + requestBody: + required: true + content: + application/json: + schema: + anyOf: + - "$ref": "#/components/schemas/review-custom-gates-comment-required" + - "$ref": "#/components/schemas/review-custom-gates-state-required" + examples: + default: + value: + environment_name: prod-eus + state: approved + comment: All health checks passed. + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": + post: + summary: Force cancel a workflow run + description: |- + Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/force-cancel-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#force-cancel-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": + get: + summary: List jobs for a workflow run + description: |- + Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-jobs-for-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + - name: filter + description: Filters jobs by their `completed_at` timestamp. `latest` returns + jobs from the most recent execution of the workflow run. `all` returns all + jobs for a workflow run, including from old executions of the workflow run. + in: query + required: false + schema: + type: string + enum: + - latest + - all + default: latest + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - jobs + properties: + total_count: + type: integer + jobs: + type: array + items: + "$ref": "#/components/schemas/job" + examples: + default: + "$ref": "#/components/examples/job-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-jobs + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": + get: + summary: Download workflow run logs + description: |- + Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + `Location:` in the response header to find the URL for the download. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/download-workflow-run-logs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-logs + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '302': + description: Response + headers: + Location: + example: https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D + schema: + type: string + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + delete: + summary: Delete workflow run logs + description: |- + Deletes all logs for a workflow run. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-workflow-run-logs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#delete-workflow-run-logs + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": + get: + summary: Get pending deployments for a workflow run + description: |- + Get all deployment environments for a workflow run that are waiting for protection rules to pass. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-pending-deployments-for-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#get-pending-deployments-for-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/pending-deployment" + examples: + default: + "$ref": "#/components/examples/pending-deployment-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + post: + summary: Review pending deployments for a workflow run + description: |- + Approve or reject pending deployments that are waiting on approval by a required reviewer. + + Required reviewers with read access to the repository contents and deployments can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/review-pending-deployments-for-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + environment_ids: + type: array + description: The list of environment ids to approve or reject + example: + - 161171787 + - 161171795 + items: + type: integer + example: 161171787 + state: + type: string + description: Whether to approve or reject deployment to the specified + environments. + enum: + - approved + - rejected + example: approved + comment: + type: string + description: A comment to accompany the deployment review + example: Ship it! + required: + - environment_ids + - state + - comment + examples: + default: + value: + environment_ids: + - 161171787 + state: approved + comment: Ship it! + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/deployment" + examples: + default: + "$ref": "#/components/examples/deployment-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": + post: + summary: Re-run a workflow + description: |- + Re-runs your workflow run using its `id`. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/re-run-workflow + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#re-run-a-workflow + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + enable_debug_logging: + type: boolean + default: false + description: Whether to enable debug logging for the re-run. + examples: + default: + value: + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": + post: + summary: Re-run failed jobs from a workflow run + description: |- + Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/re-run-workflow-failed-jobs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#re-run-failed-jobs-from-a-workflow-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + enable_debug_logging: + type: boolean + default: false + description: Whether to enable debug logging for the re-run. + examples: + default: + value: + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": + get: + summary: Get workflow run usage + description: "> [!WARNING] \n> This endpoint is in the process of closing down. + Refer to \"[Actions Get workflow usage and Get workflow run usage endpoints + closing down](https://github.blog/changelog/2025-02-02-actions-get-workflow-usage-and-get-workflow-run-usage-endpoints-closing-down/)\" + for more information.\n\nGets the number of billable minutes and total run + time for a specific workflow run. Billable minutes only apply to workflows + in private repositories that use GitHub-hosted runners. Usage is listed for + each GitHub-hosted runner operating system in milliseconds. Any job re-runs + are also included in the usage. The usage does not include the multiplier + for macOS and Windows runners and is not rounded up to the nearest whole minute. + For more information, see \"[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAnyone + with read access to the repository can use this endpoint.\n\nOAuth app tokens + and personal access tokens (classic) need the `repo` scope to use this endpoint + with a private repository." + tags: + - actions + operationId: actions/get-workflow-run-usage + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#get-workflow-run-usage + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/run-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/workflow-run-usage" + examples: + default: + "$ref": "#/components/examples/workflow-run-usage" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/secrets": + get: + summary: List repository secrets + description: |- + Lists all secrets available in a repository without revealing their encrypted + values. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-repo-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#list-repository-secrets + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/actions-secret" + examples: + default: + "$ref": "#/components/examples/actions-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/repos/{owner}/{repo}/actions/secrets/public-key": + get: + summary: Get a repository public key + description: |- + Gets your public key, which you need to encrypt secrets. You need to + encrypt a secret before you can create or update secrets. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-repo-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#get-a-repository-public-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-public-key" + examples: + default: + "$ref": "#/components/examples/actions-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": + get: + summary: Get a repository secret + description: |- + Gets a single repository secret without revealing its encrypted value. + + The authenticated user must have collaborator access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#get-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-secret" + examples: + default: + "$ref": "#/components/examples/actions-secret" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + put: + summary: Create or update a repository secret + description: |- + Creates or updates a repository secret with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-or-update-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#create-or-update-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get a repository public + key](https://docs.github.com/rest/actions/secrets#get-a-repository-public-key) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: ID of the key you used to encrypt the secret. + required: + - encrypted_value + - key_id + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + delete: + summary: Delete a repository secret + description: |- + Deletes a secret in a repository using the secret name. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#delete-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/repos/{owner}/{repo}/actions/variables": + get: + summary: List repository variables + description: |- + Lists all repository variables. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-repo-variables + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#list-repository-variables + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/variables-per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - variables + properties: + total_count: + type: integer + variables: + type: array + items: + "$ref": "#/components/schemas/actions-variable" + examples: + default: + "$ref": "#/components/examples/actions-variables-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + post: + summary: Create a repository variable + description: |- + Creates a repository variable that you can reference in a GitHub Actions workflow. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#create-a-repository-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the variable. + value: + type: string + description: The value of the variable. + required: + - name + - value + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/repos/{owner}/{repo}/actions/variables/{name}": + get: + summary: Get a repository variable + description: |- + Gets a specific variable in a repository. + + The authenticated user must have collaborator access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#get-a-repository-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/variable-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-variable" + examples: + default: + "$ref": "#/components/examples/actions-variable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + patch: + summary: Update a repository variable + description: |- + Updates a repository variable that you can reference in a GitHub Actions workflow. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/update-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#update-a-repository-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/variable-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the variable. + value: + type: string + description: The value of the variable. + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + delete: + summary: Delete a repository variable + description: |- + Deletes a repository variable using the variable name. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#delete-a-repository-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/variable-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/repos/{owner}/{repo}/actions/workflows": + get: + summary: List repository workflows + description: |- + Lists the workflows in a repository. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-repo-workflows + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflows#list-repository-workflows + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - workflows + properties: + total_count: + type: integer + workflows: + type: array + items: + "$ref": "#/components/schemas/workflow" + examples: + default: + "$ref": "#/components/examples/workflow-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflows + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": + get: + summary: Get a workflow + description: |- + Gets a specific workflow. You can replace `workflow_id` with the workflow + file name. For example, you could use `main.yaml`. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/get-workflow + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflows#get-a-workflow + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/workflow-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/workflow" + examples: + default: + "$ref": "#/components/examples/workflow" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflows + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": + put: + summary: Disable a workflow + description: |- + Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/disable-workflow + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflows#disable-a-workflow + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/workflow-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflows + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": + post: + summary: Create a workflow dispatch event + description: |- + You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + + You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: actions/create-workflow-dispatch + tags: + - actions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflows#create-a-workflow-dispatch-event + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/workflow-id" + responses: + '204': + description: Response + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + ref: + type: string + description: The git reference for the workflow. The reference can + be a branch or tag name. + inputs: + type: object + description: Input keys and values configured in the workflow file. + The maximum number of properties is 25. Any default properties + configured in the workflow file will be used when `inputs` are + omitted. + additionalProperties: true + maxProperties: 25 + required: + - ref + examples: + default: + value: + ref: topic-branch + inputs: + name: Mona the Octocat + home: San Francisco, CA + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflows + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": + put: + summary: Enable a workflow + description: |- + Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/enable-workflow + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflows#enable-a-workflow + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/workflow-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflows + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": + get: + summary: List workflow runs for a workflow + description: |- + List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + + Anyone with read access to the repository can use this endpoint + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + + This endpoint will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`. + tags: + - actions + operationId: actions/list-workflow-runs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/workflow-id" + - "$ref": "#/components/parameters/actor" + - "$ref": "#/components/parameters/workflow-run-branch" + - "$ref": "#/components/parameters/event" + - "$ref": "#/components/parameters/workflow-run-status" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/created" + - "$ref": "#/components/parameters/exclude-pull-requests" + - "$ref": "#/components/parameters/workflow-run-check-suite-id" + - "$ref": "#/components/parameters/workflow-run-head-sha" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - workflow_runs + properties: + total_count: + type: integer + workflow_runs: + type: array + items: + "$ref": "#/components/schemas/workflow-run" + examples: + default: + "$ref": "#/components/examples/workflow-run-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: workflow-runs + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": + get: + summary: Get workflow usage + description: "> [!WARNING] \n> This endpoint is in the process of closing down. + Refer to \"[Actions Get workflow usage and Get workflow run usage endpoints + closing down](https://github.blog/changelog/2025-02-02-actions-get-workflow-usage-and-get-workflow-run-usage-endpoints-closing-down/)\" + for more information.\n\nGets the number of billable minutes used by a specific + workflow during the current billing cycle. Billable minutes only apply to + workflows in private repositories that use GitHub-hosted runners. Usage is + listed for each GitHub-hosted runner operating system in milliseconds. Any + job re-runs are also included in the usage. The usage does not include the + multiplier for macOS and Windows runners and is not rounded up to the nearest + whole minute. For more information, see \"[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nYou + can replace `workflow_id` with the workflow file name. For example, you could + use `main.yaml`.\n\nAnyone with read access to the repository can use this + endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the + `repo` scope to use this endpoint with a private repository." + tags: + - actions + operationId: actions/get-workflow-usage + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/workflows#get-workflow-usage + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/workflow-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/workflow-usage" + examples: + default: + "$ref": "#/components/examples/workflow-usage" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: actions + subcategory: workflows + "/repos/{owner}/{repo}/activity": + get: + summary: List repository activities + description: |- + Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + + For more information about viewing repository activity, + see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + tags: + - repos + operationId: repos/list-activities + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-repository-activities + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - name: ref + description: |- + The Git reference for the activities you want to list. + + The `ref` for a branch can be formatted either as `refs/heads/BRANCH_NAME` or `BRANCH_NAME`, where `BRANCH_NAME` is the name of your branch. + in: query + required: false + schema: + type: string + - name: actor + description: The GitHub username to use to filter by the actor who performed + the activity. + in: query + required: false + schema: + type: string + - name: time_period + description: |- + The time period to filter by. + + For example, `day` will filter for activity that occurred in the past 24 hours, and `week` will filter for activity that occurred in the past 7 days (168 hours). + in: query + required: false + schema: + type: string + enum: + - day + - week + - month + - quarter + - year + - name: activity_type + description: |- + The activity type to filter by. + + For example, you can choose to filter by "force_push", to see all force pushes to the repository. + in: query + required: false + schema: + type: string + enum: + - push + - force_push + - branch_creation + - branch_deletion + - pr_merge + - merge_queue_merge + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/activity" + examples: + default: + "$ref": "#/components/examples/activity-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/assignees": + get: + summary: List assignees + description: Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) + for issues in a repository. + tags: + - issues + operationId: issues/list-assignees + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/assignees#list-assignees + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: assignees + "/repos/{owner}/{repo}/assignees/{assignee}": + get: + summary: Check if a user can be assigned + description: |- + Checks if a user has permission to be assigned to an issue in this repository. + + If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + + Otherwise a `404` status code is returned. + tags: + - issues + operationId: issues/check-user-can-be-assigned + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: assignee + in: path + required: true + schema: + type: string + responses: + '204': + description: If the `assignee` can be assigned to issues in the repository, + a `204` header with no content is returned. + '404': + description: Otherwise a `404` status code is returned. + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: assignees + "/repos/{owner}/{repo}/attestations": + post: + summary: Create an attestation + description: |- + Store an artifact attestation and associate it with a repository. + + The authenticated user must have write permission to the repository and, if using a fine-grained access token, the `attestations:write` permission is required. + + Artifact attestations are meant to be created using the [attest action](https://github.com/actions/attest). For more information, see our guide on [using artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + tags: + - repos + operationId: repos/create-attestation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/attestations#create-an-attestation + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + bundle: + type: object + properties: + mediaType: + type: string + verificationMaterial: + type: object + properties: {} + additionalProperties: true + dsseEnvelope: + type: object + properties: {} + additionalProperties: true + description: |- + The attestation's Sigstore Bundle. + Refer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information. + required: + - bundle + examples: + default: + summary: Example of a request body + value: + "$ref": "#/components/examples/attestation" + responses: + '201': + description: response + content: + application/json: + schema: + type: object + properties: + id: + type: integer + description: The ID of the attestation. + examples: + default: + value: + id: 2 + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: attestations + "/repos/{owner}/{repo}/attestations/{subject_digest}": + get: + summary: List attestations + description: |- + List a collection of artifact attestations with a given subject digest that are associated with a repository. + + The authenticated user making the request must have read access to the repository. In addition, when using a fine-grained access token the `attestations:read` permission is required. + + **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + tags: + - repos + operationId: repos/list-attestations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/attestations#list-attestations + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - name: subject_digest + description: The parameter should be set to the attestation's subject's SHA256 + digest, in the form `sha256:HEX_DIGEST`. + in: path + required: true + schema: + type: string + x-multi-segment: true + - name: predicate_type + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text + for custom predicate types. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + attestations: + type: array + items: + type: object + properties: + bundle: + type: object + properties: + mediaType: + type: string + verificationMaterial: + type: object + properties: {} + additionalProperties: true + dsseEnvelope: + type: object + properties: {} + additionalProperties: true + description: |- + The attestation's Sigstore Bundle. + Refer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information. + repository_id: + type: integer + bundle_url: + type: string + initiator: + type: string + examples: + default: + "$ref": "#/components/examples/list-attestations" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: attestations + "/repos/{owner}/{repo}/autolinks": + get: + summary: Get all autolinks of a repository + description: |- + Gets all autolinks that are configured for a repository. + + Information about autolinks are only available to repository administrators. + tags: + - repos + operationId: repos/list-autolinks + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/autolinks#get-all-autolinks-of-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/autolink" + examples: + default: + "$ref": "#/components/examples/autolink-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: autolinks + post: + summary: Create an autolink reference for a repository + description: Users with admin access to the repository can create an autolink. + tags: + - repos + operationId: repos/create-autolink + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/autolinks#create-an-autolink-reference-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + key_prefix: + type: string + description: This prefix appended by certain characters will generate + a link any time it is found in an issue, pull request, or commit. + url_template: + type: string + description: The URL must contain `` for the reference number. + `` matches different characters depending on the value of + `is_alphanumeric`. + is_alphanumeric: + type: boolean + default: true + description: Whether this autolink reference matches alphanumeric + characters. If true, the `` parameter of the `url_template` + matches alphanumeric characters `A-Z` (case insensitive), `0-9`, + and `-`. If false, this autolink reference only matches numeric + characters. + required: + - key_prefix + - url_template + examples: + default: + value: + key_prefix: TICKET- + url_template: https://example.com/TICKET?query= + is_alphanumeric: true + responses: + '201': + description: response + content: + application/json: + schema: + "$ref": "#/components/schemas/autolink" + examples: + default: + "$ref": "#/components/examples/autolink" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/autolinks/1 + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: autolinks + "/repos/{owner}/{repo}/autolinks/{autolink_id}": + get: + summary: Get an autolink reference of a repository + description: |- + This returns a single autolink reference by ID that was configured for the given repository. + + Information about autolinks are only available to repository administrators. + tags: + - repos + operationId: repos/get-autolink + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/autolinks#get-an-autolink-reference-of-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/autolink-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/autolink" + examples: + default: + "$ref": "#/components/examples/autolink" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: autolinks + delete: + summary: Delete an autolink reference from a repository + description: |- + This deletes a single autolink reference by ID that was configured for the given repository. + + Information about autolinks are only available to repository administrators. + tags: + - repos + operationId: repos/delete-autolink + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/autolinks#delete-an-autolink-reference-from-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/autolink-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: autolinks + "/repos/{owner}/{repo}/automated-security-fixes": + get: + summary: Check if Dependabot security updates are enabled for a repository + description: Shows whether Dependabot security updates are enabled, disabled + or paused for a repository. The authenticated user must have admin read access + to the repository. For more information, see "[Configuring Dependabot security + updates](https://docs.github.com/articles/configuring-automated-security-fixes)". + tags: + - repos + operationId: repos/check-automated-security-fixes + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#check-if-dependabot-security-updates-are-enabled-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response if Dependabot is enabled + content: + application/json: + schema: + "$ref": "#/components/schemas/check-automated-security-fixes" + examples: + default: + value: + enabled: true + paused: false + '404': + description: Not Found if Dependabot is not enabled for the repository + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + put: + summary: Enable Dependabot security updates + description: Enables Dependabot security updates for a repository. The authenticated + user must have admin access to the repository. For more information, see "[Configuring + Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)". + tags: + - repos + operationId: repos/enable-automated-security-fixes + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#enable-dependabot-security-updates + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + delete: + summary: Disable Dependabot security updates + description: Disables Dependabot security updates for a repository. The authenticated + user must have admin access to the repository. For more information, see "[Configuring + Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)". + tags: + - repos + operationId: repos/disable-automated-security-fixes + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#disable-dependabot-security-updates + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/branches": + get: + summary: List branches + description: '' + tags: + - repos + operationId: repos/list-branches + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branches#list-branches + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: protected + description: Setting to `true` returns only branches protected by branch protections + or rulesets. When set to `false`, only unprotected branches are returned. + Omitting this parameter returns all branches. + in: query + required: false + schema: + type: boolean + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/short-branch" + examples: + default: + "$ref": "#/components/examples/short-branch-with-protection-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branches + "/repos/{owner}/{repo}/branches/{branch}": + get: + summary: Get a branch + description: '' + tags: + - repos + operationId: repos/get-branch + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branches#get-a-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/branch-with-protection" + examples: + default: + "$ref": "#/components/examples/branch-get" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branches + "/repos/{owner}/{repo}/branches/{branch}/protection": + get: + summary: Get branch protection + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/get-branch-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-branch-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/branch-protection" + examples: + default: + "$ref": "#/components/examples/branch-protection" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + put: + summary: Update branch protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Protecting a branch requires admin or owner permissions to the repository. + + > [!NOTE] + > Passing new arrays of `users` and `teams` replaces their previous values. + + > [!NOTE] + > The list of users, apps, and teams in total is limited to 100 items. + tags: + - repos + operationId: repos/update-branch-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#update-branch-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + required_status_checks: + type: object + description: Require status checks to pass before merging. Set to + `null` to disable. + nullable: true + properties: + strict: + type: boolean + description: Require branches to be up to date before merging. + contexts: + type: array + deprecated: true + description: "**Closing down notice**: The list of status checks + to require in order to merge into this branch. If any of these + checks have recently been set by a particular GitHub App, + they will be required to come from that app in future for + the branch to merge. Use `checks` instead of `contexts` for + more fine-grained control." + items: + type: string + checks: + type: array + description: The list of status checks to require in order to + merge into this branch. + items: + type: object + required: + - context + properties: + context: + type: string + description: The name of the required check + app_id: + type: integer + description: The ID of the GitHub App that must provide + this check. Omit this field to automatically select + the GitHub App that has recently provided this check, + or any app if it was not set by a GitHub App. Pass -1 + to explicitly allow any app to set the status. + required: + - strict + - contexts + enforce_admins: + type: boolean + description: Enforce all configured restrictions for administrators. + Set to `true` to enforce required status checks for repository + administrators. Set to `null` to disable. + nullable: true + required_pull_request_reviews: + type: object + description: Require at least one approving review on a pull request, + before merging. Set to `null` to disable. + nullable: true + properties: + dismissal_restrictions: + type: object + description: Specify which users, teams, and apps can dismiss + pull request reviews. Pass an empty `dismissal_restrictions` + object to disable. User and team `dismissal_restrictions` + are only available for organization-owned repositories. Omit + this parameter for personal repositories. + properties: + users: + type: array + description: The list of user `login`s with dismissal access + items: + type: string + teams: + type: array + description: The list of team `slug`s with dismissal access + items: + type: string + apps: + type: array + description: The list of app `slug`s with dismissal access + items: + type: string + dismiss_stale_reviews: + type: boolean + description: Set to `true` if you want to automatically dismiss + approving reviews when someone pushes a new commit. + require_code_owner_reviews: + type: boolean + description: Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) + review them. + required_approving_review_count: + type: integer + description: Specify the number of reviewers required to approve + pull requests. Use a number between 1 and 6 or 0 to not require + reviewers. + require_last_push_approval: + type: boolean + description: 'Whether the most recent push must be approved + by someone other than the person who pushed it. Default: `false`.' + default: false + bypass_pull_request_allowances: + type: object + description: Allow specific users, teams, or apps to bypass + pull request requirements. + properties: + users: + type: array + description: The list of user `login`s allowed to bypass + pull request requirements. + items: + type: string + teams: + type: array + description: The list of team `slug`s allowed to bypass + pull request requirements. + items: + type: string + apps: + type: array + description: The list of app `slug`s allowed to bypass pull + request requirements. + items: + type: string + restrictions: + type: object + description: Restrict who can push to the protected branch. User, + app, and team `restrictions` are only available for organization-owned + repositories. Set to `null` to disable. + nullable: true + properties: + users: + type: array + description: The list of user `login`s with push access + items: + type: string + teams: + type: array + description: The list of team `slug`s with push access + items: + type: string + apps: + type: array + description: The list of app `slug`s with push access + items: + type: string + required: + - users + - teams + required_linear_history: + type: boolean + description: 'Enforces a linear commit Git history, which prevents + anyone from pushing merge commits to a branch. Set to `true` to + enforce a linear commit history. Set to `false` to disable a linear + commit Git history. Your repository must allow squash merging + or rebase merging before you can enable a linear commit history. + Default: `false`. For more information, see "[Requiring a linear + commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" + in the GitHub Help documentation.' + allow_force_pushes: + type: boolean + description: 'Permits force pushes to the protected branch by anyone + with write access to the repository. Set to `true` to allow force + pushes. Set to `false` or `null` to block force pushes. Default: + `false`. For more information, see "[Enabling force pushes to + a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" + in the GitHub Help documentation."' + nullable: true + allow_deletions: + type: boolean + description: 'Allows deletion of the protected branch by anyone + with write access to the repository. Set to `false` to prevent + deletion of the protected branch. Default: `false`. For more information, + see "[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" + in the GitHub Help documentation.' + block_creations: + type: boolean + description: 'If set to `true`, the `restrictions` branch protection + settings which limits who can push will also block pushes which + create new branches, unless the push is initiated by a user, team, + or app which has the ability to push. Set to `true` to restrict + new branch creation. Default: `false`.' + required_conversation_resolution: + type: boolean + description: 'Requires all conversations on code to be resolved + before a pull request can be merged into a branch that matches + this rule. Set to `false` to disable. Default: `false`.' + lock_branch: + type: boolean + description: 'Whether to set the branch as read-only. If this is + true, users will not be able to push to the branch. Default: `false`.' + default: false + allow_fork_syncing: + type: boolean + description: 'Whether users can pull changes from upstream when + the branch is locked. Set to `true` to allow fork syncing. Set + to `false` to prevent fork syncing. Default: `false`.' + default: false + required: + - required_status_checks + - enforce_admins + - required_pull_request_reviews + - restrictions + examples: + default: + value: + required_status_checks: + strict: true + contexts: + - continuous-integration/travis-ci + enforce_admins: true + required_pull_request_reviews: + dismissal_restrictions: + users: + - octocat + teams: + - justice-league + dismiss_stale_reviews: true + require_code_owner_reviews: true + required_approving_review_count: 2 + require_last_push_approval: true + bypass_pull_request_allowances: + users: + - octocat + teams: + - justice-league + restrictions: + users: + - octocat + teams: + - justice-league + apps: + - super-ci + required_linear_history: true + allow_force_pushes: true + allow_deletions: true + block_creations: true + required_conversation_resolution: true + lock_branch: true + allow_fork_syncing: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/protected-branch" + examples: + default: + "$ref": "#/components/examples/branch-protection-update" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + delete: + summary: Delete branch protection + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/delete-branch-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#delete-branch-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": + get: + summary: Get admin branch protection + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/get-admin-branch-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-admin-branch-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/protected-branch-admin-enforced" + examples: + default: + "$ref": "#/components/examples/protected-branch-admin-enforced-2" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + post: + summary: Set admin branch protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + tags: + - repos + operationId: repos/set-admin-branch-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#set-admin-branch-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/protected-branch-admin-enforced" + examples: + default: + "$ref": "#/components/examples/protected-branch-admin-enforced-2" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + delete: + summary: Delete admin branch protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + tags: + - repos + operationId: repos/delete-admin-branch-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#delete-admin-branch-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": + get: + summary: Get pull request review protection + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/get-pull-request-review-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-pull-request-review-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/protected-branch-pull-request-review" + examples: + default: + "$ref": "#/components/examples/protected-branch-pull-request-review" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + patch: + summary: Update pull request review protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + + > [!NOTE] + > Passing new arrays of `users` and `teams` replaces their previous values. + tags: + - repos + operationId: repos/update-pull-request-review-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#update-pull-request-review-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + dismissal_restrictions: + type: object + description: Specify which users, teams, and apps can dismiss pull + request reviews. Pass an empty `dismissal_restrictions` object + to disable. User and team `dismissal_restrictions` are only available + for organization-owned repositories. Omit this parameter for personal + repositories. + properties: + users: + type: array + description: The list of user `login`s with dismissal access + items: + type: string + teams: + type: array + description: The list of team `slug`s with dismissal access + items: + type: string + apps: + type: array + description: The list of app `slug`s with dismissal access + items: + type: string + dismiss_stale_reviews: + type: boolean + description: Set to `true` if you want to automatically dismiss + approving reviews when someone pushes a new commit. + require_code_owner_reviews: + type: boolean + description: Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) + have reviewed. + required_approving_review_count: + type: integer + description: Specifies the number of reviewers required to approve + pull requests. Use a number between 1 and 6 or 0 to not require + reviewers. + require_last_push_approval: + type: boolean + description: 'Whether the most recent push must be approved by someone + other than the person who pushed it. Default: `false`' + default: false + bypass_pull_request_allowances: + type: object + description: Allow specific users, teams, or apps to bypass pull + request requirements. + properties: + users: + type: array + description: The list of user `login`s allowed to bypass pull + request requirements. + items: + type: string + teams: + type: array + description: The list of team `slug`s allowed to bypass pull + request requirements. + items: + type: string + apps: + type: array + description: The list of app `slug`s allowed to bypass pull + request requirements. + items: + type: string + examples: + default: + value: + dismissal_restrictions: + users: + - octocat + teams: + - justice-league + apps: + - octoapp + bypass_pull_request_allowances: + users: + - octocat + teams: + - justice-league + apps: + - octoapp + dismiss_stale_reviews: true + require_code_owner_reviews: true + required_approving_review_count: 2 + require_last_push_approval: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/protected-branch-pull-request-review" + examples: + default: + "$ref": "#/components/examples/protected-branch-pull-request-review" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + delete: + summary: Delete pull request review protection + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/delete-pull-request-review-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#delete-pull-request-review-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": + get: + summary: Get commit signature protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + + > [!NOTE] + > You must enable branch protection to require signed commits. + tags: + - repos + operationId: repos/get-commit-signature-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-commit-signature-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/protected-branch-admin-enforced" + examples: + default: + "$ref": "#/components/examples/protected-branch-admin-enforced" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + post: + summary: Create commit signature protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + tags: + - repos + operationId: repos/create-commit-signature-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#create-commit-signature-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/protected-branch-admin-enforced" + examples: + default: + "$ref": "#/components/examples/protected-branch-admin-enforced" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + delete: + summary: Delete commit signature protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + tags: + - repos + operationId: repos/delete-commit-signature-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#delete-commit-signature-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": + get: + summary: Get status checks protection + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/get-status-checks-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-status-checks-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/status-check-policy" + examples: + default: + "$ref": "#/components/examples/status-check-policy" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + patch: + summary: Update status check protection + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + tags: + - repos + operationId: repos/update-status-check-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#update-status-check-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + strict: + type: boolean + description: Require branches to be up to date before merging. + contexts: + type: array + deprecated: true + description: "**Closing down notice**: The list of status checks + to require in order to merge into this branch. If any of these + checks have recently been set by a particular GitHub App, they + will be required to come from that app in future for the branch + to merge. Use `checks` instead of `contexts` for more fine-grained + control." + items: + type: string + checks: + type: array + description: The list of status checks to require in order to merge + into this branch. + items: + type: object + required: + - context + properties: + context: + type: string + description: The name of the required check + app_id: + type: integer + description: The ID of the GitHub App that must provide this + check. Omit this field to automatically select the GitHub + App that has recently provided this check, or any app if + it was not set by a GitHub App. Pass -1 to explicitly allow + any app to set the status. + examples: + default: + value: + strict: true + contexts: + - continuous-integration/travis-ci + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/status-check-policy" + examples: + default: + "$ref": "#/components/examples/status-check-policy" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + delete: + summary: Remove status check protection + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/remove-status-check-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#remove-status-check-protection + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": + get: + summary: Get all status check contexts + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/get-all-status-check-contexts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-all-status-check-contexts + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + type: string + examples: + default: + value: + - continuous-integration/travis-ci + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + post: + summary: Add status check contexts + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/add-status-check-contexts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#add-status-check-contexts + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: false + content: + application/json: + schema: + oneOf: + - type: object + properties: + contexts: + type: array + description: The name of the status checks + items: + type: string + required: + - contexts + example: + contexts: + - contexts + - type: array + description: The name of the status checks + items: + type: string + examples: + default: + summary: Example adding status checks to a branch protection rule + value: + contexts: + - continuous-integration/travis-ci + - continuous-integration/jenkins + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + type: string + examples: + default: + value: + - continuous-integration/travis-ci + - continuous-integration/jenkins + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: contexts + category: branches + subcategory: branch-protection + put: + summary: Set status check contexts + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/set-status-check-contexts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#set-status-check-contexts + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: false + content: + application/json: + schema: + oneOf: + - type: object + properties: + contexts: + type: array + description: The name of the status checks + items: + type: string + required: + - contexts + example: + contexts: + - contexts + - type: array + description: The name of the status checks + items: + type: string + examples: + default: + summary: Example updating status checks for a branch protection rule + value: + contexts: + - continuous-integration/travis-ci + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + type: string + examples: + default: + value: + - continuous-integration/travis-ci + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: contexts + category: branches + subcategory: branch-protection + delete: + summary: Remove status check contexts + description: Protected branches are available in public repositories with GitHub + Free and GitHub Free for organizations, and in public and private repositories + with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise + Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + tags: + - repos + operationId: repos/remove-status-check-contexts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#remove-status-check-contexts + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + properties: + contexts: + type: array + description: The name of the status checks + items: + type: string + required: + - contexts + example: + contexts: + - contexts + - type: array + description: The name of the status checks + items: + type: string + examples: + default: + summary: Example removing status checks from a branch protection rule + value: + contexts: + - continuous-integration/jenkins + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + type: string + examples: + default: + value: + - continuous-integration/travis-ci + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: contexts + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": + get: + summary: Get access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Lists who has access to this protected branch. + + > [!NOTE] + > Users, apps, and teams `restrictions` are only available for organization-owned repositories. + tags: + - repos + operationId: repos/get-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/branch-restriction-policy" + examples: + default: + "$ref": "#/components/examples/branch-restriction-policy" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + delete: + summary: Delete access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Disables the ability to restrict who can push to this branch. + tags: + - repos + operationId: repos/delete-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#delete-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": + get: + summary: Get apps with access to the protected branch + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + tags: + - repos + operationId: repos/get-apps-with-access-to-protected-branch + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-apps-with-access-to-the-protected-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/integration" + examples: + default: + "$ref": "#/components/examples/integration-items" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + post: + summary: Add app access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + tags: + - repos + operationId: repos/add-app-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#add-app-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + apps: + type: array + description: 'The GitHub Apps that have push access to this branch. + Use the slugified version of the app name. **Note**: The list + of users, apps, and teams in total is limited to 100 items.' + items: + type: string + required: + - apps + example: + apps: + - my-app + examples: + default: + value: + apps: + - octoapp + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/integration" + examples: + default: + "$ref": "#/components/examples/integration-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: apps + category: branches + subcategory: branch-protection + put: + summary: Set app access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + tags: + - repos + operationId: repos/set-app-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#set-app-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + apps: + type: array + description: 'The GitHub Apps that have push access to this branch. + Use the slugified version of the app name. **Note**: The list + of users, apps, and teams in total is limited to 100 items.' + items: + type: string + required: + - apps + example: + apps: + - my-app + examples: + default: + value: + apps: + - octoapp + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/integration" + examples: + default: + "$ref": "#/components/examples/integration-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: apps + category: branches + subcategory: branch-protection + delete: + summary: Remove app access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + tags: + - repos + operationId: repos/remove-app-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#remove-app-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + apps: + type: array + description: 'The GitHub Apps that have push access to this branch. + Use the slugified version of the app name. **Note**: The list + of users, apps, and teams in total is limited to 100 items.' + items: + type: string + required: + - apps + example: + apps: + - my-app + examples: + default: + value: + apps: + - my-app + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/integration" + examples: + default: + "$ref": "#/components/examples/integration-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: apps + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": + get: + summary: Get teams with access to the protected branch + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Lists the teams who have push access to this branch. The list includes child teams. + tags: + - repos + operationId: repos/get-teams-with-access-to-protected-branch + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-teams-with-access-to-the-protected-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + default: + "$ref": "#/components/examples/team-items" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + post: + summary: Add team access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Grants the specified teams push access for this branch. You can also give push access to child teams. + tags: + - repos + operationId: repos/add-team-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#add-team-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: false + content: + application/json: + schema: + oneOf: + - type: object + properties: + teams: + type: array + description: The slug values for teams + items: + type: string + required: + - teams + example: + teams: + - my-team + - type: array + description: The slug values for teams + items: + type: string + examples: + default: + summary: Example adding a team in a branch protection rule + value: + teams: + - justice-league + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + default: + "$ref": "#/components/examples/team-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: teams + category: branches + subcategory: branch-protection + put: + summary: Set team access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + tags: + - repos + operationId: repos/set-team-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#set-team-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: false + content: + application/json: + schema: + oneOf: + - type: object + properties: + teams: + type: array + description: The slug values for teams + items: + type: string + required: + - teams + example: + teams: + - justice-league + - type: array + description: The slug values for teams + items: + type: string + examples: + default: + summary: Example replacing a team in a branch protection rule + value: + teams: + - justice-league + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + default: + "$ref": "#/components/examples/team-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: teams + category: branches + subcategory: branch-protection + delete: + summary: Remove team access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Removes the ability of a team to push to this branch. You can also remove push access for child teams. + tags: + - repos + operationId: repos/remove-team-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#remove-team-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + properties: + teams: + type: array + description: The slug values for teams + items: + type: string + required: + - teams + example: + teams: + - my-team + - type: array + description: The slug values for teams + items: + type: string + examples: + default: + summary: Example removing a team in a branch protection rule + value: + teams: + - octocats + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + default: + "$ref": "#/components/examples/team-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: teams + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": + get: + summary: Get users with access to the protected branch + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Lists the people who have push access to this branch. + tags: + - repos + operationId: repos/get-users-with-access-to-protected-branch + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#get-users-with-access-to-the-protected-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branch-protection + post: + summary: Add user access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Grants the specified people push access for this branch. + + | Type | Description | + | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + tags: + - repos + operationId: repos/add-user-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#add-user-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + users: + type: array + description: The username for users + items: + type: string + required: + - users + example: + users: + - mona + examples: + default: + summary: Example adding a user in a branch protection rule + value: + users: + - octocat + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: users + category: branches + subcategory: branch-protection + put: + summary: Set user access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + + | Type | Description | + | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + tags: + - repos + operationId: repos/set-user-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#set-user-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + users: + type: array + description: The username for users + items: + type: string + required: + - users + example: + users: + - mona + examples: + default: + summary: Example replacing a user in a branch protection rule + value: + users: + - octocat + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: users + category: branches + subcategory: branch-protection + delete: + summary: Remove user access restrictions + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Removes the ability of a user to push to this branch. + + | Type | Description | + | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + tags: + - repos + operationId: repos/remove-user-access-restrictions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branch-protection#remove-user-access-restrictions + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + users: + type: array + description: The username for users + items: + type: string + required: + - users + example: + users: + - mona + examples: + default: + summary: Example removing a user in a branch protection rule + value: + users: + - octocat + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + requestBodyParameterName: users + category: branches + subcategory: branch-protection + "/repos/{owner}/{repo}/branches/{branch}/rename": + post: + summary: Rename a branch + description: |- + Renames a branch in a repository. + + > [!NOTE] + > Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + + The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + + In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + tags: + - repos + operationId: repos/rename-branch + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branches#rename-a-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + new_name: + type: string + description: The new name of the branch. + required: + - new_name + examples: + default: + value: + new_name: my_renamed_branch + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/branch-with-protection" + examples: + default: + "$ref": "#/components/examples/branch-with-protection" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branches + "/repos/{owner}/{repo}/check-runs": + post: + summary: Create a check run + description: |- + Creates a new check run for a specific commit in a repository. + + To create a check run, you must use a GitHub App. OAuth apps and authenticated users are not able to create a check suite. + + In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + + > [!NOTE] + > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + tags: + - checks + operationId: checks/create + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/runs#create-a-check-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the check. For example, "code-coverage". + head_sha: + type: string + description: The SHA of the commit. + details_url: + type: string + description: The URL of the integrator's site that has the full + details of the check. If the integrator does not provide this, + then the homepage of the GitHub app is used. + external_id: + type: string + description: A reference for the run on the integrator's system. + status: + type: string + description: The current status of the check run. Only GitHub Actions + can set a status of `waiting`, `pending`, or `requested`. + enum: + - queued + - in_progress + - completed + - waiting + - requested + - pending + default: queued + started_at: + type: string + format: date-time + description: 'The time that the check run began. This is a timestamp + in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: + `YYYY-MM-DDTHH:MM:SSZ`.' + conclusion: + type: string + description: "**Required if you provide `completed_at` or a `status` + of `completed`**. The final conclusion of the check. \n**Note:** + Providing `conclusion` will automatically set the `status` parameter + to `completed`. You cannot change a check run conclusion to `stale`, + only GitHub can set this." + enum: + - action_required + - cancelled + - failure + - neutral + - success + - skipped + - stale + - timed_out + completed_at: + type: string + format: date-time + description: 'The time the check completed. This is a timestamp + in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: + `YYYY-MM-DDTHH:MM:SSZ`.' + output: + type: object + description: Check runs can accept a variety of data in the `output` + object, including a `title` and `summary` and can optionally provide + descriptive details about the run. + properties: + title: + type: string + description: The title of the check run. + summary: + type: string + maxLength: 65535 + description: 'The summary of the check run. This parameter supports + Markdown. **Maximum length**: 65535 characters.' + text: + type: string + maxLength: 65535 + description: 'The details of the check run. This parameter supports + Markdown. **Maximum length**: 65535 characters.' + annotations: + type: array + description: Adds information from your analysis to specific + lines of code. Annotations are visible on GitHub in the **Checks** + and **Files changed** tab of the pull request. The Checks + API limits the number of annotations to a maximum of 50 per + API request. To create more than 50 annotations, you have + to make multiple requests to the [Update a check run](https://docs.github.com/rest/checks/runs#update-a-check-run) + endpoint. Each time you update the check run, annotations + are appended to the list of annotations that already exist + for the check run. GitHub Actions are limited to 10 warning + annotations and 10 error annotations per step. For details + about how you can view annotations on GitHub, see "[About + status checks](https://docs.github.com/articles/about-status-checks#checks)". + maxItems: 50 + items: + type: object + properties: + path: + type: string + description: The path of the file to add an annotation + to. For example, `assets/css/main.css`. + start_line: + type: integer + description: The start line of the annotation. Line numbers + start at 1. + end_line: + type: integer + description: The end line of the annotation. + start_column: + type: integer + description: The start column of the annotation. Annotations + only support `start_column` and `end_column` on the + same line. Omit this parameter if `start_line` and `end_line` + have different values. Column numbers start at 1. + end_column: + type: integer + description: The end column of the annotation. Annotations + only support `start_column` and `end_column` on the + same line. Omit this parameter if `start_line` and `end_line` + have different values. + annotation_level: + type: string + description: The level of the annotation. + enum: + - notice + - warning + - failure + message: + type: string + description: A short description of the feedback for these + lines of code. The maximum size is 64 KB. + title: + type: string + description: The title that represents the annotation. + The maximum size is 255 characters. + raw_details: + type: string + description: Details about this annotation. The maximum + size is 64 KB. + required: + - path + - start_line + - end_line + - annotation_level + - message + images: + type: array + description: Adds images to the output displayed in the GitHub + pull request UI. + items: + type: object + properties: + alt: + type: string + description: The alternative text for the image. + image_url: + type: string + description: The full URL of the image. + caption: + type: string + description: A short image description. + required: + - alt + - image_url + required: + - title + - summary + actions: + type: array + description: Displays a button on GitHub that can be clicked to + alert your app to do additional tasks. For example, a code linting + app can display a button that automatically fixes detected errors. + The button created in this object is displayed after the check + run completes. When a user clicks the button, GitHub sends the + [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) + to your app. Each action includes a `label`, `identifier` and + `description`. A maximum of three actions are accepted. To learn + more about check runs and requested actions, see "[Check runs + and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions)." + maxItems: 3 + items: + type: object + properties: + label: + type: string + maxLength: 20 + description: The text to be displayed on a button in the web + UI. The maximum size is 20 characters. + description: + type: string + maxLength: 40 + description: A short explanation of what this action would + do. The maximum size is 40 characters. + identifier: + type: string + maxLength: 20 + description: A reference for the action on the integrator's + system. The maximum size is 20 characters. + required: + - label + - description + - identifier + required: + - name + - head_sha + discriminator: + propertyName: status + oneOf: + - properties: + status: + enum: + - completed + required: + - status + - conclusion + additionalProperties: true + - properties: + status: + enum: + - queued + - in_progress + additionalProperties: true + examples: + example-of-in-progress-conclusion: + summary: Example of an in_progress conclusion + value: + name: mighty_readme + head_sha: ce587453ced02b1526dfb4cb910479d431683101 + status: in_progress + external_id: '42' + started_at: '2018-05-04T01:14:52Z' + output: + title: Mighty Readme report + summary: '' + text: '' + example-of-completed-conclusion: + summary: Example of a completed conclusion + value: + name: mighty_readme + head_sha: ce587453ced02b1526dfb4cb910479d431683101 + status: completed + started_at: '2017-11-30T19:39:10Z' + conclusion: success + completed_at: '2017-11-30T19:49:10Z' + output: + title: Mighty Readme report + summary: There are 0 failures, 2 warnings, and 1 notices. + text: You may have some misspelled words on lines 2 and 4. You + also may want to add a section in your README about how to install + your app. + annotations: + - path: README.md + annotation_level: warning + title: Spell Checker + message: Check your spelling for 'banaas'. + raw_details: Do you mean 'bananas' or 'banana'? + start_line: 2 + end_line: 2 + - path: README.md + annotation_level: warning + title: Spell Checker + message: Check your spelling for 'aples' + raw_details: Do you mean 'apples' or 'Naples' + start_line: 4 + end_line: 4 + images: + - alt: Super bananas + image_url: http://example.com/images/42 + actions: + - label: Fix + identifier: fix_errors + description: Allow us to fix these errors for you + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/check-run" + examples: + example-of-completed-conclusion: + "$ref": "#/components/examples/check-run-example-of-completed-conclusion" + example-of-in-progress-conclusion: + "$ref": "#/components/examples/check-run-example-of-in-progress-conclusion" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: runs + "/repos/{owner}/{repo}/check-runs/{check_run_id}": + get: + summary: Get a check run + description: |- + Gets a single check run using its `id`. + + > [!NOTE] + > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + tags: + - checks + operationId: checks/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/runs#get-a-check-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/check-run-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/check-run" + examples: + default: + "$ref": "#/components/examples/check-run" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: runs + patch: + summary: Update a check run + description: |- + Updates a check run for a specific commit in a repository. + + > [!NOTE] + > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + + OAuth apps and personal access tokens (classic) cannot use this endpoint. + tags: + - checks + operationId: checks/update + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/runs#update-a-check-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/check-run-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the check. For example, "code-coverage". + details_url: + type: string + description: The URL of the integrator's site that has the full + details of the check. + external_id: + type: string + description: A reference for the run on the integrator's system. + started_at: + type: string + format: date-time + description: 'This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`.' + status: + type: string + description: The current status of the check run. Only GitHub Actions + can set a status of `waiting`, `pending`, or `requested`. + enum: + - queued + - in_progress + - completed + - waiting + - requested + - pending + conclusion: + type: string + description: "**Required if you provide `completed_at` or a `status` + of `completed`**. The final conclusion of the check. \n**Note:** + Providing `conclusion` will automatically set the `status` parameter + to `completed`. You cannot change a check run conclusion to `stale`, + only GitHub can set this." + enum: + - action_required + - cancelled + - failure + - neutral + - success + - skipped + - stale + - timed_out + completed_at: + type: string + format: date-time + description: 'The time the check completed. This is a timestamp + in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: + `YYYY-MM-DDTHH:MM:SSZ`.' + output: + type: object + description: Check runs can accept a variety of data in the `output` + object, including a `title` and `summary` and can optionally provide + descriptive details about the run. + properties: + title: + type: string + description: "**Required**." + summary: + type: string + description: Can contain Markdown. + maxLength: 65535 + text: + type: string + description: Can contain Markdown. + maxLength: 65535 + annotations: + type: array + description: Adds information from your analysis to specific + lines of code. Annotations are visible in GitHub's pull request + UI. Annotations are visible in GitHub's pull request UI. The + Checks API limits the number of annotations to a maximum of + 50 per API request. To create more than 50 annotations, you + have to make multiple requests to the [Update a check run](https://docs.github.com/rest/checks/runs#update-a-check-run) + endpoint. Each time you update the check run, annotations + are appended to the list of annotations that already exist + for the check run. GitHub Actions are limited to 10 warning + annotations and 10 error annotations per step. For details + about annotations in the UI, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". + maxItems: 50 + items: + type: object + properties: + path: + type: string + description: The path of the file to add an annotation + to. For example, `assets/css/main.css`. + start_line: + type: integer + description: The start line of the annotation. Line numbers + start at 1. + end_line: + type: integer + description: The end line of the annotation. + start_column: + type: integer + description: The start column of the annotation. Annotations + only support `start_column` and `end_column` on the + same line. Omit this parameter if `start_line` and `end_line` + have different values. Column numbers start at 1. + end_column: + type: integer + description: The end column of the annotation. Annotations + only support `start_column` and `end_column` on the + same line. Omit this parameter if `start_line` and `end_line` + have different values. + annotation_level: + type: string + description: The level of the annotation. + enum: + - notice + - warning + - failure + message: + type: string + description: A short description of the feedback for these + lines of code. The maximum size is 64 KB. + title: + type: string + description: The title that represents the annotation. + The maximum size is 255 characters. + raw_details: + type: string + description: Details about this annotation. The maximum + size is 64 KB. + required: + - path + - start_line + - end_line + - annotation_level + - message + images: + type: array + description: Adds images to the output displayed in the GitHub + pull request UI. + items: + type: object + properties: + alt: + type: string + description: The alternative text for the image. + image_url: + type: string + description: The full URL of the image. + caption: + type: string + description: A short image description. + required: + - alt + - image_url + required: + - summary + actions: + type: array + description: Possible further actions the integrator can perform, + which a user may trigger. Each action includes a `label`, `identifier` + and `description`. A maximum of three actions are accepted. To + learn more about check runs and requested actions, see "[Check + runs and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions)." + maxItems: 3 + items: + type: object + properties: + label: + type: string + maxLength: 20 + description: The text to be displayed on a button in the web + UI. The maximum size is 20 characters. + description: + type: string + maxLength: 40 + description: A short explanation of what this action would + do. The maximum size is 40 characters. + identifier: + type: string + maxLength: 20 + description: A reference for the action on the integrator's + system. The maximum size is 20 characters. + required: + - label + - description + - identifier + anyOf: + - properties: + status: + enum: + - completed + required: + - conclusion + additionalProperties: true + - properties: + status: + enum: + - queued + - in_progress + additionalProperties: true + examples: + default: + value: + name: mighty_readme + started_at: '2018-05-04T01:14:52Z' + status: completed + conclusion: success + completed_at: '2018-05-04T01:14:52Z' + output: + title: Mighty Readme report + summary: There are 0 failures, 2 warnings, and 1 notices. + text: You may have some misspelled words on lines 2 and 4. You + also may want to add a section in your README about how to install + your app. + annotations: + - path: README.md + annotation_level: warning + title: Spell Checker + message: Check your spelling for 'banaas'. + raw_details: Do you mean 'bananas' or 'banana'? + start_line: 2 + end_line: 2 + - path: README.md + annotation_level: warning + title: Spell Checker + message: Check your spelling for 'aples' + raw_details: Do you mean 'apples' or 'Naples' + start_line: 4 + end_line: 4 + images: + - alt: Super bananas + image_url: http://example.com/images/42 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/check-run" + examples: + default: + "$ref": "#/components/examples/check-run" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: runs + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": + get: + summary: List check run annotations + description: |- + Lists annotations for a check run using the annotation `id`. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + tags: + - checks + operationId: checks/list-annotations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/runs#list-check-run-annotations + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/check-run-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/check-annotation" + examples: + default: + "$ref": "#/components/examples/check-annotation-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: runs + "/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": + post: + summary: Rerequest a check run + description: |- + Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, the `status` of the check suite it belongs to is reset to `queued` and the `conclusion` is cleared. The check run itself is not updated. GitHub apps recieving the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) with the `rerequested` action should then decide if the check run should be reset or updated and call the [update `check_run` endpoint](https://docs.github.com/rest/checks/runs#update-a-check-run) to update the check_run if desired. + + For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + tags: + - checks + operationId: checks/rerequest-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/runs#rerequest-a-check-run + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/check-run-id" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '403': + description: Forbidden if the check run is not rerequestable or doesn't + belong to the authenticated GitHub App + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '422': + description: Validation error if the check run is not rerequestable + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: runs + "/repos/{owner}/{repo}/check-suites": + post: + summary: Create a check suite + description: |- + Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + + > [!NOTE] + > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + + OAuth apps and personal access tokens (classic) cannot use this endpoint. + tags: + - checks + operationId: checks/create-suite + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/suites#create-a-check-suite + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + head_sha: + type: string + description: The sha of the head commit. + required: + - head_sha + examples: + default: + value: + head_sha: d6fde92930d4715a2b49857d24b940956b26d2d3 + responses: + '200': + description: Response when the suite already exists + content: + application/json: + schema: + "$ref": "#/components/schemas/check-suite" + examples: + default: + "$ref": "#/components/examples/check-suite" + '201': + description: Response when the suite was created + content: + application/json: + schema: + "$ref": "#/components/schemas/check-suite" + examples: + default: + "$ref": "#/components/examples/check-suite" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: suites + "/repos/{owner}/{repo}/check-suites/preferences": + patch: + summary: Update repository preferences for check suites + description: |- + Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + You must have admin permissions in the repository to set preferences for check suites. + tags: + - checks + operationId: checks/set-suites-preferences + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + auto_trigger_checks: + type: array + description: Enables or disables automatic creation of CheckSuite + events upon pushes to the repository. Enabled by default. + items: + type: object + properties: + app_id: + type: integer + description: The `id` of the GitHub App. + setting: + type: boolean + description: Set to `true` to enable automatic creation of + CheckSuite events upon pushes to the repository, or `false` + to disable them. + default: true + required: + - app_id + - setting + examples: + default: + value: + auto_trigger_checks: + - app_id: 4 + setting: false + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/check-suite-preference" + examples: + default: + "$ref": "#/components/examples/check-suite-preference" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: suites + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": + get: + summary: Get a check suite + description: |- + Gets a single check suite using its `id`. + + > [!NOTE] + > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + tags: + - checks + operationId: checks/get-suite + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/suites#get-a-check-suite + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/check-suite-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/check-suite" + examples: + default: + "$ref": "#/components/examples/check-suite" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: suites + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": + get: + summary: List check runs in a check suite + description: |- + Lists check runs for a check suite using its `id`. + + > [!NOTE] + > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + tags: + - checks + operationId: checks/list-for-suite + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/check-suite-id" + - "$ref": "#/components/parameters/check-name" + - "$ref": "#/components/parameters/status" + - name: filter + description: Filters check runs by their `completed_at` timestamp. `latest` + returns the most recent check runs. + in: query + required: false + schema: + type: string + enum: + - latest + - all + default: latest + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - check_runs + properties: + total_count: + type: integer + check_runs: + type: array + items: + "$ref": "#/components/schemas/check-run" + examples: + default: + "$ref": "#/components/examples/check-run-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: runs + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": + post: + summary: Rerequest a check suite + description: Triggers GitHub to rerequest an existing check suite, without pushing + new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) + event with the action `rerequested`. When a check suite is `rerequested`, + its `status` is reset to `queued` and the `conclusion` is cleared. + tags: + - checks + operationId: checks/rerequest-suite + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/suites#rerequest-a-check-suite + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/check-suite-id" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: suites + "/repos/{owner}/{repo}/code-scanning/alerts": + get: + summary: List code scanning alerts for a repository + description: |- + Lists code scanning alerts. + + The response includes a `most_recent_instance` object. + This provides details of the most recent instance of this alert + for the default branch (or for the specified Git reference if you used `ref` in the request). + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/list-alerts-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/tool-name" + - "$ref": "#/components/parameters/tool-guid" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/git-ref" + - "$ref": "#/components/parameters/pr-alias" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - name: sort + description: The property by which to sort the results. + in: query + required: false + schema: + type: string + enum: + - created + - updated + default: created + - name: state + description: If specified, only code scanning alerts with this state will + be returned. + in: query + required: false + schema: + "$ref": "#/components/schemas/code-scanning-alert-state-query" + - name: severity + description: If specified, only code scanning alerts with this severity will + be returned. + in: query + required: false + schema: + "$ref": "#/components/schemas/code-scanning-alert-severity" + - name: assignees + description: | + Filter alerts by assignees. Provide a comma-separated list of user handles (e.g., `octocat` or `octocat,hubot`). + Use `*` to list alerts with at least one assignee or `none` to list alerts with no assignees. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-scanning-alert-items" + examples: + default: + "$ref": "#/components/examples/code-scanning-alert-items" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": + get: + summary: Get a code scanning alert + description: |- + Gets a single code scanning alert. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/get-alert + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-alert" + examples: + default: + "$ref": "#/components/examples/code-scanning-alert" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + patch: + summary: Update a code scanning alert + description: |- + Updates the status of a single code scanning alert. + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + operationId: code-scanning/update-alert + tags: + - code-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + state: + "$ref": "#/components/schemas/code-scanning-alert-set-state" + dismissed_reason: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + create_request: + "$ref": "#/components/schemas/code-scanning-alert-create-request" + assignees: + "$ref": "#/components/schemas/code-scanning-alert-assignees" + anyOf: + - required: + - state + - required: + - assignees + examples: + default: + value: + state: dismissed + dismissed_reason: false positive + dismissed_comment: This alert is not actually correct, because there's + a sanitizer included in the library. + create_request: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-alert" + examples: + default: + "$ref": "#/components/examples/code-scanning-alert-dismissed" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_write" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix": + get: + summary: Get the status of an autofix for a code scanning alert + description: |- + Gets the status and description of an autofix for a code scanning alert. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/get-autofix + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-the-status-of-an-autofix-for-a-code-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-autofix" + examples: + default: + "$ref": "#/components/examples/code-scanning-autofix" + '400': + "$ref": "#/components/responses/code_scanning_bad_request" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + post: + summary: Create an autofix for a code scanning alert + description: |- + Creates an autofix for a code scanning alert. + + If a new autofix is to be created as a result of this request or is currently being generated, then this endpoint will return a 202 Accepted response. + + If an autofix already exists for a given alert, then this endpoint will return a 200 OK response. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/create-autofix + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#create-an-autofix-for-a-code-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + responses: + '200': + description: OK + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-autofix" + examples: + default: + "$ref": "#/components/examples/code-scanning-autofix" + '202': + description: Accepted + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-autofix" + examples: + default: + "$ref": "#/components/examples/code-scanning-autofix-pending" + '400': + "$ref": "#/components/responses/code_scanning_bad_request" + '403': + "$ref": "#/components/responses/code_scanning_autofix_create_forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Unprocessable Entity + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits": + post: + summary: Commit an autofix for a code scanning alert + description: |- + Commits an autofix for a code scanning alert. + + If an autofix is committed as a result of this request, then this endpoint will return a 201 Created response. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/commit-autofix + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#commit-an-autofix-for-a-code-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + requestBody: + required: false + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-autofix-commits" + examples: + default: + "$ref": "#/components/examples/code-scanning-autofix-commits" + responses: + '201': + description: Created + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-autofix-commits-response" + examples: + default: + "$ref": "#/components/examples/code-scanning-autofix-commits-response" + '400': + "$ref": "#/components/responses/code_scanning_bad_request" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_write" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Unprocessable Entity + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": + get: + summary: List instances of a code scanning alert + description: |- + Lists all instances of the specified code scanning alert. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/list-alert-instances + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/git-ref" + - "$ref": "#/components/parameters/pr-alias" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-scanning-alert-instance-list" + examples: + default: + "$ref": "#/components/examples/code-scanning-alert-instances" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/analyses": + get: + summary: List code scanning analyses for a repository + description: |- + Lists the details of all code scanning analyses for a repository, + starting with the most recent. + The response is paginated and you can use the `page` and `per_page` parameters + to list the analyses you're interested in. + By default 30 analyses are listed per page. + + The `rules_count` field in the response give the number of rules + that were run in the analysis. + For very old analyses this data is not available, + and `0` is returned in this field. + + > [!WARNING] + > **Closing down notice:** The `tool_name` field is closing down and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + operationId: code-scanning/list-recent-analyses + tags: + - code-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/tool-name" + - "$ref": "#/components/parameters/tool-guid" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pr-alias" + - name: ref + in: query + description: The Git reference for the analyses you want to list. The `ref` + for a branch can be formatted either as `refs/heads/` or simply + ``. To reference a pull request use `refs/pull//merge`. + required: false + schema: + "$ref": "#/components/schemas/code-scanning-ref" + - name: sarif_id + in: query + description: Filter analyses belonging to the same SARIF upload. + required: false + schema: + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + - "$ref": "#/components/parameters/direction" + - name: sort + description: The property by which to sort the results. + in: query + required: false + schema: + type: string + enum: + - created + default: created + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-scanning-analysis" + examples: + default: + "$ref": "#/components/examples/code-scanning-analysis-items" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": + get: + summary: Get a code scanning analysis for a repository + description: |- + Gets a specified code scanning analysis for a repository. + + The default JSON response contains fields that describe the analysis. + This includes the Git reference and commit SHA to which the analysis relates, + the datetime of the analysis, the name of the code scanning tool, + and the number of alerts. + + The `rules_count` field in the default response give the number of rules + that were run in the analysis. + For very old analyses this data is not available, + and `0` is returned in this field. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + operationId: code-scanning/get-analysis + tags: + - code-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: analysis_id + in: path + description: The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` + operation. + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-analysis" + examples: + response: + "$ref": "#/components/examples/code-scanning-analysis-default" + application/sarif+json: + schema: + type: object + additionalProperties: true + examples: + response: + "$ref": "#/components/examples/code-scanning-analysis-sarif" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/unprocessable_analysis" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: code-scanning + subcategory: code-scanning + delete: + summary: Delete a code scanning analysis from a repository + description: |- + Deletes a specified code scanning analysis from a repository. + + You can delete one analysis at a time. + To delete a series of analyses, start with the most recent analysis and work backwards. + Conceptually, the process is similar to the undo function in a text editor. + + When you list the analyses for a repository, + one or more will be identified as deletable in the response: + + ``` + "deletable": true + ``` + + An analysis is deletable when it's the most recent in a set of analyses. + Typically, a repository will have multiple sets of analyses + for each enabled code scanning tool, + where a set is determined by a unique combination of analysis values: + + * `ref` + * `tool` + * `category` + + If you attempt to delete an analysis that is not the most recent in a set, + you'll get a 400 response with the message: + + ``` + Analysis specified is not deletable. + ``` + + The response from a successful `DELETE` operation provides you with + two alternative URLs for deleting the next analysis in the set: + `next_analysis_url` and `confirm_delete_url`. + Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + in a set. This is a useful option if you want to preserve at least one analysis + for the specified tool in your repository. + Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + in the 200 response is `null`. + + As an example of the deletion process, + let's imagine that you added a workflow that configured a particular code scanning tool + to analyze the code in a repository. This tool has added 15 analyses: + 10 on the default branch, and another 5 on a topic branch. + You therefore have two separate sets of analyses for this tool. + You've now decided that you want to remove all of the analyses for the tool. + To do this you must make 15 separate deletion requests. + To start, you must find an analysis that's identified as deletable. + Each set of analyses always has one that's identified as deletable. + Having found the deletable analysis for one of the two sets, + delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + Then repeat the process for the second set. + The procedure therefore consists of a nested loop: + + **Outer loop**: + * List the analyses for the repository, filtered by tool. + * Parse this list to find a deletable analysis. If found: + + **Inner loop**: + * Delete the identified analysis. + * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + + The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + operationId: code-scanning/delete-analysis + tags: + - code-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: analysis_id + in: path + description: The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` + operation. + required: true + schema: + type: integer + - name: confirm_delete + in: query + description: 'Allow deletion if the specified analysis is the last in a set. + If you attempt to delete the final analysis in a set without setting this + parameter to `true`, you''ll get a 400 response with the message: `Analysis + is last of its type and deletion may result in the loss of historical alert + data. Please specify confirm_delete.`' + required: false + schema: + type: string + nullable: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-analysis-deletion" + examples: + default-response: + "$ref": "#/components/examples/code-scanning-analysis-deletion" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_write" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/codeql/databases": + get: + summary: List CodeQL databases for a repository + description: |- + Lists the CodeQL databases that are available in a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/list-codeql-databases + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-scanning-codeql-database" + examples: + default: + "$ref": "#/components/examples/code-scanning-codeql-databases" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": + get: + summary: Get a CodeQL database for a repository + description: |- + Gets a CodeQL database for a language in a repository. + + By default this endpoint returns JSON metadata about the CodeQL database. To + download the CodeQL database binary content, set the `Accept` header of the request + to [`application/zip`](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types), and make sure + your HTTP client is configured to follow redirects or use the `Location` header + to make a second request to get the redirect URL. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/get-codeql-database + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: language + in: path + description: The language of the CodeQL database. + schema: + type: string + required: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-codeql-database" + examples: + default: + "$ref": "#/components/examples/code-scanning-codeql-database" + '302': + "$ref": "#/components/responses/found" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: code-scanning + subcategory: code-scanning + delete: + summary: Delete a CodeQL database + description: |- + Deletes a CodeQL database for a language in a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/delete-codeql-database + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#delete-a-codeql-database + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: language + in: path + description: The language of the CodeQL database. + schema: + type: string + required: true + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/code_scanning_forbidden_write" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses": + post: + summary: Create a CodeQL variant analysis + description: |- + Creates a new CodeQL variant analysis, which will run a CodeQL query against one or more repositories. + + Get started by learning more about [running CodeQL queries at scale with Multi-Repository Variant Analysis](https://docs.github.com/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis). + + Use the `owner` and `repo` parameters in the URL to specify the controller repository that + will be used for running GitHub Actions workflows and storing the results of the CodeQL variant analysis. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - code-scanning + operationId: code-scanning/create-variant-analysis + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#create-a-codeql-variant-analysis + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + language: + "$ref": "#/components/schemas/code-scanning-variant-analysis-language" + query_pack: + description: A Base64-encoded tarball containing a CodeQL query + and all its dependencies + type: string + repositories: + type: array + description: List of repository names (in the form `owner/repo-name`) + to run the query against. Precisely one property from `repositories`, + `repository_lists` and `repository_owners` is required. + items: + type: string + repository_lists: + description: List of repository lists to run the query against. + Precisely one property from `repositories`, `repository_lists` + and `repository_owners` is required. + type: array + maxItems: 1 + items: + type: string + repository_owners: + description: List of organization or user names whose repositories + the query should be run against. Precisely one property from `repositories`, + `repository_lists` and `repository_owners` is required. + type: array + maxItems: 1 + items: + type: string + required: + - language + - query_pack + oneOf: + - required: + - repositories + - required: + - repository_lists + - required: + - repository_owners + examples: + repositories_parameter: + summary: Using the "repositories" field. "query_pack" is abridged + for brevity. + value: + language: csharp + query_pack: aGVsbG8= + repositories: + - octocat/Hello-World + - octocat/example + repository_owners: + summary: Using the "repository_owners" field. "query_pack" is abridged. + value: + language: csharp + query_pack: aGVsbG8= + repository_owners: + - octocat + repository_lists: + summary: Using the "repository_lists" field. "query_pack" is abridged. + value: + language: csharp + query_pack: aGVsbG8= + repository_lists: + - top-100-csharp + responses: + '201': + description: Variant analysis submitted for processing + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-variant-analysis" + examples: + repositories_parameter: + summary: Response for a successful variant analysis submission + value: + "$ref": "#/components/examples/code-scanning-variant-analysis" + repository_owners: + summary: Response for a successful variant analysis submission + value: + "$ref": "#/components/examples/code-scanning-variant-analysis" + repository_lists: + summary: Response for a successful variant analysis submission + value: + "$ref": "#/components/examples/code-scanning-variant-analysis" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Unable to process variant analysis submission + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}": + get: + summary: Get the summary of a CodeQL variant analysis + description: |- + Gets the summary of a CodeQL variant analysis. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/get-variant-analysis + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-the-summary-of-a-codeql-variant-analysis + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: codeql_variant_analysis_id + in: path + description: The unique identifier of the variant analysis. + schema: + type: integer + required: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-variant-analysis" + examples: + default: + "$ref": "#/components/examples/code-scanning-variant-analysis" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}": + get: + summary: Get the analysis status of a repository in a CodeQL variant analysis + description: |- + Gets the analysis status of a repository in a CodeQL variant analysis. + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/get-variant-analysis-repo-task + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-the-analysis-status-of-a-repository-in-a-codeql-variant-analysis + parameters: + - "$ref": "#/components/parameters/owner" + - name: repo + in: path + description: The name of the controller repository. + schema: + type: string + required: true + - name: codeql_variant_analysis_id + in: path + description: The ID of the variant analysis. + schema: + type: integer + required: true + - name: repo_owner + in: path + description: The account owner of the variant analysis repository. The name + is not case sensitive. + schema: + type: string + required: true + - name: repo_name + in: path + description: The name of the variant analysis repository. + schema: + type: string + required: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-variant-analysis-repo-task" + examples: + default: + "$ref": "#/components/examples/code-scanning-variant-analysis-repo-task" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/default-setup": + get: + summary: Get a code scanning default setup configuration + description: |- + Gets a code scanning default setup configuration. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/get-default-setup + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-default-setup" + examples: + default: + "$ref": "#/components/examples/code-scanning-default-setup" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + patch: + summary: Update a code scanning default setup configuration + description: |- + Updates a code scanning default setup configuration. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + tags: + - code-scanning + operationId: code-scanning/update-default-setup + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-default-setup-update" + examples: + default: + "$ref": "#/components/examples/code-scanning-default-setup-update" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-default-setup-update-response" + examples: + default: + "$ref": "#/components/examples/code-scanning-default-setup-update-response" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_write" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/code_scanning_conflict" + '422': + "$ref": "#/components/responses/code_scanning_invalid_state" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/sarifs": + post: + summary: Upload an analysis as SARIF data + description: "Uploads SARIF data containing the results of a code scanning analysis + to make the results available in a repository. For troubleshooting information, + see \"[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif).\"\n\nThere + are two places where you can upload code scanning results.\n - If you upload + to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, + then the results appear as alerts in a pull request check. For more information, + see \"[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests).\"\n + - If you upload to a branch, for example `--ref refs/heads/my-branch`, then + the results appear in the **Security** tab for your repository. For more information, + see \"[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository).\"\n\nYou + must compress the SARIF-formatted analysis data that you want to upload, using + `gzip`, and then encode it as a Base64 format string. For example:\n\n```\ngzip + -c analysis-data.sarif | base64 -w0\n```\n\nSARIF upload supports a maximum + number of entries per the following data objects, and an analysis will be + rejected if any of these objects is above its maximum value. For some objects, + there are additional values over which the entries will be ignored while keeping + the most important entries whenever applicable.\nTo get the most out of your + analysis when it includes data above the supported limits, try to optimize + the analysis configuration. For example, for the CodeQL tool, identify and + remove the most noisy queries. For more information, see \"[SARIF results + exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit).\"\n\n\n| + **SARIF data** | **Maximum values** | **Additional limits** + \ |\n|----------------------------------|:------------------:|----------------------------------------------------------------------------------|\n| + Runs per file | 20 | |\n| + Results per run | 25,000 | Only the top 5,000 + results will be included, prioritized by severity. |\n| Rules per + run | 25,000 | |\n| + Tool extensions per run | 100 | |\n| + Thread Flow Locations per result | 10,000 | Only the top 1,000 + Thread Flow Locations will be included, using prioritization. |\n| Location + per result\t | 1,000 | Only 100 locations will be + included. |\n| Tags per rule\t + \ | 20 | Only 10 tags will be included. |\n\n\nThe + `202 Accepted` response includes an `id` value.\nYou can use this ID to check + the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint.\nFor + more information, see \"[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload).\"\n\nOAuth + app tokens and personal access tokens (classic) need the `security_events` + scope to use this endpoint with private or public repositories, or the `public_repo` + scope to use this endpoint with only public repositories.\n\nThis endpoint + is limited to 1,000 requests per hour for each user or app installation calling + it." + operationId: code-scanning/upload-sarif + tags: + - code-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + commit_sha: + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" + ref: + "$ref": "#/components/schemas/code-scanning-ref-full" + sarif: + "$ref": "#/components/schemas/code-scanning-analysis-sarif-file" + checkout_uri: + description: |- + The base directory used in the analysis, as it appears in the SARIF file. + This property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository. + example: file:///github/workspace/ + type: string + format: uri + started_at: + description: 'The time that the analysis run began. This is a timestamp + in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: + `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + type: string + tool_name: + description: The name of the tool used to generate the code scanning + analysis. If this parameter is not used, the tool name defaults + to "API". If the uploaded SARIF contains a tool GUID, this will + be available for filtering using the `tool_guid` parameter of + operations such as `GET /repos/{owner}/{repo}/code-scanning/alerts`. + type: string + validate: + description: |- + Whether the SARIF file will be validated according to the code scanning specifications. + This parameter is intended to help integrators ensure that the uploaded SARIF files are correctly rendered by code scanning. + type: boolean + additionalProperties: false + required: + - commit_sha + - ref + - sarif + examples: + default: + value: + commit_sha: 4b6472266afd7b471e86085a6659e8c7f2b119da + ref: refs/heads/master + sarif: H4sICMLGdF4AA2V4YW1wbGUuc2FyaWYAvVjdbts2FL7PUxDCijaA/CM7iRNfLkPXYgHSNstumlzQ0pHFVCI1korjFgH2ONtr7Ul2KFmy/mOn6QIkjsjDw0/nfN85NL8dEGL9pNwAImqRObECrWM1H40kXQ2XTAfJIlEgXcE1cD10RTQSVDE10K4aKSqZP1AxuKOIKg1ydJU60jSfSh8Hk6EzHA/vlOCWbfa7B6kYPpj90rlsWCZcmbHP5Bs+4oAWIjQD2SMOeJLh2vIQDnIaQerqXHjw8YIgxohybxAyDsS4cAPKsp03K4RcUs6+Up2D+JXpd8mibKIQN9fM/aMCdbyBujGSSQgVxJtx5qX2d2qUcIweQhEuDQf3GBO6CKHkogx/N3MVCKl/AeVKFuf4y5ubsMGDTj1ep+5I7sgmLIpxtU38hLtmMRGSuCFVyip5eKzs5ydh+LztVL6f2m6oih1BkYiuyQIIJWodxVpERPj4sEiWBNNH8EWT0DMG8EAjzKVHXCrB4FkPu/F64NMk1OeC+2yZSNoBOoR7CC0EzYWGbm+xFDFIzbI011+cLjfZtyJkmMZfumAh02uL3NpV2y+MZ6RAjxibyKrNxxJcVjANSb4eBGwZ1M0KsuyR2poLr5rMl8vaDSeVn6eTWEO2j2xIEcmhwlTKNOi4GMOI8gfuZYkvJ7b4v5Tiumyz7RnHeodFzpS8ASIZCH/AYdWi2z3sG8JtFxJ6fF9yR9CdifBr9Pd6d5V2+zbJKjjCFGGmsHuYFy2ytJq9tUxcLSRSQecppOGKrpUxYfxefMEFK+wOGa4hudQByBVT0L+EKtyACxnRsABhEx1QjVDs1KNI9MbpnhqfE45B6FJvu3hRu5VRU9MhZLmK7fqkKyQSTHNoyMqUFMqXCV3CwAeqEwmVokraK8IuBaGvHjQ0gMYrKjnjyw7uk9uD8tgmsBbFMPnU1bV2ZhkJNkuolUiWys3UPWzs5aaIUz9TBe8zMb+6+nT+6fLy91dlE3xzeDDT4zYszb0bW6NjJd0Rvn2EnLvWLFSdKPpBzInzfRgu8ETyMcH8nIfMnJCeC2PyfTA+UKngcnGH7Hw2hGkVQs5YlIRCtdWZYQ4/73es2JlxkfViOEIhoWJq5Oo6UBBfiKIqFBWhiE3jJGbFwVoxBHTRSuIS67sMeplei24X20shLjG+8gqbKC/bESiNMC+wd5q5id0yeS7CJEqXzmrTWNq3k05l84P6f4/bEmXFJjI0fIt1BGQssUnUDkBYeVhE5TqPnMH3jqogDcP0zKcTgLPTMSzOjhbjuVOmW23l1fYNStulfo6sXlFsGLhbDy5RECPRYGCTgOj2bd4nUQEivEd0H7KKYxqnEhFohuur3a3UPskbH/+Yg0+M5P2MHRJu3ziHh3Z2NCrWt3XF1rWTw8Ne/pfbWYXnDSE0SNZQQt1i18q7te2vOhu7ehWuvVyeu0wbLZi24mhoo6aOOTltzG/lgdVvVoXQq5V+pewkFIzL8fjEcadT55jOjpzFzHuOTtDNrMkJPMVQDd7F09RID72O/UPZ0tmctqZ7kWX6EmSZnDpP8GU67SXM8XE3YSrxbKsx6UReZ4y6n/FVZfJjs9Z7stma75W5yQtkzjk5eSJxk1lv4o7+j8TlhaJ2lsKWZO6lruDPBLib3x5ZN/KGWzZ+pn///evv7OOf4iIBv3oY9L/l1wiJ9p0Tc+F1zZnOE9NxXWEus6IQhr5pMfoqxi8WPsuu0azsns4UC6WzNzHIzbeEx4P/AJ3SefgcFAAA + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-sarifs-receipt" + examples: + default: + "$ref": "#/components/examples/code-scanning-sarif-upload" + '400': + description: Bad Request if the sarif field is invalid + '403': + "$ref": "#/components/responses/code_scanning_forbidden_write" + '404': + "$ref": "#/components/responses/not_found" + '413': + description: Payload Too Large if the sarif field is too large + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": + get: + summary: Get information about a SARIF upload + description: |- + Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + operationId: code-scanning/get-sarif + tags: + - code-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: sarif_id + description: The SARIF ID obtained after uploading. + in: path + schema: + type: string + required: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-scanning-sarifs-status" + examples: + default: + "$ref": "#/components/examples/code-scanning-sarif-upload-status" + '403': + "$ref": "#/components/responses/code_scanning_forbidden_read" + '404': + description: Not Found if the sarif id does not match any upload + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: code-scanning + subcategory: code-scanning + "/repos/{owner}/{repo}/code-security-configuration": + get: + summary: Get the code security configuration associated with a repository + description: |- + Get the code security configuration that manages a repository's code security settings. + + The authenticated user must be an administrator or security manager for the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - code-security + operationId: code-security/get-configuration-for-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-security/configurations#get-the-code-security-configuration-associated-with-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/code-security-configuration-for-repository" + examples: + default: + "$ref": "#/components/examples/code-security-configuration-for-repository" + '204': + "$ref": "#/components/responses/no_content" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-security + subcategory: configurations + "/repos/{owner}/{repo}/codeowners/errors": + get: + summary: List CODEOWNERS errors + description: |- + List any syntax errors that are detected in the CODEOWNERS + file. + + For more information about the correct CODEOWNERS syntax, + see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + tags: + - repos + operationId: repos/codeowners-errors + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-codeowners-errors + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ref + description: 'A branch, tag or commit name used to determine which version + of the CODEOWNERS file to use. Default: the repository''s default branch + (e.g. `main`)' + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codeowners-errors" + examples: + default: + "$ref": "#/components/examples/codeowners-errors" + '404': + description: Resource not found + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: repos + subcategory: repos + "/repos/{owner}/{repo}/codespaces": + get: + summary: List codespaces in a repository for the authenticated user + description: |- + Lists the codespaces associated to a specified repository and the authenticated user. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-in-repository-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - codespaces + properties: + total_count: + type: integer + codespaces: + type: array + items: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespaces-list-for-repository" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + post: + summary: Create a codespace in a repository + description: |- + Creates a codespace owned by the authenticated user in the specified repository. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/create-with-repo-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-in-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + nullable: true + properties: + ref: + description: Git ref (typically a branch name) for this codespace + type: string + location: + description: The requested location for a new codespace. Best efforts + are made to respect this upon creation. Assigned by IP if not + provided. + type: string + geo: + description: The geographic area for this codespace. If not specified, + the value is assigned by IP. This property replaces `location`, + which is closing down. + type: string + enum: + - EuropeWest + - SoutheastAsia + - UsEast + - UsWest + client_ip: + description: IP for location auto-detection when proxying a request + type: string + machine: + description: Machine type to use for this codespace + type: string + devcontainer_path: + description: Path to devcontainer.json config to use for this codespace + type: string + multi_repo_permissions_opt_out: + description: Whether to authorize requested permissions from devcontainer.json + type: boolean + working_directory: + description: Working directory for this codespace + type: string + idle_timeout_minutes: + description: Time in minutes before codespace stops from inactivity + type: integer + display_name: + description: Display name for this codespace + type: string + retention_period_minutes: + description: Duration in minutes after codespace has gone idle in + which it will be deleted. Must be integer minutes between 0 and + 43200 (30 days). + type: integer + examples: + default: + value: + ref: main + machine: standardLinux32gb + responses: + '201': + description: Response when the codespace was successfully created + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '202': + description: Response when the codespace creation partially failed but is + being retried in the background + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '400': + "$ref": "#/components/responses/bad_request" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/repos/{owner}/{repo}/codespaces/devcontainers": + get: + summary: List devcontainer configurations in a repository for the authenticated + user + description: |- + Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + specify launchpoint configurations for codespaces created within the repository. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-devcontainers-in-repository-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - devcontainers + properties: + total_count: + type: integer + devcontainers: + type: array + items: + type: object + required: + - path + properties: + path: + type: string + name: + type: string + display_name: + type: string + examples: + default: + "$ref": "#/components/examples/codespaces-list-devcontainers-for-repository" + '500': + "$ref": "#/components/responses/internal_error" + '400': + "$ref": "#/components/responses/bad_request" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: codespaces + "/repos/{owner}/{repo}/codespaces/machines": + get: + summary: List available machine types for a repository + description: |- + List the machine types available for a given repository based on its configuration. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/repo-machines-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/machines#list-available-machine-types-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: location + description: The location to check for available machines. Assigned by IP + if not provided. + in: query + schema: + type: string + example: WestUs2 + - name: client_ip + description: IP for location auto-detection when proxying a request + in: query + schema: + type: string + - name: ref + description: The branch or commit to check for prebuild availability and devcontainer + restrictions. + in: query + schema: + type: string + example: main + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - machines + properties: + total_count: + type: integer + machines: + type: array + items: + "$ref": "#/components/schemas/codespace-machine" + examples: + default: + "$ref": "#/components/examples/codespace-machines-list" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: machines + "/repos/{owner}/{repo}/codespaces/new": + get: + summary: Get default attributes for a codespace + description: |- + Gets the default attributes for codespaces created by the user with the repository. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/pre-flight-with-repo-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#get-default-attributes-for-a-codespace + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ref + description: The branch or commit to check for a default devcontainer path. + If not specified, the default branch will be checked. + in: query + schema: + type: string + example: main + - name: client_ip + description: An alternative IP for default location auto-detection, such as + when proxying a request. + in: query + schema: + type: string + example: 1.2.3.4 + responses: + '200': + description: Response when a user is able to create codespaces from the + repository. + content: + application/json: + schema: + type: object + properties: + billable_owner: + "$ref": "#/components/schemas/simple-user" + defaults: + type: object + required: + - location + - devcontainer_path + properties: + location: + type: string + devcontainer_path: + type: string + nullable: true + examples: + default: + "$ref": "#/components/examples/codespaces-default-attributes-for-a-codespace" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: codespaces + "/repos/{owner}/{repo}/codespaces/permissions_check": + get: + summary: Check if permissions defined by a devcontainer have been accepted by + the authenticated user + description: |- + Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/check-permissions-for-devcontainer + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#check-if-permissions-defined-by-a-devcontainer-have-been-accepted-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ref + description: The git reference that points to the location of the devcontainer + configuration to use for the permission check. The value of `ref` will typically + be a branch name (`heads/BRANCH_NAME`). For more information, see "[Git + References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" + in the Git documentation. + in: query + required: true + schema: + type: string + example: master + - name: devcontainer_path + description: Path to the devcontainer.json configuration to use for the permission + check. + in: query + required: true + schema: + type: string + example: ".devcontainer/example/devcontainer.json" + responses: + '200': + description: Response when the permission check is successful + content: + application/json: + schema: + "$ref": "#/components/schemas/codespaces-permissions-check-for-devcontainer" + examples: + default: + "$ref": "#/components/examples/codespaces-permissions-check-for-devcontainer" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: codespaces + "/repos/{owner}/{repo}/codespaces/secrets": + get: + summary: List repository secrets + description: |- + Lists all development environment secrets available in a repository without revealing their encrypted + values. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-repo-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/repo-codespaces-secret" + examples: + default: + "$ref": "#/components/examples/repo-codespaces-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: repository-secrets + "/repos/{owner}/{repo}/codespaces/secrets/public-key": + get: + summary: Get a repository public key + description: |- + Gets your public key, which you need to encrypt secrets. You need to + encrypt a secret before you can create or update secrets. + + If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-repo-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespaces-public-key" + examples: + default: + "$ref": "#/components/examples/codespaces-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: repository-secrets + "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": + get: + summary: Get a repository secret + description: |- + Gets a single repository development environment secret without revealing its encrypted value. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repo-codespaces-secret" + examples: + default: + "$ref": "#/components/examples/repo-codespaces-secret" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: repository-secrets + put: + summary: Create or update a repository secret + description: |- + Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The associated user must be a repository admin. + tags: + - codespaces + operationId: codespaces/create-or-update-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/repository-secrets#create-or-update-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get a repository public + key](https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: ID of the key you used to encrypt the secret. + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: repository-secrets + delete: + summary: Delete a repository secret + description: |- + Deletes a development environment secret in a repository using the secret name. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The associated user must be a repository admin. + tags: + - codespaces + operationId: codespaces/delete-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/repository-secrets#delete-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: codespaces + subcategory: repository-secrets + "/repos/{owner}/{repo}/collaborators": + get: + summary: List repository collaborators + description: |- + For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + The `permissions` hash returned in the response contains the base role permissions of the collaborator. The `role_name` is the highest role assigned to the collaborator after considering all sources of grants, including: repo, teams, organization, and enterprise. + There is presently not a way to differentiate between an organization level grant and a repository level grant from this endpoint response. + + Team members will include the members of child teams. + + The authenticated user must have write, maintain, or admin privileges on the repository to use this endpoint. For organization-owned repositories, the authenticated user needs to be a member of the organization. + OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + tags: + - repos + operationId: repos/list-collaborators + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: affiliation + description: Filter collaborators returned by their affiliation. `outside` + means all outside collaborators of an organization-owned repository. `direct` + means all collaborators with permissions to an organization-owned repository, + regardless of organization membership status. `all` means all collaborators + the authenticated user can see. + in: query + required: false + schema: + type: string + enum: + - outside + - direct + - all + default: all + - name: permission + description: Filter collaborators by the permissions they have on the repository. + If not specified, all collaborators will be returned. + in: query + required: false + schema: + type: string + enum: + - pull + - triage + - push + - maintain + - admin + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/collaborator" + examples: + default: + "$ref": "#/components/examples/collaborator-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: collaborators + "/repos/{owner}/{repo}/collaborators/{username}": + get: + summary: Check if a user is a repository collaborator + description: |- + For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + + Team members will include the members of child teams. + + The authenticated user must have push access to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + tags: + - repos + operationId: repos/check-collaborator + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response if user is a collaborator + '404': + description: Not Found if user is not a collaborator + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: collaborators + put: + summary: Add a repository collaborator + description: |- + Add a user to a repository with a specified level of access. If the repository is owned by an organization, this API does not add the user to the organization - a user that has repository access without being an organization member is called an "outside collaborator" (if they are not an Enterprise Managed User) or a "repository collaborator" if they are an Enterprise Managed User. These users are exempt from some organization policies - see "[Adding outside collaborators to repositories](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization)" to learn more about these collaborator types. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + + Adding an outside collaborator may be restricted by enterprise and organization administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)" and "[Setting permissions for adding outside collaborators](https://docs.github.com/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators)" for organization settings. + + For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the role being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + + ``` + Cannot assign {member} permission of {role name} + ``` + + Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + + The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + + For Enterprise Managed Users, this endpoint does not send invitations - these users are automatically added to organizations and repositories. Enterprise Managed Users can only be added to organizations and repositories within their enterprise. + + **Updating an existing collaborator's permission level** + + The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + + **Rate limits** + + You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + tags: + - repos + operationId: repos/add-collaborator + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/username" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + permission: + type: string + description: 'The permission to grant the collaborator. **Only valid + on organization-owned repositories.** We accept the following + permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` + and you can also specify a custom repository role name, if the + owning organization has defined any.' + default: push + examples: + new-invitation-is-created: + summary: Add a collaborator with triage permissions + value: + permission: triage + responses: + '201': + description: Response when a new invitation is created + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-invitation" + examples: + new-invitation-is-created: + "$ref": "#/components/examples/repository-invitation-response-when-a-new-invitation-is-created" + '204': + description: |- + Response when: + - an existing collaborator is added as a collaborator + - an organization member is added as an individual collaborator + - an existing team member (whose team is also a repository collaborator) is added as an individual collaborator + '422': + description: |- + Response when: + - validation failed, or the endpoint has been spammed + - an Enterprise Managed User (EMU) account was invited to a repository in an enterprise with personal user accounts + content: + application/json: + schema: + "$ref": "#/components/schemas/validation-error" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: collaborators + delete: + summary: Remove a repository collaborator + description: |- + Removes a collaborator from a repository. + + To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + + This endpoint also: + - Cancels any outstanding invitations sent by the collaborator + - Unassigns the user from any issues + - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + - Unstars the repository + - Updates access permissions to packages + + Removing a user as a collaborator has the following effects on forks: + - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + - If the user had their own fork of the repository, the fork will be deleted. + - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + + > [!NOTE] + > A user can still have access to the repository through organization permissions like base repository permissions. + + Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + + For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + tags: + - repos + operationId: repos/remove-collaborator + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/collaborators#remove-a-repository-collaborator + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: No Content when collaborator was removed from the repository. + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: collaborators + "/repos/{owner}/{repo}/collaborators/{username}/permission": + get: + summary: Get repository permissions for a user + description: |- + Checks the repository permission and role of a collaborator. + + The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. + The `role_name` attribute provides the name of the assigned role, including custom roles. The + `permission` can also be used to determine which base level of access the collaborator has to the repository. + + The calculated permissions are the highest role assigned to the collaborator after considering all sources of grants, including: repo, teams, organization, and enterprise. + There is presently not a way to differentiate between an organization level grant and a repository level grant from this endpoint response. + tags: + - repos + operationId: repos/get-collaborator-permission-level + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/collaborators#get-repository-permissions-for-a-user + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: if user has admin permissions + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-collaborator-permission" + examples: + response-if-user-has-admin-permissions: + "$ref": "#/components/examples/repository-collaborator-permission-response-if-user-has-admin-permissions" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: collaborators + "/repos/{owner}/{repo}/comments": + get: + summary: List commit comments for a repository + description: |- + Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - repos + operationId: repos/list-commit-comments-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/commit-comment" + examples: + default: + "$ref": "#/components/examples/commit-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: comments + "/repos/{owner}/{repo}/comments/{comment_id}": + get: + summary: Get a commit comment + description: |- + Gets a specified commit comment. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - repos + operationId: repos/get-commit-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/comments#get-a-commit-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/commit-comment" + examples: + default: + "$ref": "#/components/examples/commit-comment" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: comments + patch: + summary: Update a commit comment + description: |- + Updates the contents of a specified commit comment. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - repos + operationId: repos/update-commit-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/comments#update-a-commit-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The contents of the comment + required: + - body + examples: + default: + value: + body: Nice change + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/commit-comment" + examples: + default: + "$ref": "#/components/examples/commit-comment-2" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: comments + delete: + summary: Delete a commit comment + description: '' + tags: + - repos + operationId: repos/delete-commit-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/comments#delete-a-commit-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: comments + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": + get: + summary: List reactions for a commit comment + description: List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + tags: + - reactions + operationId: reactions/list-for-commit-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + - name: content + description: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). + Omit this parameter to list all reactions to a commit comment. + in: query + required: false + schema: + type: string + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + post: + summary: Create reaction for a commit comment + description: Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + A response with an HTTP `200` status means that you already added the reaction + type to this commit comment. + tags: + - reactions + operationId: reactions/create-for-commit-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + description: The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) + to add to the commit comment. + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + required: + - content + examples: + default: + value: + content: heart + responses: + '200': + description: Reaction exists + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '201': + description: Reaction created + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": + delete: + summary: Delete a commit comment reaction + description: |- + > [!NOTE] + > You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + + Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + tags: + - reactions + operationId: reactions/delete-for-commit-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + - "$ref": "#/components/parameters/reaction-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/commits": + get: + summary: List commits + description: |- + **Signature verification object** + + The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + | `signature` | `string` | The signature that was extracted from the commit. | + | `payload` | `string` | The value that was signed. | + | `verified_at` | `string` | The date the signature was verified by GitHub. | + + These are the possible values for `reason` in the `verification` object: + + | Value | Description | + | ----- | ----------- | + | `expired_key` | The key that made the signature is expired. | + | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + | `gpgverify_error` | There was an error communicating with the signature verification service. | + | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + | `unsigned` | The object does not include a signature. | + | `unknown_signature_type` | A non-PGP signature was found in the commit. | + | `no_user` | No user was associated with the `committer` email address in the commit. | + | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + | `unknown_key` | The key that made the signature has not been registered with any user's account. | + | `malformed_signature` | There was an error parsing the signature. | + | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + | `valid` | None of the above errors applied, so the signature is considered to be verified. | + tags: + - repos + operationId: repos/list-commits + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/commits#list-commits + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: sha + description: 'SHA or branch to start listing commits from. Default: the repository’s + default branch (usually `main`).' + in: query + required: false + schema: + type: string + - name: path + description: Only commits containing this file path will be returned. + in: query + required: false + schema: + type: string + - name: author + description: GitHub username or email address to use to filter by commit author. + in: query + required: false + schema: + type: string + - name: committer + description: GitHub username or email address to use to filter by commit committer. + in: query + required: false + schema: + type: string + - name: since + description: 'Only show results that were last updated after the given time. + This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`. Due to limitations of Git, timestamps must + be between 1970-01-01 and 2099-12-31 (inclusive) or unexpected results may + be returned.' + in: query + required: false + schema: + type: string + format: date-time + - name: until + description: 'Only commits before this date will be returned. This is a timestamp + in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + Due to limitations of Git, timestamps must be between 1970-01-01 and 2099-12-31 + (inclusive) or unexpected results may be returned.' + in: query + required: false + schema: + type: string + format: date-time + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/commit" + examples: + default: + "$ref": "#/components/examples/commit-items" + headers: + Link: + "$ref": "#/components/headers/link" + '500': + "$ref": "#/components/responses/internal_error" + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: commits + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": + get: + summary: List branches for HEAD commit + description: |- + Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + tags: + - repos + operationId: repos/list-branches-for-head-commit + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/commits#list-branches-for-head-commit + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-sha" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/branch-short" + examples: + default: + "$ref": "#/components/examples/branch-short-items" + '422': + "$ref": "#/components/responses/validation_failed" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: commits + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": + get: + summary: List commit comments + description: |- + Lists the comments for a specified commit. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - repos + operationId: repos/list-comments-for-commit + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/comments#list-commit-comments + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-sha" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/commit-comment" + examples: + default: + "$ref": "#/components/examples/commit-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: comments + post: + summary: Create a commit comment + description: |- + Create a comment for a commit using its `:commit_sha`. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - repos + operationId: repos/create-commit-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/comments#create-a-commit-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-sha" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The contents of the comment. + path: + type: string + description: Relative path of the file to comment on. + position: + type: integer + description: Line index in the diff to comment on. + line: + type: integer + description: "**Closing down notice**. Use **position** parameter + instead. Line number in the file to comment on." + required: + - body + examples: + default: + value: + body: Great stuff + path: file1.txt + position: 4 + line: 1 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/commit-comment" + examples: + default: + "$ref": "#/components/examples/commit-comment" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/comments/1 + schema: + type: string + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: comments + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": + get: + summary: List pull requests associated with a commit + description: |- + Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, it will return merged and open pull requests associated with the commit. + + To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + tags: + - repos + operationId: repos/list-pull-requests-associated-with-commit + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-sha" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/pull-request-simple" + examples: + default: + "$ref": "#/components/examples/pull-request-simple-items" + headers: + Link: + "$ref": "#/components/headers/link" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: commits + "/repos/{owner}/{repo}/commits/{ref}": + get: + summary: Get a commit + description: |- + Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + + > [!NOTE] + > If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + + - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + + **Signature verification object** + + The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + | `signature` | `string` | The signature that was extracted from the commit. | + | `payload` | `string` | The value that was signed. | + | `verified_at` | `string` | The date the signature was verified by GitHub. | + + These are the possible values for `reason` in the `verification` object: + + | Value | Description | + | ----- | ----------- | + | `expired_key` | The key that made the signature is expired. | + | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + | `gpgverify_error` | There was an error communicating with the signature verification service. | + | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + | `unsigned` | The object does not include a signature. | + | `unknown_signature_type` | A non-PGP signature was found in the commit. | + | `no_user` | No user was associated with the `committer` email address in the commit. | + | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + | `unknown_key` | The key that made the signature has not been registered with any user's account. | + | `malformed_signature` | There was an error parsing the signature. | + | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + | `valid` | None of the above errors applied, so the signature is considered to be verified. | + tags: + - repos + operationId: repos/get-commit + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/commits#get-a-commit + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/commit-ref" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/commit" + examples: + default: + "$ref": "#/components/examples/commit" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: commits + "/repos/{owner}/{repo}/commits/{ref}/check-runs": + get: + summary: List check runs for a Git reference + description: |- + Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + + > [!NOTE] + > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + + If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + tags: + - checks + operationId: checks/list-for-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-ref" + - "$ref": "#/components/parameters/check-name" + - "$ref": "#/components/parameters/status" + - name: filter + description: Filters check runs by their `completed_at` timestamp. `latest` + returns the most recent check runs. + in: query + required: false + schema: + type: string + enum: + - latest + - all + default: latest + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - name: app_id + in: query + required: false + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - check_runs + properties: + total_count: + type: integer + check_runs: + type: array + items: + "$ref": "#/components/schemas/check-run" + examples: + default: + "$ref": "#/components/examples/check-run-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: runs + "/repos/{owner}/{repo}/commits/{ref}/check-suites": + get: + summary: List check suites for a Git reference + description: |- + Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + + > [!NOTE] + > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + tags: + - checks + operationId: checks/list-suites-for-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-ref" + - name: app_id + description: Filters check suites by GitHub App `id`. + in: query + required: false + schema: + type: integer + example: 1 + - "$ref": "#/components/parameters/check-name" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - check_suites + properties: + total_count: + type: integer + check_suites: + type: array + items: + "$ref": "#/components/schemas/check-suite" + examples: + default: + "$ref": "#/components/examples/check-suite-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: checks + subcategory: suites + "/repos/{owner}/{repo}/commits/{ref}/status": + get: + summary: Get the combined status for a specific reference + description: |- + Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + + + Additionally, a combined `state` is returned. The `state` is one of: + + * **failure** if any of the contexts report as `error` or `failure` + * **pending** if there are no statuses or a context is `pending` + * **success** if the latest status for all contexts is `success` + tags: + - repos + operationId: repos/get-combined-status-for-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-ref" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/combined-commit-status" + examples: + default: + "$ref": "#/components/examples/combined-commit-status" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: statuses + "/repos/{owner}/{repo}/commits/{ref}/statuses": + get: + summary: List commit statuses for a reference + description: |- + Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + + This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + tags: + - repos + operationId: repos/list-commit-statuses-for-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-ref" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/status" + examples: + default: + "$ref": "#/components/examples/status-items" + headers: + Link: + "$ref": "#/components/headers/link" + '301': + "$ref": "#/components/responses/moved_permanently" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: statuses + "/repos/{owner}/{repo}/community/profile": + get: + summary: Get community profile metrics + description: |- + Returns all community profile metrics for a repository. The repository cannot be a fork. + + The returned metrics include an overall health score, the repository description, the presence of documentation, the + detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + README, and CONTRIBUTING files. + + The `health_percentage` score is defined as a percentage of how many of + the recommended community health files are present. For more information, see + "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + + `content_reports_enabled` is only returned for organization-owned repositories. + tags: + - repos + operationId: repos/get-community-profile-metrics + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/community#get-community-profile-metrics + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/community-profile" + examples: + default: + "$ref": "#/components/examples/community-profile" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: community + "/repos/{owner}/{repo}/compare/{basehead}": + get: + summary: Compare two commits + description: |- + Compares two commits against one another. You can compare refs (branches or tags) and commit SHAs in the same repository, or you can compare refs and commit SHAs that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + + This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.diff`**: Returns the diff of the commit. + - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + + The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + + When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + + **Working with large comparisons** + + To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + + - The list of changed files is only shown on the first page of results, and it includes up to 300 changed files for the entire comparison. + - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + + For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + + **Signature verification object** + + The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + | `signature` | `string` | The signature that was extracted from the commit. | + | `payload` | `string` | The value that was signed. | + | `verified_at` | `string` | The date the signature was verified by GitHub. | + + These are the possible values for `reason` in the `verification` object: + + | Value | Description | + | ----- | ----------- | + | `expired_key` | The key that made the signature is expired. | + | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + | `gpgverify_error` | There was an error communicating with the signature verification service. | + | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + | `unsigned` | The object does not include a signature. | + | `unknown_signature_type` | A non-PGP signature was found in the commit. | + | `no_user` | No user was associated with the `committer` email address in the commit. | + | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + | `unknown_key` | The key that made the signature has not been registered with any user's account. | + | `malformed_signature` | There was an error parsing the signature. | + | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + | `valid` | None of the above errors applied, so the signature is considered to be verified. | + tags: + - repos + operationId: repos/compare-commits + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/commits#compare-two-commits + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - name: basehead + description: The base branch and head branch to compare. This parameter expects + the format `BASE...HEAD`. Both must be branch names in `repo`. To compare + with a branch that exists in a different repository in the same network + as `repo`, the `basehead` parameter expects the format `USERNAME:BASE...USERNAME:HEAD`. + in: path + required: true + x-multi-segment: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/commit-comparison" + examples: + default: + "$ref": "#/components/examples/commit-comparison" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: commits + "/repos/{owner}/{repo}/contents/{path}": + get: + summary: Get repository content + description: |- + Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + + If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + + If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + + If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + + **Notes**: + + - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + - If the requested file's size is: + - 1 MB or smaller: All features of this endpoint are supported. + - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + - Greater than 100 MB: This endpoint is not supported. + tags: + - repos + operationId: repos/get-content + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/contents#get-repository-content + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: path + description: path parameter + in: path + required: true + schema: + type: string + x-multi-segment: true + - name: ref + description: 'The name of the commit/branch/tag. Default: the repository’s + default branch.' + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/vnd.github.object: + schema: + "$ref": "#/components/schemas/content-tree" + examples: + response-if-content-is-a-file: + "$ref": "#/components/examples/content-file-response-if-content-is-a-file" + response-if-content-is-a-directory: + "$ref": "#/components/examples/content-file-response-if-content-is-a-directory-object" + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/content-directory" + - "$ref": "#/components/schemas/content-file" + - "$ref": "#/components/schemas/content-symlink" + - "$ref": "#/components/schemas/content-submodule" + discriminator: + propertyName: type + mapping: + array: "#/components/schemas/content-directory" + file: "#/components/schemas/content-file" + symlink: "#/components/schemas/content-symlink" + submodule: "#/components/schemas/content-submodule" + examples: + response-if-content-is-a-file: + "$ref": "#/components/examples/content-file-response-if-content-is-a-file" + response-if-content-is-a-directory: + "$ref": "#/components/examples/content-file-response-if-content-is-a-directory" + response-if-content-is-a-symlink: + "$ref": "#/components/examples/content-file-response-if-content-is-a-symlink" + response-if-content-is-a-submodule: + "$ref": "#/components/examples/content-file-response-if-content-is-a-submodule" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '302': + "$ref": "#/components/responses/found" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: contents + put: + summary: Create or update file contents + description: |- + Creates a new file or replaces an existing file in a repository. + + > [!NOTE] + > If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + tags: + - repos + operationId: repos/create-or-update-file-contents + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/contents#create-or-update-file-contents + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: path + description: path parameter + in: path + required: true + schema: + type: string + x-multi-segment: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: The commit message. + content: + type: string + description: The new file content, using Base64 encoding. + sha: + type: string + description: "**Required if you are updating a file**. The blob + SHA of the file being replaced." + branch: + type: string + description: 'The branch name. Default: the repository’s default + branch.' + committer: + type: object + description: 'The person that committed the file. Default: the authenticated + user.' + properties: + name: + type: string + description: The name of the author or committer of the commit. + You'll receive a `422` status code if `name` is omitted. + email: + type: string + description: The email of the author or committer of the commit. + You'll receive a `422` status code if `email` is omitted. + date: + type: string + example: '"2013-01-05T13:13:22+05:00"' + required: + - name + - email + author: + type: object + description: 'The author of the file. Default: The `committer` or + the authenticated user if you omit `committer`.' + properties: + name: + type: string + description: The name of the author or committer of the commit. + You'll receive a `422` status code if `name` is omitted. + email: + type: string + description: The email of the author or committer of the commit. + You'll receive a `422` status code if `email` is omitted. + date: + type: string + example: '"2013-01-15T17:13:22+05:00"' + required: + - name + - email + required: + - message + - content + examples: + example-for-creating-a-file: + summary: Example for creating a file + value: + message: my commit message + committer: + name: Monalisa Octocat + email: octocat@github.com + content: bXkgbmV3IGZpbGUgY29udGVudHM= + example-for-updating-a-file: + summary: Example for updating a file + value: + message: a new commit message + committer: + name: Monalisa Octocat + email: octocat@github.com + content: bXkgdXBkYXRlZCBmaWxlIGNvbnRlbnRz + sha: 95b966ae1c166bd92f8ae7d1c313e738c731dfc3 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/file-commit" + examples: + example-for-updating-a-file: + "$ref": "#/components/examples/file-commit-example-for-updating-a-file" + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/file-commit" + examples: + example-for-creating-a-file: + "$ref": "#/components/examples/file-commit-example-for-creating-a-file" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '409': + description: Conflict + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/basic-error" + - "$ref": "#/components/schemas/repository-rule-violation-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: contents + delete: + summary: Delete a file + description: |- + Deletes a file in a repository. + + You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + + The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + + You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + + > [!NOTE] + > If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + tags: + - repos + operationId: repos/delete-file + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/contents#delete-a-file + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: path + description: path parameter + in: path + required: true + schema: + type: string + x-multi-segment: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: The commit message. + sha: + type: string + description: The blob SHA of the file being deleted. + branch: + type: string + description: 'The branch name. Default: the repository’s default + branch' + committer: + type: object + description: object containing information about the committer. + properties: + name: + type: string + description: The name of the author (or committer) of the commit + email: + type: string + description: The email of the author (or committer) of the commit + author: + type: object + description: object containing information about the author. + properties: + name: + type: string + description: The name of the author (or committer) of the commit + email: + type: string + description: The email of the author (or committer) of the commit + required: + - message + - sha + examples: + default: + value: + message: my commit message + committer: + name: Monalisa Octocat + email: octocat@github.com + sha: 329688480d39049927147c162b9d2deaf885005f + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/file-commit" + examples: + default: + "$ref": "#/components/examples/file-commit" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: contents + "/repos/{owner}/{repo}/contributors": + get: + summary: List repository contributors + description: |- + Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + + GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + tags: + - repos + operationId: repos/list-contributors + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-repository-contributors + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: anon + description: Set to `1` or `true` to include anonymous contributors in results. + in: query + required: false + schema: + type: string + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: If repository contains content + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/contributor" + examples: + response-if-repository-contains-content: + "$ref": "#/components/examples/contributor-items-response-if-repository-contains-content" + headers: + Link: + "$ref": "#/components/headers/link" + '204': + description: Response if repository is empty + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/dependabot/alerts": + get: + summary: List Dependabot alerts for a repository + description: OAuth app tokens and personal access tokens (classic) need the + `security_events` scope to use this endpoint. If this endpoint is only used + with public repositories, the token can use the `public_repo` scope instead. + tags: + - dependabot + operationId: dependabot/list-alerts-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-states" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-severities" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-ecosystems" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-packages" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-manifests" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-epss" + - "$ref": "#/components/parameters/dependabot-alert-comma-separated-has" + - "$ref": "#/components/parameters/dependabot-alert-scope" + - "$ref": "#/components/parameters/dependabot-alert-sort" + - "$ref": "#/components/parameters/direction" + - name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + deprecated: true + in: query + schema: + type: integer + default: 30 + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/dependabot-alert" + examples: + default: + "$ref": "#/components/examples/dependabot-alerts-for-repository" + '304': + "$ref": "#/components/responses/not_modified" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: dependabot + subcategory: alerts + "/repos/{owner}/{repo}/dependabot/alerts/{alert_number}": + get: + summary: Get a Dependabot alert + description: OAuth app tokens and personal access tokens (classic) need the + `security_events` scope to use this endpoint. If this endpoint is only used + with public repositories, the token can use the `public_repo` scope instead. + tags: + - dependabot + operationId: dependabot/get-alert + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/alerts#get-a-dependabot-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/dependabot-alert-number" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependabot-alert" + examples: + default: + "$ref": "#/components/examples/dependabot-alert-open" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: dependabot + subcategory: alerts + patch: + summary: Update a Dependabot alert + description: |- + The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + + OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + tags: + - dependabot + operationId: dependabot/update-alert + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/alerts#update-a-dependabot-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/dependabot-alert-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + state: + type: string + description: |- + The state of the Dependabot alert. + A `dismissed_reason` must be provided when setting the state to `dismissed`. + enum: + - dismissed + - open + dismissed_reason: + type: string + description: "**Required when `state` is `dismissed`.** A reason + for dismissing the alert." + enum: + - fix_started + - inaccurate + - no_bandwidth + - not_used + - tolerable_risk + dismissed_comment: + type: string + description: An optional comment associated with dismissing the + alert. + maxLength: 280 + required: + - state + additionalProperties: false + examples: + default: + value: + state: dismissed + dismissed_reason: tolerable_risk + dismissed_comment: This alert is accurate but we use a sanitizer. + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependabot-alert" + examples: + default: + "$ref": "#/components/examples/dependabot-alert-dismissed" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + previews: [] + category: dependabot + subcategory: alerts + "/repos/{owner}/{repo}/dependabot/secrets": + get: + summary: List repository secrets + description: |- + Lists all secrets available in a repository without revealing their encrypted + values. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/list-repo-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#list-repository-secrets + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/dependabot-secret" + examples: + default: + "$ref": "#/components/examples/dependabot-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/repos/{owner}/{repo}/dependabot/secrets/public-key": + get: + summary: Get a repository public key + description: |- + Gets your public key, which you need to encrypt secrets. You need to + encrypt a secret before you can create or update secrets. Anyone with read access + to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + tags: + - dependabot + operationId: dependabot/get-repo-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependabot-public-key" + examples: + default: + "$ref": "#/components/examples/dependabot-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": + get: + summary: Get a repository secret + description: |- + Gets a single repository secret without revealing its encrypted value. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/get-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#get-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependabot-secret" + examples: + default: + "$ref": "#/components/examples/dependabot-secret" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + put: + summary: Create or update a repository secret + description: |- + Creates or updates a repository secret with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/create-or-update-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#create-or-update-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get a repository public + key](https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: ID of the key you used to encrypt the secret. + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + delete: + summary: Delete a repository secret + description: |- + Deletes a secret in a repository using the secret name. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - dependabot + operationId: dependabot/delete-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependabot/secrets#delete-a-repository-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependabot + subcategory: secrets + "/repos/{owner}/{repo}/dependency-graph/compare/{basehead}": + get: + summary: Get a diff of the dependencies between commits + description: Gets the diff of the dependency changes between two commits of + a repository, based on the changes to the dependency manifests made in those + commits. + tags: + - dependency-graph + operationId: dependency-graph/diff-range + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: basehead + description: The base and head Git revisions to compare. The Git revisions + will be resolved to commit SHAs. Named revisions will be resolved to their + corresponding HEAD commits, and an appropriate merge base will be determined. + This parameter expects the format `{base}...{head}`. + in: path + required: true + schema: + type: string + - "$ref": "#/components/parameters/manifest-path" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependency-graph-diff" + examples: + default: + "$ref": "#/components/examples/diff-range-response" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/dependency_review_forbidden" + x-github: + githubCloudOnly: false + category: dependency-graph + subcategory: dependency-review + "/repos/{owner}/{repo}/dependency-graph/sbom": + get: + summary: Export a software bill of materials (SBOM) for a repository. + description: Exports the software bill of materials (SBOM) for a repository + in SPDX JSON format. + tags: + - dependency-graph + operationId: dependency-graph/export-sbom + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/dependency-graph-spdx-sbom" + examples: + default: + "$ref": "#/components/examples/dependency-graph-export-sbom-response" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + category: dependency-graph + subcategory: sboms + "/repos/{owner}/{repo}/dependency-graph/snapshots": + post: + summary: Create a snapshot of dependencies for a repository + description: |- + Create a new snapshot of a repository's dependencies. + + The authenticated user must have access to the repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - dependency-graph + operationId: dependency-graph/create-repository-snapshot + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/snapshot" + examples: + example-of-a-dependency-submission: + "$ref": "#/components/examples/dependency-graph-create-snapshot-request" + responses: + '201': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - created_at + - result + - message + properties: + id: + type: integer + description: ID of the created snapshot. + created_at: + type: string + description: The time at which the snapshot was created. + result: + type: string + description: Either "SUCCESS", "ACCEPTED", or "INVALID". "SUCCESS" + indicates that the snapshot was successfully created and the + repository's dependencies were updated. "ACCEPTED" indicates + that the snapshot was successfully created, but the repository's + dependencies were not updated. "INVALID" indicates that the + snapshot was malformed. + message: + type: string + description: A message providing further details about the result, + such as why the dependencies were not updated. + examples: + example-of-a-dependency-submission: + "$ref": "#/components/examples/dependency-graph-create-snapshot-success" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: dependency-graph + subcategory: dependency-submission + "/repos/{owner}/{repo}/deployments": + get: + summary: List deployments + description: 'Simple filtering of deployments is available via query parameters:' + tags: + - repos + operationId: repos/list-deployments + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/deployments#list-deployments + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: sha + description: The SHA recorded at creation time. + in: query + required: false + schema: + type: string + default: none + - name: ref + description: The name of the ref. This can be a branch, tag, or SHA. + in: query + required: false + schema: + type: string + default: none + - name: task + description: The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). + in: query + required: false + schema: + type: string + default: none + - name: environment + description: The name of the environment that was deployed to (e.g., `staging` + or `production`). + in: query + required: false + schema: + type: string + default: none + nullable: true + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/deployment" + examples: + default: + "$ref": "#/components/examples/deployment-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: deployments + post: + summary: Create a deployment + description: |- + Deployments offer a few configurable parameters with certain defaults. + + The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + before we merge a pull request. + + The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + makes it easier to track which environments have requested deployments. The default environment is `production`. + + The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + return a failure response. + + By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + not require any contexts or create any commit statuses, the deployment will always succeed. + + The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + field that will be passed on when a deployment event is dispatched. + + The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + application with debugging enabled. + + Merged branch response: + + You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + a deployment. This auto-merge happens when: + * Auto-merge option is enabled in the repository + * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * There are no merge conflicts + + If there are no new commits in the base branch, a new request to create a deployment should give a successful + response. + + Merge conflict response: + + This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + + Failed commit status checks: + + This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + tags: + - repos + operationId: repos/create-deployment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/deployments#create-a-deployment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + ref: + type: string + description: The ref to deploy. This can be a branch, tag, or SHA. + task: + type: string + description: Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + default: deploy + auto_merge: + type: boolean + description: Attempts to automatically merge the default branch + into the requested ref, if it's behind the default branch. + default: true + required_contexts: + type: array + description: The [status](https://docs.github.com/rest/commits/statuses) + contexts to verify against commit status checks. If you omit this + parameter, GitHub verifies all unique contexts before creating + a deployment. To bypass checking entirely, pass an empty array. + Defaults to all unique contexts. + items: + type: string + payload: + oneOf: + - type: object + additionalProperties: true + - type: string + description: JSON payload with extra information about the deployment. + default: '' + environment: + type: string + description: Name for the target deployment environment (e.g., `production`, + `staging`, `qa`). + default: production + description: + type: string + description: Short description of the deployment. + default: '' + nullable: true + transient_environment: + type: boolean + description: 'Specifies if the given environment is specific to + the deployment and will no longer exist at some point in the future. + Default: `false`' + default: false + production_environment: + type: boolean + description: 'Specifies if the given environment is one that end-users + directly interact with. Default: `true` when `environment` is + `production` and `false` otherwise.' + required: + - ref + examples: + simple-example: + summary: Simple example + value: + ref: topic-branch + payload: '{ "deploy": "migrate" }' + description: Deploy request from hubot + advanced-example: + summary: Advanced example + value: + ref: topic-branch + auto_merge: false + payload: '{ "deploy": "migrate" }' + description: Deploy request from hubot + required_contexts: + - ci/janky + - security/brakeman + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment" + examples: + simple-example: + "$ref": "#/components/examples/deployment-simple-example" + '202': + description: Merged branch response + content: + application/json: + schema: + type: object + properties: + message: + type: string + examples: + merged-branch-response: + value: + message: Auto-merged master into topic-branch on deployment. + '409': + description: Conflict when there is a merge conflict or the commit's status + checks failed + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: deployments + "/repos/{owner}/{repo}/deployments/{deployment_id}": + get: + summary: Get a deployment + description: '' + tags: + - repos + operationId: repos/get-deployment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/deployments#get-a-deployment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/deployment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment" + examples: + default: + "$ref": "#/components/examples/deployment" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: deployments + delete: + summary: Delete a deployment + description: |- + If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + + To set a deployment as inactive, you must: + + * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * Mark the active deployment as inactive by adding any non-successful deployment status. + + For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + tags: + - repos + operationId: repos/delete-deployment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/deployments#delete-a-deployment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/deployment-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: deployments + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": + get: + summary: List deployment statuses + description: 'Users with pull access can view deployment statuses for a deployment:' + tags: + - repos + operationId: repos/list-deployment-statuses + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/statuses#list-deployment-statuses + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/deployment-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/deployment-status" + examples: + default: + "$ref": "#/components/examples/deployment-status-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: statuses + post: + summary: Create a deployment status + description: |- + Users with `push` access can create deployment statuses for a given deployment. + + OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + tags: + - repos + operationId: repos/create-deployment-status + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/statuses#create-a-deployment-status + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/deployment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + state: + type: string + description: The state of the status. When you set a transient deployment + to `inactive`, the deployment will be shown as `destroyed` in + GitHub. + enum: + - error + - failure + - inactive + - in_progress + - queued + - pending + - success + target_url: + type: string + description: |- + The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. + + > [!NOTE] + > It's recommended to use the `log_url` parameter, which replaces `target_url`. + default: '' + log_url: + type: string + description: 'The full URL of the deployment''s output. This parameter + replaces `target_url`. We will continue to accept `target_url` + to support legacy uses, but we recommend replacing `target_url` + with `log_url`. Setting `log_url` will automatically set `target_url` + to the same value. Default: `""`' + default: '' + description: + type: string + description: A short description of the status. The maximum description + length is 140 characters. + default: '' + environment: + type: string + description: Name for the target deployment environment, which can + be changed when setting a deploy status. For example, `production`, + `staging`, or `qa`. If not defined, the environment of the previous + status on the deployment will be used, if it exists. Otherwise, + the environment of the deployment will be used. + environment_url: + type: string + description: 'Sets the URL for accessing your environment. Default: + `""`' + default: '' + auto_inactive: + type: boolean + description: 'Adds a new `inactive` status to all prior non-transient, + non-production environment deployments with the same repository + and `environment` name as the created status''s deployment. An + `inactive` status is only added to deployments that had a `success` + state. Default: `true`' + required: + - state + examples: + default: + value: + environment: production + state: success + log_url: https://example.com/deployment/42/output + description: Deployment finished successfully. + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-status" + examples: + default: + "$ref": "#/components/examples/deployment-status" + headers: + Location: + example: https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: statuses + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": + get: + summary: Get a deployment status + description: 'Users with pull access can view a deployment status for a deployment:' + tags: + - repos + operationId: repos/get-deployment-status + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/statuses#get-a-deployment-status + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/deployment-id" + - name: status_id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-status" + examples: + default: + "$ref": "#/components/examples/deployment-status" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: statuses + "/repos/{owner}/{repo}/dispatches": + post: + summary: Create a repository dispatch event + description: |- + You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + + The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + + This input example shows how you can use the `client_payload` as a test to debug your workflow. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/create-dispatch-event + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - event_type + properties: + event_type: + type: string + description: A custom webhook event name. Must be 100 characters + or fewer. + minLength: 1 + maxLength: 100 + client_payload: + type: object + description: JSON payload with extra information about the webhook + event that your action or workflow may use. The maximum number + of top-level properties is 10. The total size of the JSON payload + must be less than 64KB. + additionalProperties: true + maxProperties: 10 + examples: + default: + value: + event_type: on-demand-test + client_payload: + unit: false + integration: true + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/environments": + get: + summary: List environments + description: |- + Lists the environments for a repository. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/get-all-environments + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/environments#list-environments + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of environments in this repository + example: 5 + type: integer + environments: + type: array + items: + "$ref": "#/components/schemas/environment" + examples: + default: + "$ref": "#/components/examples/environments" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: environments + "/repos/{owner}/{repo}/environments/{environment_name}": + get: + summary: Get an environment + description: |- + > [!NOTE] + > To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/get-environment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/environments#get-an-environment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/environment" + examples: + default: + "$ref": "#/components/examples/environment" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: environments + put: + summary: Create or update an environment + description: |- + Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + + > [!NOTE] + > To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + + > [!NOTE] + > To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/create-or-update-environment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/environments#create-or-update-an-environment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + wait_timer: + "$ref": "#/components/schemas/wait-timer" + prevent_self_review: + "$ref": "#/components/schemas/prevent-self-review" + reviewers: + type: array + nullable: true + description: The people or teams that may review jobs that reference + the environment. You can list up to six users or teams as reviewers. + The reviewers must have at least read access to the repository. + Only one of the required reviewers needs to approve the job for + it to proceed. + items: + type: object + properties: + type: + "$ref": "#/components/schemas/deployment-reviewer-type" + id: + type: integer + description: The id of the user or team who can review the + deployment + example: 4532992 + deployment_branch_policy: + "$ref": "#/components/schemas/deployment-branch-policy-settings" + additionalProperties: false + examples: + default: + value: + wait_timer: 30 + prevent_self_review: false + reviewers: + - type: User + id: 1 + - type: Team + id: 1 + deployment_branch_policy: + protected_branches: false + custom_branch_policies: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/environment" + examples: + default: + "$ref": "#/components/examples/environment" + '422': + description: Validation error when the environment name is invalid or when + `protected_branches` and `custom_branch_policies` in `deployment_branch_policy` + are set to the same value + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: environments + delete: + summary: Delete an environment + description: OAuth app tokens and personal access tokens (classic) need the + `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/delete-an-environment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/environments#delete-an-environment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + responses: + '204': + description: Default response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: environments + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": + get: + summary: List deployment branch policies + description: |- + Lists the deployment branch policies for an environment. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/list-deployment-branch-policies + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of deployment branch policies for the + environment. + type: integer + example: 2 + branch_policies: + type: array + items: + "$ref": "#/components/schemas/deployment-branch-policy" + required: + - total_count + - branch_policies + examples: + default: + "$ref": "#/components/examples/deployment-branch-policies-list" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: branch-policies + post: + summary: Create a deployment branch policy + description: |- + Creates a deployment branch or tag policy for an environment. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/create-deployment-branch-policy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/branch-policies#create-a-deployment-branch-policy + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-branch-policy-name-pattern-with-type" + examples: + example-wildcard: + summary: Example of a wildcard name pattern + value: + name: release/* + example-single-branch: + summary: Example of a single branch name pattern + value: + name: main + type: branch + example-single-tag: + summary: Example of a single tag name pattern + value: + name: v1 + type: tag + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-branch-policy" + examples: + example-wildcard: + "$ref": "#/components/examples/deployment-branch-policy-wildcard" + example-single-branch: + "$ref": "#/components/examples/deployment-branch-policy-single-branch" + example-single-tag: + "$ref": "#/components/examples/deployment-branch-policy-single-tag" + '404': + description: Not Found or `deployment_branch_policy.custom_branch_policies` + property for the environment is set to false + '303': + description: Response if the same branch name pattern already exists + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: branch-policies + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": + get: + summary: Get a deployment branch policy + description: |- + Gets a deployment branch or tag policy for an environment. + + Anyone with read access to the repository can use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/get-deployment-branch-policy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/branch-policies#get-a-deployment-branch-policy + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/branch-policy-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-branch-policy" + examples: + default: + "$ref": "#/components/examples/deployment-branch-policy-wildcard" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: branch-policies + put: + summary: Update a deployment branch policy + description: |- + Updates a deployment branch or tag policy for an environment. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/update-deployment-branch-policy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/branch-policies#update-a-deployment-branch-policy + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/branch-policy-id" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-branch-policy-name-pattern" + examples: + default: + value: + name: release/* + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-branch-policy" + examples: + default: + "$ref": "#/components/examples/deployment-branch-policy-wildcard" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: branch-policies + delete: + summary: Delete a deployment branch policy + description: |- + Deletes a deployment branch or tag policy for an environment. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/delete-deployment-branch-policy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/branch-policies#delete-a-deployment-branch-policy + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/branch-policy-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: branch-policies + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": + get: + summary: Get all deployment protection rules for an environment + description: |- + Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + + For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/get-all-deployment-protection-rules + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/protection-rules#get-all-deployment-protection-rules-for-an-environment + parameters: + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/owner" + responses: + '200': + description: List of deployment protection rules + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of enabled custom deployment protection + rules for this environment + type: integer + example: 10 + custom_deployment_protection_rules: + type: array + items: + "$ref": "#/components/schemas/deployment-protection-rule" + example: + "$ref": "#/components/examples/deployment-protection-rules" + examples: + default: + value: + total_count: 2 + custom_deployment_protection_rules: + - id: 3 + node_id: IEH37kRlcGxveW1lbnRTdGF0ddiv + enabled: true + app: + id: 1 + node_id: GHT58kRlcGxveW1lbnRTdTY!bbcy + slug: a-custom-app + integration_url: https://api.github.com/apps/a-custom-app + - id: 4 + node_id: MDE2OkRlcGxveW1lbnRTdHJ41128 + enabled: true + app: + id: 1 + node_id: UHVE67RlcGxveW1lbnRTdTY!jfeuy + slug: another-custom-app + integration_url: https://api.github.com/apps/another-custom-app + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: protection-rules + post: + summary: Create a custom deployment protection rule on an environment + description: |- + Enable a custom deployment protection rule for an environment. + + The authenticated user must have admin or owner permissions to the repository to use this endpoint. + + For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app), as well as the [guide to creating custom deployment protection rules](https://docs.github.com/actions/managing-workflow-runs-and-deployments/managing-deployments/creating-custom-deployment-protection-rules). + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/create-deployment-protection-rule + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/protection-rules#create-a-custom-deployment-protection-rule-on-an-environment + parameters: + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/owner" + requestBody: + content: + application/json: + schema: + type: object + properties: + integration_id: + type: integer + description: The ID of the custom app that will be enabled on the + environment. + examples: + default: + value: + integration_id: 5 + required: true + responses: + '201': + description: The enabled custom deployment protection rule + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-protection-rule" + examples: + default: + "$ref": "#/components/examples/deployment-protection-rule" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: protection-rules + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": + get: + summary: List custom deployment rule integrations available for an environment + description: |- + Gets all custom deployment protection rule integrations that are available for an environment. + + The authenticated user must have admin or owner permissions to the repository to use this endpoint. + + For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + + For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/list-custom-deployment-rule-integrations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment + parameters: + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: A list of custom deployment rule integrations available for + this environment. + content: + application/json: + schema: + type: object + properties: + total_count: + description: The total number of custom deployment protection + rule integrations available for this environment. + type: integer + example: 35 + available_custom_deployment_protection_rule_integrations: + type: array + items: + "$ref": "#/components/schemas/custom-deployment-rule-app" + examples: + default: + "$ref": "#/components/examples/custom-deployment-protection-rule-apps" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: protection-rules + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": + get: + summary: Get a custom deployment protection rule + description: |- + Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + + For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/get-custom-deployment-protection-rule + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/protection-rules#get-a-custom-deployment-protection-rule + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/protection-rule-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deployment-protection-rule" + examples: + default: + "$ref": "#/components/examples/deployment-protection-rule" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: protection-rules + delete: + summary: Disable a custom protection rule for an environment + description: |- + Disables a custom deployment protection rule for an environment. + + The authenticated user must have admin or owner permissions to the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/disable-deployment-protection-rule + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deployments/protection-rules#disable-a-custom-protection-rule-for-an-environment + parameters: + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/protection-rule-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deployments + subcategory: protection-rules + "/repos/{owner}/{repo}/environments/{environment_name}/secrets": + get: + summary: List environment secrets + description: |- + Lists all secrets available in an environment without revealing their + encrypted values. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-environment-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#list-environment-secrets + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/actions-secret" + examples: + default: + "$ref": "#/components/examples/actions-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key": + get: + summary: Get an environment public key + description: |- + Get the public key for an environment, which you need to encrypt environment + secrets. You need to encrypt a secret before you can create or update secrets. + + Anyone with read access to the repository can use this endpoint. + + If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-environment-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#get-an-environment-public-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-public-key" + examples: + default: + "$ref": "#/components/examples/actions-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": + get: + summary: Get an environment secret + description: |- + Gets a single environment secret without revealing its encrypted value. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-environment-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#get-an-environment-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-secret" + examples: + default: + "$ref": "#/components/examples/actions-secret" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + put: + summary: Create or update an environment secret + description: |- + Creates or updates an environment secret with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-or-update-environment-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#create-or-update-an-environment-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get an environment public + key](https://docs.github.com/rest/actions/secrets#get-an-environment-public-key) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: ID of the key you used to encrypt the secret. + required: + - encrypted_value + - key_id + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + delete: + summary: Delete an environment secret + description: |- + Deletes a secret in an environment using the secret name. + + Authenticated users must have collaborator access to a repository to create, update, or read secrets. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-environment-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/secrets#delete-an-environment-secret + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Default response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: secrets + "/repos/{owner}/{repo}/environments/{environment_name}/variables": + get: + summary: List environment variables + description: |- + Lists all environment variables. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/list-environment-variables + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#list-environment-variables + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/variables-per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - variables + properties: + total_count: + type: integer + variables: + type: array + items: + "$ref": "#/components/schemas/actions-variable" + examples: + default: + "$ref": "#/components/examples/actions-variables-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + post: + summary: Create an environment variable + description: |- + Create an environment variable that you can reference in a GitHub Actions workflow. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/create-environment-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#create-an-environment-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the variable. + value: + type: string + description: The value of the variable. + required: + - name + - value + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": + get: + summary: Get an environment variable + description: |- + Gets a specific variable in an environment. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/get-environment-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#get-an-environment-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/environment-name" + - "$ref": "#/components/parameters/variable-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/actions-variable" + examples: + default: + "$ref": "#/components/examples/actions-variable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + patch: + summary: Update an environment variable + description: |- + Updates an environment variable that you can reference in a GitHub Actions workflow. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/update-environment-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#update-an-environment-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/variable-name" + - "$ref": "#/components/parameters/environment-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the variable. + value: + type: string + description: The value of the variable. + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + delete: + summary: Delete an environment variable + description: |- + Deletes an environment variable using the variable name. + + Authenticated users must have collaborator access to a repository to create, update, or read variables. + + OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - actions + operationId: actions/delete-environment-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/variables#delete-an-environment-variable + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/variable-name" + - "$ref": "#/components/parameters/environment-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: variables + "/repos/{owner}/{repo}/events": + get: + summary: List repository events + description: |- + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-repo-events + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-repository-events + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + 200-response: + "$ref": "#/components/examples/repo-events-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/repos/{owner}/{repo}/forks": + get: + summary: List forks + description: '' + tags: + - repos + operationId: repos/list-forks + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/forks#list-forks + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: sort + description: The sort order. `stargazers` will sort by star count. + in: query + required: false + schema: + type: string + enum: + - newest + - oldest + - stargazers + - watchers + default: newest + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items-2" + headers: + Link: + "$ref": "#/components/headers/link" + '400': + "$ref": "#/components/responses/bad_request" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: forks + post: + summary: Create a fork + description: |- + Create a fork for the authenticated user. + + > [!NOTE] + > Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + + > [!NOTE] + > Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + tags: + - repos + operationId: repos/create-fork + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/forks#create-a-fork + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + organization: + type: string + description: Optional parameter to specify the organization name + if forking into an organization. + name: + type: string + description: When forking from an existing repository, a new name + for the fork. + default_branch_only: + type: boolean + description: When forking from an existing repository, fork with + only the default branch. + examples: + default: + value: + organization: octocat + name: Hello-World + default_branch_only: true + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/full-repository" + examples: + default: + "$ref": "#/components/examples/full-repository" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: forks + "/repos/{owner}/{repo}/git/blobs": + post: + summary: Create a blob + description: '' + tags: + - git + operationId: git/create-blob + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/blobs#create-a-blob + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + description: The new blob's content. + encoding: + type: string + description: The encoding used for `content`. Currently, `"utf-8"` + and `"base64"` are supported. + default: utf-8 + required: + - content + examples: + default: + value: + content: Content of the blob + encoding: utf-8 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/short-blob" + examples: + default: + "$ref": "#/components/examples/short-blob" + headers: + Location: + example: https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 + schema: + type: string + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + '403': + "$ref": "#/components/responses/forbidden" + '422': + description: Validation failed + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/validation-error" + - "$ref": "#/components/schemas/repository-rule-violation-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: blobs + "/repos/{owner}/{repo}/git/blobs/{file_sha}": + get: + summary: Get a blob + description: |- + The `content` in the response will always be Base64 encoded. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw blob data. + - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + + **Note** This endpoint supports blobs up to 100 megabytes in size. + tags: + - git + operationId: git/get-blob + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/blobs#get-a-blob + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: file_sha + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/blob" + examples: + default: + "$ref": "#/components/examples/blob" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: blobs + "/repos/{owner}/{repo}/git/commits": + post: + summary: Create a commit + description: |- + Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + + **Signature verification object** + + The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + | `signature` | `string` | The signature that was extracted from the commit. | + | `payload` | `string` | The value that was signed. | + | `verified_at` | `string` | The date the signature was verified by GitHub. | + + These are the possible values for `reason` in the `verification` object: + + | Value | Description | + | ----- | ----------- | + | `expired_key` | The key that made the signature is expired. | + | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + | `gpgverify_error` | There was an error communicating with the signature verification service. | + | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + | `unsigned` | The object does not include a signature. | + | `unknown_signature_type` | A non-PGP signature was found in the commit. | + | `no_user` | No user was associated with the `committer` email address in the commit. | + | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + | `unknown_key` | The key that made the signature has not been registered with any user's account. | + | `malformed_signature` | There was an error parsing the signature. | + | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + | `valid` | None of the above errors applied, so the signature is considered to be verified. | + tags: + - git + operationId: git/create-commit + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/commits#create-a-commit + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: The commit message + tree: + type: string + description: The SHA of the tree object this commit points to + parents: + type: array + description: The full SHAs of the commits that were the parents + of this commit. If omitted or empty, the commit will be written + as a root commit. For a single parent, an array of one SHA should + be provided; for a merge commit, an array of more than one should + be provided. + items: + type: string + author: + type: object + description: Information about the author of the commit. By default, + the `author` will be the authenticated user and the current date. + See the `author` and `committer` object below for details. + properties: + name: + type: string + description: The name of the author (or committer) of the commit + email: + type: string + description: The email of the author (or committer) of the commit + date: + type: string + format: date-time + description: 'Indicates when this commit was authored (or committed). + This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`.' + required: + - name + - email + committer: + type: object + description: Information about the person who is making the commit. + By default, `committer` will use the information set in `author`. + See the `author` and `committer` object below for details. + properties: + name: + type: string + description: The name of the author (or committer) of the commit + email: + type: string + description: The email of the author (or committer) of the commit + date: + type: string + format: date-time + description: 'Indicates when this commit was authored (or committed). + This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`.' + signature: + type: string + description: The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) + of the commit. GitHub adds the signature to the `gpgsig` header + of the created commit. For a commit signature to be verifiable + by Git or GitHub, it must be an ASCII-armored detached PGP signature + over the string commit as it would be written to the object database. + To pass a `signature` parameter, you need to first manually create + a valid PGP signature, which can be complicated. You may find + it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) + to create signed commits. + required: + - message + - tree + examples: + default: + value: + message: my commit message + author: + name: Mona Octocat + email: octocat@github.com + date: '2008-07-09T16:13:30+12:00' + parents: + - 7d1b31e74ee336d15cbd21741bc88a537ed063a0 + tree: 827efc6d56897b048c772eb4087f854f46256132 + signature: | + -----BEGIN PGP SIGNATURE----- + + iQIzBAABAQAdFiEESn/54jMNIrGSE6Tp6cQjvhfv7nAFAlnT71cACgkQ6cQjvhfv + 7nCWwA//XVqBKWO0zF+bZl6pggvky3Oc2j1pNFuRWZ29LXpNuD5WUGXGG209B0hI + DkmcGk19ZKUTnEUJV2Xd0R7AW01S/YSub7OYcgBkI7qUE13FVHN5ln1KvH2all2n + 2+JCV1HcJLEoTjqIFZSSu/sMdhkLQ9/NsmMAzpf/iIM0nQOyU4YRex9eD1bYj6nA + OQPIDdAuaTQj1gFPHYLzM4zJnCqGdRlg0sOM/zC5apBNzIwlgREatOYQSCfCKV7k + nrU34X8b9BzQaUx48Qa+Dmfn5KQ8dl27RNeWAqlkuWyv3pUauH9UeYW+KyuJeMkU + +NyHgAsWFaCFl23kCHThbLStMZOYEnGagrd0hnm1TPS4GJkV4wfYMwnI4KuSlHKB + jHl3Js9vNzEUQipQJbgCgTiWvRJoK3ENwBTMVkKHaqT4x9U4Jk/XZB6Q8MA09ezJ + 3QgiTjTAGcum9E9QiJqMYdWQPWkaBIRRz5cET6HPB48YNXAAUsfmuYsGrnVLYbG+ + UpC6I97VybYHTy2O9XSGoaLeMI9CsFn38ycAxxbWagk5mhclNTP5mezIq6wKSwmr + X11FW3n1J23fWZn5HJMBsRnUCgzqzX3871IqLYHqRJ/bpZ4h20RhTyPj5c/z7QXp + eSakNQMfbbMcljkha+ZMuVQX1K9aRlVqbmv3ZMWh+OijLYVU2bc= + =5Io4 + -----END PGP SIGNATURE----- + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-commit" + examples: + default: + "$ref": "#/components/examples/git-commit" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: commits + "/repos/{owner}/{repo}/git/commits/{commit_sha}": + get: + summary: Get a commit object + description: |- + Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + + To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + + **Signature verification object** + + The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + | `signature` | `string` | The signature that was extracted from the commit. | + | `payload` | `string` | The value that was signed. | + | `verified_at` | `string` | The date the signature was verified by GitHub. | + + These are the possible values for `reason` in the `verification` object: + + | Value | Description | + | ----- | ----------- | + | `expired_key` | The key that made the signature is expired. | + | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + | `gpgverify_error` | There was an error communicating with the signature verification service. | + | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + | `unsigned` | The object does not include a signature. | + | `unknown_signature_type` | A non-PGP signature was found in the commit. | + | `no_user` | No user was associated with the `committer` email address in the commit. | + | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + | `unknown_key` | The key that made the signature has not been registered with any user's account. | + | `malformed_signature` | There was an error parsing the signature. | + | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + | `valid` | None of the above errors applied, so the signature is considered to be verified. | + tags: + - git + operationId: git/get-commit + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/commits#get-a-commit-object + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/commit-sha" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-commit" + examples: + default: + "$ref": "#/components/examples/git-commit-2" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: commits + "/repos/{owner}/{repo}/git/matching-refs/{ref}": + get: + summary: List matching references + description: |- + Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + + When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + + > [!NOTE] + > You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + + If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + tags: + - git + operationId: git/list-matching-refs + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/refs#list-matching-references + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/git-ref-only" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/git-ref" + examples: + default: + "$ref": "#/components/examples/git-ref-items" + headers: + Link: + "$ref": "#/components/headers/link" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: refs + "/repos/{owner}/{repo}/git/ref/{ref}": + get: + summary: Get a reference + description: |- + Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + + > [!NOTE] + > You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + tags: + - git + operationId: git/get-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/refs#get-a-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/git-ref-only" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-ref" + examples: + default: + "$ref": "#/components/examples/git-ref" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: refs + "/repos/{owner}/{repo}/git/refs": + post: + summary: Create a reference + description: Creates a reference for your repository. You are unable to create + new references for empty repositories, even if the commit SHA-1 hash used + exists. Empty repositories are repositories without branches. + tags: + - git + operationId: git/create-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/refs#create-a-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + ref: + type: string + description: 'The name of the fully qualified reference (ie: `refs/heads/master`). + If it doesn''t start with ''refs'' and have at least two slashes, + it will be rejected.' + sha: + type: string + description: The SHA1 value for this reference. + required: + - ref + - sha + examples: + default: + value: + ref: refs/heads/featureA + sha: aa218f56b14c9653891f9e74264a383fa43fefbd + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-ref" + examples: + default: + "$ref": "#/components/examples/git-ref" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: refs + "/repos/{owner}/{repo}/git/refs/{ref}": + patch: + summary: Update a reference + description: Updates the provided reference to point to a new SHA. For more + information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" + in the Git documentation. + tags: + - git + operationId: git/update-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/refs#update-a-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/git-ref-only" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sha: + type: string + description: The SHA1 value to set this reference to + force: + type: boolean + description: Indicates whether to force the update or to make sure + the update is a fast-forward update. Leaving this out or setting + it to `false` will make sure you're not overwriting work. + default: false + required: + - sha + examples: + default: + value: + sha: aa218f56b14c9653891f9e74264a383fa43fefbd + force: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-ref" + examples: + default: + "$ref": "#/components/examples/git-ref" + '422': + "$ref": "#/components/responses/validation_failed" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: refs + delete: + summary: Delete a reference + description: Deletes the provided reference. + tags: + - git + operationId: git/delete-ref + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/refs#delete-a-reference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/git-ref-only" + responses: + '204': + description: Response + '422': + description: Validation failed, an attempt was made to delete the default + branch, or the endpoint has been spammed. + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: refs + "/repos/{owner}/{repo}/git/tags": + post: + summary: Create a tag object + description: |- + Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + + **Signature verification object** + + The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + | `signature` | `string` | The signature that was extracted from the commit. | + | `payload` | `string` | The value that was signed. | + | `verified_at` | `string` | The date the signature was verified by GitHub. | + + These are the possible values for `reason` in the `verification` object: + + | Value | Description | + | ----- | ----------- | + | `expired_key` | The key that made the signature is expired. | + | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + | `gpgverify_error` | There was an error communicating with the signature verification service. | + | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + | `unsigned` | The object does not include a signature. | + | `unknown_signature_type` | A non-PGP signature was found in the commit. | + | `no_user` | No user was associated with the `committer` email address in the commit. | + | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + | `unknown_key` | The key that made the signature has not been registered with any user's account. | + | `malformed_signature` | There was an error parsing the signature. | + | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + | `valid` | None of the above errors applied, so the signature is considered to be verified. | + tags: + - git + operationId: git/create-tag + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/tags#create-a-tag-object + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + tag: + type: string + description: The tag's name. This is typically a version (e.g., + "v0.0.1"). + message: + type: string + description: The tag message. + object: + type: string + description: The SHA of the git object this is tagging. + type: + type: string + description: The type of the object we're tagging. Normally this + is a `commit` but it can also be a `tree` or a `blob`. + enum: + - commit + - tree + - blob + tagger: + type: object + description: An object with information about the individual creating + the tag. + properties: + name: + type: string + description: The name of the author of the tag + email: + type: string + description: The email of the author of the tag + date: + type: string + format: date-time + description: 'When this object was tagged. This is a timestamp + in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: + `YYYY-MM-DDTHH:MM:SSZ`.' + required: + - name + - email + required: + - tag + - message + - object + - type + examples: + default: + value: + tag: v0.0.1 + message: initial version + object: c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c + type: commit + tagger: + name: Monalisa Octocat + email: octocat@github.com + date: '2011-06-17T14:53:35-07:00' + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-tag" + examples: + default: + "$ref": "#/components/examples/git-tag" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: tags + "/repos/{owner}/{repo}/git/tags/{tag_sha}": + get: + summary: Get a tag + description: |- + **Signature verification object** + + The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + | `signature` | `string` | The signature that was extracted from the commit. | + | `payload` | `string` | The value that was signed. | + | `verified_at` | `string` | The date the signature was verified by GitHub. | + + These are the possible values for `reason` in the `verification` object: + + | Value | Description | + | ----- | ----------- | + | `expired_key` | The key that made the signature is expired. | + | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + | `gpgverify_error` | There was an error communicating with the signature verification service. | + | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + | `unsigned` | The object does not include a signature. | + | `unknown_signature_type` | A non-PGP signature was found in the commit. | + | `no_user` | No user was associated with the `committer` email address in the commit. | + | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + | `unknown_key` | The key that made the signature has not been registered with any user's account. | + | `malformed_signature` | There was an error parsing the signature. | + | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + | `valid` | None of the above errors applied, so the signature is considered to be verified. | + tags: + - git + operationId: git/get-tag + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/tags#get-a-tag + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: tag_sha + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-tag" + examples: + default: + "$ref": "#/components/examples/git-tag" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: tags + "/repos/{owner}/{repo}/git/trees": + post: + summary: Create a tree + description: |- + The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + + If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + + Returns an error if you try to delete a file that does not exist. + tags: + - git + operationId: git/create-tree + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/trees#create-a-tree + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + tree: + type: array + description: Objects (of `path`, `mode`, `type`, and `sha`) specifying + a tree structure. + items: + type: object + properties: + path: + type: string + description: The file referenced in the tree. + mode: + type: string + description: The file mode; one of `100644` for file (blob), + `100755` for executable (blob), `040000` for subdirectory + (tree), `160000` for submodule (commit), or `120000` for + a blob that specifies the path of a symlink. + enum: + - '100644' + - '100755' + - '040000' + - '160000' + - '120000' + type: + type: string + description: Either `blob`, `tree`, or `commit`. + enum: + - blob + - tree + - commit + sha: + type: string + description: "The SHA1 checksum ID of the object in the tree. + Also called `tree.sha`. If the value is `null` then the + file will be deleted. \n \n**Note:** Use either `tree.sha` + or `content` to specify the contents of the entry. Using + both `tree.sha` and `content` will return an error." + nullable: true + content: + type: string + description: "The content you want this file to have. GitHub + will write this blob out and use that SHA for this entry. + Use either this, or `tree.sha`. \n \n**Note:** Use either + `tree.sha` or `content` to specify the contents of the entry. + Using both `tree.sha` and `content` will return an error." + base_tree: + type: string + description: |- + The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on. + If not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit. + required: + - tree + examples: + default: + value: + base_tree: 9fb037999f264ba9a7fc6274d15fa3ae2ab98312 + tree: + - path: file.rb + mode: '100644' + type: blob + sha: 44b4fc6d56897b048c772eb4087f854f46256132 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-tree" + examples: + default: + "$ref": "#/components/examples/git-tree" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7 + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: trees + "/repos/{owner}/{repo}/git/trees/{tree_sha}": + get: + summary: Get a tree + description: |- + Returns a single tree using the SHA1 value or ref name for that tree. + + If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + + > [!NOTE] + > The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + tags: + - git + operationId: git/get-tree + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/git/trees#get-a-tree + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: tree_sha + description: The SHA1 value or ref (branch or tag) name of the tree. + in: path + required: true + schema: + type: string + x-multi-segment: true + - name: recursive + description: 'Setting this parameter to any value returns the objects or subtrees + referenced by the tree specified in `:tree_sha`. For example, setting `recursive` + to any of the following will enable returning objects or subtrees: `0`, + `1`, `"true"`, and `"false"`. Omit this parameter to prevent recursively + returning objects or subtrees.' + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/git-tree" + examples: + default-response: + "$ref": "#/components/examples/git-tree-default-response" + response-recursively-retrieving-a-tree: + "$ref": "#/components/examples/git-tree-response-recursively-retrieving-a-tree" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: git + subcategory: trees + "/repos/{owner}/{repo}/hooks": + get: + summary: List repository webhooks + description: Lists webhooks for a repository. `last response` may return null + if there have not been any deliveries within 30 days. + tags: + - repos + operationId: repos/list-webhooks + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#list-repository-webhooks + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/hook" + examples: + default: + "$ref": "#/components/examples/hook-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + post: + summary: Create a repository webhook + description: |- + Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + share the same `config` as long as those webhooks do not have any `events` that overlap. + tags: + - repos + operationId: repos/create-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#create-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + name: + type: string + description: 'Use `web` to create a webhook. Default: `web`. This + parameter only accepts the value `web`.' + config: + type: object + description: Key/value pairs to provide settings for this webhook. + properties: + url: + "$ref": "#/components/schemas/webhook-config-url" + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + events: + type: array + description: Determines what [events](https://docs.github.com/webhooks/event-payloads) + the hook is triggered for. + default: + - push + items: + type: string + active: + type: boolean + description: Determines if notifications are sent when the webhook + is triggered. Set to `true` to send notifications. + default: true + additionalProperties: false + examples: + default: + value: + name: web + active: true + events: + - push + - pull_request + config: + url: https://example.com/webhook + content_type: json + insecure_ssl: '0' + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/hook" + examples: + default: + "$ref": "#/components/examples/hook" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/hooks/12345678 + schema: + type: string + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/hooks/{hook_id}": + get: + summary: Get a repository webhook + description: Returns a webhook configured in a repository. To get only the webhook + `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + tags: + - repos + operationId: repos/get-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#get-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/hook" + examples: + default: + "$ref": "#/components/examples/hook" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + patch: + summary: Update a repository webhook + description: Updates a webhook configured in a repository. If you previously + had a `secret` set, you must provide the same `secret` or set a new `secret` + or the secret will be removed. If you are only updating individual webhook + `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + tags: + - repos + operationId: repos/update-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#update-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + config: + "$ref": "#/components/schemas/webhook-config" + events: + type: array + description: Determines what [events](https://docs.github.com/webhooks/event-payloads) + the hook is triggered for. This replaces the entire array of events. + default: + - push + items: + type: string + add_events: + type: array + description: Determines a list of events to be added to the list + of events that the Hook triggers for. + items: + type: string + remove_events: + type: array + description: Determines a list of events to be removed from the + list of events that the Hook triggers for. + items: + type: string + active: + type: boolean + description: Determines if notifications are sent when the webhook + is triggered. Set to `true` to send notifications. + default: true + examples: + default: + value: + active: true + add_events: + - pull_request + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/hook" + examples: + default: + "$ref": "#/components/examples/hook" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + delete: + summary: Delete a repository webhook + description: |- + Delete a webhook for an organization. + + The authenticated user must be a repository owner, or have admin access in the repository, to delete the webhook. + tags: + - repos + operationId: repos/delete-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#delete-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/hooks/{hook_id}/config": + get: + summary: Get a webhook configuration for a repository + description: |- + Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + + OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/get-webhook-config-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#get-a-webhook-configuration-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-config" + examples: + default: + "$ref": "#/components/examples/webhook-config" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + patch: + summary: Update a webhook configuration for a repository + description: |- + Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + + OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/update-webhook-config-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#update-a-webhook-configuration-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + url: + "$ref": "#/components/schemas/webhook-config-url" + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + examples: + default: + summary: Example of updating content type and URL + value: + content_type: json + url: https://example.com/webhook + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-config" + examples: + default: + "$ref": "#/components/examples/webhook-config" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries": + get: + summary: List deliveries for a repository webhook + description: Returns a list of webhook deliveries for a webhook configured in + a repository. + tags: + - repos + operationId: repos/list-webhook-deliveries + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#list-deliveries-for-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/cursor" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/hook-delivery-item" + examples: + default: + "$ref": "#/components/examples/hook-delivery-items" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": + get: + summary: Get a delivery for a repository webhook + description: Returns a delivery for a webhook configured in a repository. + tags: + - repos + operationId: repos/get-webhook-delivery + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#get-a-delivery-for-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + - "$ref": "#/components/parameters/delivery-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/hook-delivery" + examples: + default: + "$ref": "#/components/examples/hook-delivery" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": + post: + summary: Redeliver a delivery for a repository webhook + description: Redeliver a webhook delivery for a webhook configured in a repository. + tags: + - repos + operationId: repos/redeliver-webhook-delivery + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#redeliver-a-delivery-for-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + - "$ref": "#/components/parameters/delivery-id" + responses: + '202': + "$ref": "#/components/responses/accepted" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": + post: + summary: Ping a repository webhook + description: This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) + to be sent to the hook. + tags: + - repos + operationId: repos/ping-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#ping-a-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": + post: + summary: Test the push repository webhook + description: |- + This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + + > [!NOTE] + > Previously `/repos/:owner/:repo/hooks/:hook_id/test` + tags: + - repos + operationId: repos/test-push-webhook + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/webhooks#test-the-push-repository-webhook + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/hook-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: webhooks + "/repos/{owner}/{repo}/immutable-releases": + get: + summary: Check if immutable releases are enabled for a repository + description: |- + Shows whether immutable releases are enabled or disabled. Also identifies whether immutability is being + enforced by the repository owner. The authenticated user must have admin read access to the repository. + tags: + - repos + operationId: repos/check-immutable-releases + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#check-if-immutable-releases-are-enabled-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response if immutable releases are enabled + content: + application/json: + schema: + "$ref": "#/components/schemas/check-immutable-releases" + examples: + default: + value: + enabled: true + enforced_by_owner: false + '404': + description: Not Found if immutable releases are not enabled for the repository + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + put: + summary: Enable immutable releases + description: Enables immutable releases for a repository. The authenticated + user must have admin access to the repository. + tags: + - repos + operationId: repos/enable-immutable-releases + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#enable-immutable-releases + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + "$ref": "#/components/responses/no_content" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + delete: + summary: Disable immutable releases + description: Disables immutable releases for a repository. The authenticated + user must have admin access to the repository. + tags: + - repos + operationId: repos/disable-immutable-releases + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#disable-immutable-releases + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + "$ref": "#/components/responses/no_content" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/import": + get: + summary: Get an import status + description: |- + View the progress of an import. + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + + **Import status** + + This section includes details about the possible values of the `status` field of the Import Progress response. + + An import that does not have errors will progress through these steps: + + * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * `complete` - the import is complete, and the repository is ready on GitHub. + + If there are problems, you will see one of these in the `status` field: + + * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + + **The project_choices field** + + When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + + **Git LFS related fields** + + This section includes details about Git LFS related fields that may be present in the Import Progress response. + + * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + tags: + - migrations + operationId: migrations/get-import-status + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#get-an-import-status + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/import" + examples: + default: + "$ref": "#/components/examples/import" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + put: + summary: Start an import + description: |- + Start a source import to a GitHub repository using GitHub Importer. + Importing into a GitHub repository with GitHub Actions enabled is not supported and will + return a status `422 Unprocessable Entity` response. + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + tags: + - migrations + operationId: migrations/start-import + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#start-an-import + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + vcs_url: + type: string + description: The URL of the originating repository. + vcs: + type: string + description: The originating VCS type. Without this parameter, the + import job will take additional time to detect the VCS type before + beginning the import. This detection step will be reflected in + the response. + enum: + - subversion + - git + - mercurial + - tfvc + vcs_username: + type: string + description: If authentication is required, the username to provide + to `vcs_url`. + vcs_password: + type: string + description: If authentication is required, the password to provide + to `vcs_url`. + tfvc_project: + type: string + description: For a tfvc import, the name of the project that is + being imported. + required: + - vcs_url + examples: + default: + value: + vcs: subversion + vcs_url: http://svn.mycompany.com/svn/myproject + vcs_username: octocat + vcs_password: secret + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/import" + examples: + default: + "$ref": "#/components/examples/import-2" + headers: + Location: + example: https://api.github.com/repos/spraints/socm/import + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + patch: + summary: Update an import + description: |- + An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + request. If no parameters are provided, the import will be restarted. + + Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + tags: + - migrations + operationId: migrations/update-import + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#update-an-import + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + vcs_username: + type: string + description: The username to provide to the originating repository. + vcs_password: + type: string + description: The password to provide to the originating repository. + vcs: + type: string + description: The type of version control system you are migrating + from. + enum: + - subversion + - tfvc + - git + - mercurial + example: '"git"' + tfvc_project: + type: string + description: For a tfvc import, the name of the project that is + being imported. + example: '"project1"' + nullable: true + examples: + example-1: + summary: Update authentication for an import + value: + vcs_username: octocat + vcs_password: secret + example-2: + summary: Updating the project choice + value: + vcs: tfvc + tfvc_project: project1 + human_name: project1 (tfs) + example-3: + summary: Restarting an import + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/import" + examples: + example-1: + "$ref": "#/components/examples/import-example-1" + example-2: + "$ref": "#/components/examples/import-example-2" + example-3: + "$ref": "#/components/examples/import-response" + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + delete: + summary: Cancel an import + description: |- + Stop an import for a repository. + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + tags: + - migrations + operationId: migrations/cancel-import + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#cancel-an-import + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + "/repos/{owner}/{repo}/import/authors": + get: + summary: Get commit authors + description: |- + Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + + This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + tags: + - migrations + operationId: migrations/get-commit-authors + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#get-commit-authors + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/since-user" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/porter-author" + examples: + default: + "$ref": "#/components/examples/porter-author-items" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + "/repos/{owner}/{repo}/import/authors/{author_id}": + patch: + summary: Map a commit author + description: |- + Update an author's identity for the import. Your application can continue updating authors any time before you push + new commits to the repository. + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + tags: + - migrations + operationId: migrations/map-commit-author + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#map-a-commit-author + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: author_id + in: path + required: true + schema: + type: integer + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + email: + type: string + description: The new Git author email. + name: + type: string + description: The new Git author name. + additionalProperties: false + examples: + default: + value: + email: hubot@github.com + name: Hubot the Robot + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/porter-author" + examples: + default: + "$ref": "#/components/examples/porter-author" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + "/repos/{owner}/{repo}/import/large_files": + get: + summary: Get large files + description: |- + List files larger than 100MB found during the import + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + tags: + - migrations + operationId: migrations/get-large-files + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#get-large-files + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/porter-large-file" + examples: + default: + "$ref": "#/components/examples/porter-large-file-items" + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + "/repos/{owner}/{repo}/import/lfs": + patch: + summary: Update Git LFS preference + description: |- + You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + is powered by [Git LFS](https://git-lfs.com). + + You can learn more about our LFS feature and working with large files [on our help + site](https://docs.github.com/repositories/working-with-files/managing-large-files). + + > [!WARNING] + > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + tags: + - migrations + operationId: migrations/set-lfs-preference + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + use_lfs: + type: string + description: Whether to store large files during the import. `opt_in` + means large files will be stored using Git LFS. `opt_out` means + large files will be removed during the import. + enum: + - opt_in + - opt_out + required: + - use_lfs + examples: + default: + value: + use_lfs: opt_in + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/import" + examples: + default: + "$ref": "#/components/examples/import" + '422': + "$ref": "#/components/responses/validation_failed" + '503': + "$ref": "#/components/responses/porter_maintenance" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: migrations + subcategory: source-imports + deprecationDate: '2023-10-12' + removalDate: '2024-04-12' + deprecated: true + "/repos/{owner}/{repo}/installation": + get: + summary: Get a repository installation for the authenticated app + description: |- + Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/get-repo-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/installation" + examples: + default: + "$ref": "#/components/examples/installation" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + "/repos/{owner}/{repo}/interaction-limits": + get: + summary: Get interaction restrictions for a repository + description: Shows which type of GitHub user can interact with this repository + and when the restriction expires. If there are no restrictions, you will see + an empty response. + tags: + - interactions + operationId: interactions/get-restrictions-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#get-interaction-restrictions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + anyOf: + - "$ref": "#/components/schemas/interaction-limit-response" + - type: object + properties: {} + additionalProperties: false + examples: + default: + "$ref": "#/components/examples/interaction-limit-2" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + put: + summary: Set interaction restrictions for a repository + description: Temporarily restricts interactions to a certain type of GitHub + user within the given repository. You must have owner or admin access to set + these restrictions. If an interaction limit is set for the user or organization + that owns this repository, you will receive a `409 Conflict` response and + will not be able to use this endpoint to change the interaction limit for + a single repository. + tags: + - interactions + operationId: interactions/set-restrictions-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#set-interaction-restrictions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/interaction-limit" + examples: + default: + summary: Example request body + value: + limit: collaborators_only + expiry: one_day + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/interaction-limit-response" + examples: + default: + "$ref": "#/components/examples/interaction-limit-2" + '409': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + delete: + summary: Remove interaction restrictions for a repository + description: Removes all interaction restrictions from the given repository. + You must have owner or admin access to remove restrictions. If the interaction + limit is set for the user or organization that owns this repository, you will + receive a `409 Conflict` response and will not be able to use this endpoint + to change the interaction limit for a single repository. + tags: + - interactions + operationId: interactions/remove-restrictions-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#remove-interaction-restrictions-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + '409': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + "/repos/{owner}/{repo}/invitations": + get: + summary: List repository invitations + description: When authenticating as a user with admin rights to a repository, + this endpoint will list all currently open repository invitations. + tags: + - repos + operationId: repos/list-invitations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/invitations#list-repository-invitations + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository-invitation" + examples: + default: + "$ref": "#/components/examples/repository-invitation-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: invitations + "/repos/{owner}/{repo}/invitations/{invitation_id}": + patch: + summary: Update a repository invitation + description: '' + tags: + - repos + operationId: repos/update-invitation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/invitations#update-a-repository-invitation + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/invitation-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + permissions: + type: string + description: The permissions that the associated user will have + on the repository. Valid values are `read`, `write`, `maintain`, + `triage`, and `admin`. + enum: + - read + - write + - maintain + - triage + - admin + examples: + default: + summary: Example request body + value: + permissions: write + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-invitation" + examples: + default: + "$ref": "#/components/examples/repository-invitation" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: invitations + delete: + summary: Delete a repository invitation + description: '' + tags: + - repos + operationId: repos/delete-invitation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/invitations#delete-a-repository-invitation + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/invitation-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: collaborators + subcategory: invitations + "/repos/{owner}/{repo}/issues": + get: + summary: List repository issues + description: |- + List issues in a repository. Only open issues will be listed. + + > [!NOTE] + > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#list-repository-issues + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: milestone + description: If an `integer` is passed, it should refer to a milestone by + its `number` field. If the string `*` is passed, issues with any milestone + are accepted. If the string `none` is passed, issues without milestones + are returned. + in: query + required: false + schema: + type: string + - name: state + description: Indicates the state of the issues to return. + in: query + required: false + schema: + type: string + enum: + - open + - closed + - all + default: open + - name: assignee + description: Can be the name of a user. Pass in `none` for issues with no + assigned user, and `*` for issues assigned to any user. + in: query + required: false + schema: + type: string + - name: type + description: Can be the name of an issue type. If the string `*` is passed, + issues with any type are accepted. If the string `none` is passed, issues + without type are returned. + in: query + required: false + schema: + type: string + - name: creator + description: The user that created the issue. + in: query + required: false + schema: + type: string + - name: mentioned + description: A user that's mentioned in the issue. + in: query + required: false + schema: + type: string + - "$ref": "#/components/parameters/labels" + - name: sort + description: What to sort results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - comments + default: created + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue-items" + headers: + Link: + "$ref": "#/components/headers/link" + '301': + "$ref": "#/components/responses/moved_permanently" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + post: + summary: Create an issue + description: |- + Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/create + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#create-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + oneOf: + - type: string + - type: integer + description: The title of the issue. + body: + type: string + description: The contents of the issue. + assignee: + type: string + description: 'Login for the user that this issue should be assigned + to. _NOTE: Only users with push access can set the assignee for + new issues. The assignee is silently dropped otherwise. **This + field is closing down.**_' + nullable: true + milestone: + oneOf: + - type: string + - type: integer + description: 'The `number` of the milestone to associate this + issue with. _NOTE: Only users with push access can set the milestone + for new issues. The milestone is silently dropped otherwise._' + nullable: true + labels: + type: array + description: 'Labels to associate with this issue. _NOTE: Only users + with push access can set labels for new issues. Labels are silently + dropped otherwise._' + items: + oneOf: + - type: string + - type: object + properties: + id: + type: integer + name: + type: string + description: + type: string + nullable: true + color: + type: string + nullable: true + assignees: + type: array + description: 'Logins for Users to assign to this issue. _NOTE: Only + users with push access can set assignees for new issues. Assignees + are silently dropped otherwise._' + items: + type: string + type: + type: string + description: 'The name of the issue type to associate with this + issue. _NOTE: Only users with push access can set the type for + new issues. The type is silently dropped otherwise._' + nullable: true + example: Epic + required: + - title + examples: + default: + value: + title: Found a bug + body: I'm having a problem with this. + assignees: + - octocat + milestone: 1 + labels: + - bug + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/issues/1347 + schema: + type: string + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + '503': + "$ref": "#/components/responses/service_unavailable" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + "/repos/{owner}/{repo}/issues/comments": + get: + summary: List issue comments for a repository + description: |- + You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + + By default, issue comments are ordered by ascending ID. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-comments-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/sort" + - name: direction + description: Either `asc` or `desc`. Ignored without the `sort` parameter. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue-comment" + examples: + default: + "$ref": "#/components/examples/issue-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: comments + "/repos/{owner}/{repo}/issues/comments/{comment_id}": + get: + summary: Get an issue comment + description: |- + You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/get-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/comments#get-an-issue-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue-comment" + examples: + default: + "$ref": "#/components/examples/issue-comment" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: comments + patch: + summary: Update an issue comment + description: |- + You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/update-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/comments#update-an-issue-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The contents of the comment. + required: + - body + examples: + default: + value: + body: Me too + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue-comment" + examples: + default: + "$ref": "#/components/examples/issue-comment" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: comments + delete: + summary: Delete an issue comment + description: You can use the REST API to delete comments on issues and pull + requests. Every pull request is an issue, but not every issue is a pull request. + tags: + - issues + operationId: issues/delete-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/comments#delete-an-issue-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: comments + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": + get: + summary: List reactions for an issue comment + description: List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + tags: + - reactions + operationId: reactions/list-for-issue-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + - name: content + description: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). + Omit this parameter to list all reactions to an issue comment. + in: query + required: false + schema: + type: string + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + post: + summary: Create reaction for an issue comment + description: Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + A response with an HTTP `200` status means that you already added the reaction + type to this issue comment. + tags: + - reactions + operationId: reactions/create-for-issue-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + description: The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) + to add to the issue comment. + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + required: + - content + examples: + default: + value: + content: heart + responses: + '200': + description: Reaction exists + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '201': + description: Reaction created + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": + delete: + summary: Delete an issue comment reaction + description: |- + > [!NOTE] + > You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + + Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + tags: + - reactions + operationId: reactions/delete-for-issue-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#delete-an-issue-comment-reaction + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + - "$ref": "#/components/parameters/reaction-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/issues/events": + get: + summary: List issue events for a repository + description: Lists events for a repository. + tags: + - issues + operationId: issues/list-events-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue-event" + examples: + default: + "$ref": "#/components/examples/issue-event-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: events + "/repos/{owner}/{repo}/issues/events/{event_id}": + get: + summary: Get an issue event + description: Gets a single event by the event id. + tags: + - issues + operationId: issues/get-event + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/events#get-an-issue-event + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: event_id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue-event" + examples: + default: + "$ref": "#/components/examples/issue-event" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: events + "/repos/{owner}/{repo}/issues/{issue_number}": + get: + summary: Get an issue + description: |- + The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + + > [!NOTE] + > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#get-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + patch: + summary: Update an issue + description: |- + Issue owners and users with push access or Triage role can edit an issue. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/update + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#update-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + title: + oneOf: + - type: string + - type: integer + description: The title of the issue. + nullable: true + body: + type: string + description: The contents of the issue. + nullable: true + assignee: + type: string + nullable: true + description: Username to assign to this issue. **This field is closing + down.** + state: + type: string + description: The open or closed state of the issue. + enum: + - open + - closed + state_reason: + type: string + enum: + - completed + - not_planned + - duplicate + - reopened + nullable: true + description: The reason for the state change. Ignored unless `state` + is changed. + example: not_planned + milestone: + oneOf: + - type: string + - type: integer + description: The `number` of the milestone to associate this issue + with or use `null` to remove the current milestone. Only users + with push access can set the milestone for issues. Without push + access to the repository, milestone changes are silently dropped. + nullable: true + labels: + type: array + description: Labels to associate with this issue. Pass one or more + labels to _replace_ the set of labels on this issue. Send an empty + array (`[]`) to clear all labels from the issue. Only users with + push access can set labels for issues. Without push access to + the repository, label changes are silently dropped. + items: + oneOf: + - type: string + - type: object + properties: + id: + type: integer + name: + type: string + description: + type: string + nullable: true + color: + type: string + nullable: true + assignees: + type: array + description: Usernames to assign to this issue. Pass one or more + user logins to _replace_ the set of assignees on this issue. Send + an empty array (`[]`) to clear all assignees from the issue. Only + users with push access can set assignees for new issues. Without + push access to the repository, assignee changes are silently dropped. + items: + type: string + type: + type: string + description: The name of the issue type to associate with this issue + or use `null` to remove the current issue type. Only users with + push access can set the type for issues. Without push access to + the repository, type changes are silently dropped. + nullable: true + example: Epic + examples: + default: + value: + title: Found a bug + body: I'm having a problem with this. + assignees: + - octocat + milestone: 1 + state: open + labels: + - bug + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + '422': + "$ref": "#/components/responses/validation_failed" + '503': + "$ref": "#/components/responses/service_unavailable" + '403': + "$ref": "#/components/responses/forbidden" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": + post: + summary: Add assignees to an issue + description: Adds up to 10 assignees to an issue. Users already assigned to + an issue are not replaced. + tags: + - issues + operationId: issues/add-assignees + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + assignees: + type: array + description: 'Usernames of people to assign this issue to. _NOTE: + Only users with push access can add assignees to an issue. Assignees + are silently ignored otherwise._' + items: + type: string + examples: + default: + value: + assignees: + - hubot + - other_user + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: assignees + delete: + summary: Remove assignees from an issue + description: Removes one or more assignees from an issue. + tags: + - issues + operationId: issues/remove-assignees + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/assignees#remove-assignees-from-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + content: + application/json: + schema: + type: object + properties: + assignees: + type: array + description: 'Usernames of assignees to remove from an issue. _NOTE: + Only users with push access can remove assignees from an issue. + Assignees are silently ignored otherwise._' + items: + type: string + examples: + default: + value: + assignees: + - hubot + - other_user + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: assignees + "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": + get: + summary: Check if a user can be assigned to a issue + description: |- + Checks if a user has permission to be assigned to a specific issue. + + If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + + Otherwise a `404` status code is returned. + tags: + - issues + operationId: issues/check-user-can-be-assigned-to-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - name: assignee + in: path + required: true + schema: + type: string + responses: + '204': + description: Response if `assignee` can be assigned to `issue_number` + '404': + description: Response if `assignee` can not be assigned to `issue_number` + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: assignees + "/repos/{owner}/{repo}/issues/{issue_number}/comments": + get: + summary: List issue comments + description: |- + You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + + Issue comments are ordered by ascending ID. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-comments + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/comments#list-issue-comments + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue-comment" + examples: + default: + "$ref": "#/components/examples/issue-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: comments + post: + summary: Create an issue comment + description: |- + You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + Creating content too quickly using this endpoint may result in secondary rate limiting. + For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/create-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/comments#create-an-issue-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The contents of the comment. + required: + - body + examples: + default: + value: + body: Me too + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue-comment" + examples: + default: + "$ref": "#/components/examples/issue-comment" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/issues/comments/1 + schema: + type: string + '403': + "$ref": "#/components/responses/forbidden" + '410': + "$ref": "#/components/responses/gone" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: comments + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by": + get: + summary: List dependencies an issue is blocked by + description: |- + You can use the REST API to list the dependencies an issue is blocked by. + + This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + + - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-dependencies-blocked-by + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocked-by + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue-items" + headers: + Link: + "$ref": "#/components/headers/link" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-dependencies + post: + summary: Add a dependency an issue is blocked by + description: |- + You can use the REST API to add a 'blocked by' relationship to an issue. + + Creating content too quickly using this endpoint may result in secondary rate limiting. + For more information, see [Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits) + and [Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api). + + This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + + - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/add-blocked-by-dependency + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issue-dependencies#add-a-dependency-an-issue-is-blocked-by + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + issue_id: + type: integer + description: The id of the issue that blocks the current issue + required: + - issue_id + examples: + default: + value: + issue_id: 1 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/issues/1/dependencies/blocked_by + schema: + type: string + '301': + "$ref": "#/components/responses/moved_permanently" + '403': + "$ref": "#/components/responses/forbidden" + '410': + "$ref": "#/components/responses/gone" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-dependencies + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}": + delete: + summary: Remove dependency an issue is blocked by + description: |- + You can use the REST API to remove a dependency that an issue is blocked by. + + Removing content too quickly using this endpoint may result in secondary rate limiting. + For more information, see [Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits) + and [Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api). + + This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass a specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/remove-dependency-blocked-by + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issue-dependencies#remove-dependency-an-issue-is-blocked-by + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - name: issue_id + in: path + description: The id of the blocking issue to remove as a dependency + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + '301': + "$ref": "#/components/responses/moved_permanently" + '400': + "$ref": "#/components/responses/bad_request" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-dependencies + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking": + get: + summary: List dependencies an issue is blocking + description: |- + You can use the REST API to list the dependencies an issue is blocking. + + This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + + - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-dependencies-blocking + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocking + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue-items" + headers: + Link: + "$ref": "#/components/headers/link" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-dependencies + "/repos/{owner}/{repo}/issues/{issue_number}/events": + get: + summary: List issue events + description: Lists all events for an issue. + tags: + - issues + operationId: issues/list-events + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/events#list-issue-events + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue-event-for-issue" + examples: + default: + "$ref": "#/components/examples/issue-event-for-issue-items" + headers: + Link: + "$ref": "#/components/headers/link" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: events + "/repos/{owner}/{repo}/issues/{issue_number}/labels": + get: + summary: List labels for an issue + description: Lists all labels for an issue. + tags: + - issues + operationId: issues/list-labels-on-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label-items" + headers: + Link: + "$ref": "#/components/headers/link" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + post: + summary: Add labels to an issue + description: 'Adds labels to an issue. If you provide an empty array of labels, + all labels are removed from the issue. ' + tags: + - issues + operationId: issues/add-labels + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: false + content: + application/json: + schema: + oneOf: + - type: object + properties: + labels: + type: array + minItems: 1 + description: The names of the labels to add to the issue's existing + labels. You can pass an empty array to remove all labels. Alternatively, + you can pass a single label as a `string` or an `array` of labels + directly, but GitHub recommends passing an object with the `labels` + key. You can also replace all of the labels for an issue. For + more information, see "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." + items: + type: string + - type: array + minItems: 1 + items: + type: string + - type: object + properties: + labels: + type: array + minItems: 1 + items: + type: object + properties: + name: + type: string + required: + - name + - type: array + minItems: 1 + items: + type: object + properties: + name: + type: string + required: + - name + - type: string + examples: + default: + value: + labels: + - bug + - enhancement + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label-items" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + put: + summary: Set labels for an issue + description: Removes any previous labels and sets the new labels for an issue. + tags: + - issues + operationId: issues/set-labels + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#set-labels-for-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: false + content: + application/json: + schema: + oneOf: + - type: object + properties: + labels: + type: array + minItems: 1 + description: The names of the labels to set for the issue. The + labels you set replace any existing labels. You can pass an + empty array to remove all labels. Alternatively, you can pass + a single label as a `string` or an `array` of labels directly, + but GitHub recommends passing an object with the `labels` key. + You can also add labels to the existing labels for an issue. + For more information, see "[Add labels to an issue](https://docs.github.com/rest/issues/labels#add-labels-to-an-issue)." + items: + type: string + - type: array + minItems: 1 + items: + type: string + - type: object + properties: + labels: + type: array + minItems: 1 + items: + type: object + properties: + name: + type: string + required: + - name + - type: array + minItems: 1 + items: + type: object + properties: + name: + type: string + required: + - name + - type: string + examples: + default: + value: + labels: + - bug + - enhancement + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label-items" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + delete: + summary: Remove all labels from an issue + description: Removes all labels from an issue. + tags: + - issues + operationId: issues/remove-all-labels + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + responses: + '204': + description: Response + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": + delete: + summary: Remove a label from an issue + description: Removes the specified label from the issue, and returns the remaining + labels on the issue. This endpoint returns a `404 Not Found` status if the + label does not exist. + tags: + - issues + operationId: issues/remove-label + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - name: name + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label-items-2" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + "/repos/{owner}/{repo}/issues/{issue_number}/lock": + put: + summary: Lock an issue + description: |- + Users with push access can lock an issue or pull request's conversation. + + Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + tags: + - issues + operationId: issues/lock + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#lock-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + lock_reason: + type: string + description: "The reason for locking the issue or pull request conversation. + Lock will fail if you don't use one of these reasons: \n * `off-topic` + \ \n * `too heated` \n * `resolved` \n * `spam`" + enum: + - off-topic + - too heated + - resolved + - spam + examples: + default: + summary: Example of locking an issue as off-topic + value: + lock_reason: off-topic + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '410': + "$ref": "#/components/responses/gone" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + delete: + summary: Unlock an issue + description: Users with push access can unlock an issue's conversation. + tags: + - issues + operationId: issues/unlock + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#unlock-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + "/repos/{owner}/{repo}/issues/{issue_number}/parent": + get: + summary: Get parent issue + description: |- + You can use the REST API to get the parent issue of a sub-issue. + + This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/get-parent + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/sub-issues#get-parent-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + '301': + "$ref": "#/components/responses/moved_permanently" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: sub-issues + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": + get: + summary: List reactions for an issue + description: List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + tags: + - reactions + operationId: reactions/list-for-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - name: content + description: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). + Omit this parameter to list all reactions to an issue. + in: query + required: false + schema: + type: string + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + post: + summary: Create reaction for an issue + description: Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + A response with an HTTP `200` status means that you already added the reaction + type to this issue. + tags: + - reactions + operationId: reactions/create-for-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + description: The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) + to add to the issue. + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + required: + - content + examples: + default: + value: + content: heart + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": + delete: + summary: Delete an issue reaction + description: |- + > [!NOTE] + > You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + + Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + tags: + - reactions + operationId: reactions/delete-for-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/reaction-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/issues/{issue_number}/sub_issue": + delete: + summary: Remove sub-issue + description: |- + You can use the REST API to remove a sub-issue from an issue. + Removing content too quickly using this endpoint may result in secondary rate limiting. + For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass a specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/remove-sub-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/sub-issues#remove-sub-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sub_issue_id: + type: integer + description: The id of the sub-issue to remove + required: + - sub_issue_id + examples: + default: + value: + sub_issue_id: 6 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/issues/1/sub-issue + schema: + type: string + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: sub-issues + "/repos/{owner}/{repo}/issues/{issue_number}/sub_issues": + get: + summary: List sub-issues + description: |- + You can use the REST API to list the sub-issues on an issue. + + This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + + - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-sub-issues + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/sub-issues#list-sub-issues + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: sub-issues + post: + summary: Add sub-issue + description: |- + You can use the REST API to add sub-issues to issues. + + Creating content too quickly using this endpoint may result in secondary rate limiting. + For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/add-sub-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/sub-issues#add-sub-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sub_issue_id: + type: integer + description: The id of the sub-issue to add. The sub-issue must + belong to the same repository owner as the parent issue + replace_parent: + type: boolean + description: Option that, when true, instructs the operation to + replace the sub-issues current parent issue + required: + - sub_issue_id + examples: + default: + value: + sub_issue_id: 1 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/issues/sub-issues/1 + schema: + type: string + '403': + "$ref": "#/components/responses/forbidden" + '410': + "$ref": "#/components/responses/gone" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: sub-issues + "/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority": + patch: + summary: Reprioritize sub-issue + description: You can use the REST API to reprioritize a sub-issue to a different + position in the parent list. + tags: + - issues + operationId: issues/reprioritize-sub-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/sub-issues#reprioritize-sub-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sub_issue_id: + type: integer + description: The id of the sub-issue to reprioritize + after_id: + type: integer + description: The id of the sub-issue to be prioritized after (either + positional argument after OR before should be specified). + before_id: + type: integer + description: The id of the sub-issue to be prioritized before (either + positional argument after OR before should be specified). + required: + - sub_issue_id + examples: + default: + value: + sub_issue_id: 6 + after_id: 5 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: sub-issues + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": + get: + summary: List timeline events for an issue + description: List all timeline events for an issue. + tags: + - issues + operationId: issues/list-events-for-timeline + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/issue-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/timeline-issue-events" + examples: + default: + "$ref": "#/components/examples/timeline-issue-events" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '410': + "$ref": "#/components/responses/gone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: timeline + "/repos/{owner}/{repo}/keys": + get: + summary: List deploy keys + description: '' + tags: + - repos + operationId: repos/list-deploy-keys + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/deploy-key" + examples: + default: + "$ref": "#/components/examples/deploy-key-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deploy-keys + subcategory: deploy-keys + post: + summary: Create a deploy key + description: You can create a read-only deploy key. + tags: + - repos + operationId: repos/create-deploy-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deploy-keys/deploy-keys#create-a-deploy-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: A name for the key. + key: + type: string + description: The contents of the key. + read_only: + type: boolean + description: "If `true`, the key will only be able to read repository + contents. Otherwise, the key will be able to read and write. \n + \ \nDeploy keys with write access can perform the same actions + as an organization member with admin access, or a collaborator + on a personal repository. For more information, see \"[Repository + permission levels for an organization](https://docs.github.com/articles/repository-permission-levels-for-an-organization/)\" + and \"[Permission levels for a user account repository](https://docs.github.com/articles/permission-levels-for-a-user-account-repository/).\"" + required: + - key + examples: + default: + value: + title: octocat@octomac + key: ssh-rsa AAA... + read_only: true + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deploy-key" + examples: + default: + "$ref": "#/components/examples/deploy-key" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/keys/1 + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deploy-keys + subcategory: deploy-keys + "/repos/{owner}/{repo}/keys/{key_id}": + get: + summary: Get a deploy key + description: '' + tags: + - repos + operationId: repos/get-deploy-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/key-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/deploy-key" + examples: + default: + "$ref": "#/components/examples/deploy-key" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deploy-keys + subcategory: deploy-keys + delete: + summary: Delete a deploy key + description: Deploy keys are immutable. If you need to update a key, remove + the key and create a new one instead. + tags: + - repos + operationId: repos/delete-deploy-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/deploy-keys/deploy-keys#delete-a-deploy-key + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/key-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: deploy-keys + subcategory: deploy-keys + "/repos/{owner}/{repo}/labels": + get: + summary: List labels for a repository + description: Lists all labels for a repository. + tags: + - issues + operationId: issues/list-labels-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#list-labels-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + post: + summary: Create a label + description: Creates a label for the specified repository with the given name + and color. The name and color parameters are required. The color must be a + valid [hexadecimal color code](http://www.color-hex.com/). + tags: + - issues + operationId: issues/create-label + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#create-a-label + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the label. Emoji can be added to label + names, using either native emoji or colon-style markup. For example, + typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png + ":strawberry:"). For a full list of available emoji and codes, + see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." + color: + type: string + description: The [hexadecimal color code](http://www.color-hex.com/) + for the label, without the leading `#`. + description: + type: string + description: A short description of the label. Must be 100 characters + or fewer. + required: + - name + examples: + default: + value: + name: bug + description: Something isn't working + color: f29513 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/labels/bug + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + "/repos/{owner}/{repo}/labels/{name}": + get: + summary: Get a label + description: Gets a label using the given name. + tags: + - issues + operationId: issues/get-label + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#get-a-label + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: name + in: path + required: true + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + patch: + summary: Update a label + description: Updates a label using the given label name. + tags: + - issues + operationId: issues/update-label + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#update-a-label + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: name + in: path + required: true + schema: + type: string + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + new_name: + type: string + description: The new name of the label. Emoji can be added to label + names, using either native emoji or colon-style markup. For example, + typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png + ":strawberry:"). For a full list of available emoji and codes, + see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." + color: + type: string + description: The [hexadecimal color code](http://www.color-hex.com/) + for the label, without the leading `#`. + description: + type: string + description: A short description of the label. Must be 100 characters + or fewer. + examples: + default: + value: + new_name: 'bug :bug:' + description: Small bug fix required + color: b01f26 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label-2" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + delete: + summary: Delete a label + description: Deletes a label using the given label name. + tags: + - issues + operationId: issues/delete-label + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#delete-a-label + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: name + in: path + required: true + schema: + type: string + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + "/repos/{owner}/{repo}/languages": + get: + summary: List repository languages + description: Lists languages for the specified repository. The value shown for + each language is the number of bytes of code written in that language. + tags: + - repos + operationId: repos/list-languages + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-repository-languages + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/language" + examples: + default: + "$ref": "#/components/examples/language" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/license": + get: + summary: Get the license for a repository + description: |- + This method returns the contents of the repository's license file, if one is detected. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + tags: + - licenses + operationId: licenses/get-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/licenses/licenses#get-the-license-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/git-ref" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/license-content" + examples: + default: + "$ref": "#/components/examples/license-content" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: licenses + subcategory: licenses + "/repos/{owner}/{repo}/merge-upstream": + post: + summary: Sync a fork branch with the upstream repository + description: Sync a branch of a forked repository to keep it up-to-date with + the upstream repository. + tags: + - repos + operationId: repos/merge-upstream + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + branch: + type: string + description: The name of the branch which should be updated to match + upstream. + required: + - branch + examples: + default: + value: + branch: main + responses: + '200': + description: The branch has been successfully synced with the upstream repository + content: + application/json: + schema: + "$ref": "#/components/schemas/merged-upstream" + examples: + default: + "$ref": "#/components/examples/merged-upstream" + '409': + description: The branch could not be synced because of a merge conflict + '422': + description: The branch could not be synced for some other reason + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branches + "/repos/{owner}/{repo}/merges": + post: + summary: Merge a branch + description: '' + tags: + - repos + operationId: repos/merge + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/branches/branches#merge-a-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + base: + type: string + description: The name of the base branch that the head will be merged + into. + head: + type: string + description: The head to merge. This can be a branch name or a commit + SHA1. + commit_message: + type: string + description: Commit message to use for the merge commit. If omitted, + a default message will be used. + required: + - base + - head + examples: + default: + value: + base: master + head: cool_feature + commit_message: Shipped cool_feature! + responses: + '201': + description: Successful Response (The resulting merge commit) + content: + application/json: + schema: + "$ref": "#/components/schemas/commit" + examples: + default: + "$ref": "#/components/examples/commit" + '204': + description: Response when already merged + '404': + description: Not Found when the base or head does not exist + '409': + description: Conflict when there is a merge conflict + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: branches + subcategory: branches + "/repos/{owner}/{repo}/milestones": + get: + summary: List milestones + description: Lists milestones for a repository. + tags: + - issues + operationId: issues/list-milestones + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/milestones#list-milestones + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: state + description: The state of the milestone. Either `open`, `closed`, or `all`. + in: query + required: false + schema: + type: string + enum: + - open + - closed + - all + default: open + - name: sort + description: What to sort results by. Either `due_on` or `completeness`. + in: query + required: false + schema: + type: string + enum: + - due_on + - completeness + default: due_on + - name: direction + description: The direction of the sort. Either `asc` or `desc`. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: asc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/milestone" + examples: + default: + "$ref": "#/components/examples/milestone-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: milestones + post: + summary: Create a milestone + description: Creates a milestone. + tags: + - issues + operationId: issues/create-milestone + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/milestones#create-a-milestone + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: The title of the milestone. + state: + type: string + description: The state of the milestone. Either `open` or `closed`. + enum: + - open + - closed + default: open + description: + type: string + description: A description of the milestone. + due_on: + type: string + format: date-time + description: 'The milestone due date. This is a timestamp in [ISO + 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.' + required: + - title + examples: + default: + value: + title: v1.0 + state: open + description: Tracking milestone for version 1.0 + due_on: '2012-10-09T23:39:01Z' + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/milestone" + examples: + default: + "$ref": "#/components/examples/milestone" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/milestones/1 + schema: + type: string + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: milestones + "/repos/{owner}/{repo}/milestones/{milestone_number}": + get: + summary: Get a milestone + description: Gets a milestone using the given milestone number. + tags: + - issues + operationId: issues/get-milestone + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/milestones#get-a-milestone + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/milestone-number" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/milestone" + examples: + default: + "$ref": "#/components/examples/milestone" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: milestones + patch: + summary: Update a milestone + description: '' + tags: + - issues + operationId: issues/update-milestone + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/milestones#update-a-milestone + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/milestone-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: The title of the milestone. + state: + type: string + description: The state of the milestone. Either `open` or `closed`. + enum: + - open + - closed + default: open + description: + type: string + description: A description of the milestone. + due_on: + type: string + format: date-time + description: 'The milestone due date. This is a timestamp in [ISO + 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.' + examples: + default: + value: + title: v1.0 + state: open + description: Tracking milestone for version 1.0 + due_on: '2012-10-09T23:39:01Z' + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/milestone" + examples: + default: + "$ref": "#/components/examples/milestone" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: milestones + delete: + summary: Delete a milestone + description: Deletes a milestone using the given milestone number. + tags: + - issues + operationId: issues/delete-milestone + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/milestones#delete-a-milestone + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/milestone-number" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: milestones + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": + get: + summary: List labels for issues in a milestone + description: Lists labels for issues in a milestone. + tags: + - issues + operationId: issues/list-labels-for-milestone + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/milestone-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/label" + examples: + default: + "$ref": "#/components/examples/label-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + "/repos/{owner}/{repo}/notifications": + get: + summary: List repository notifications for the authenticated user + description: Lists all notifications for the current user in the specified repository. + tags: + - activity + operationId: activity/list-repo-notifications-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/all" + - "$ref": "#/components/parameters/participating" + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/before" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/thread" + examples: + default: + "$ref": "#/components/examples/thread-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + put: + summary: Mark repository notifications as read + description: Marks all notifications in a repository as "read" for the current + user. If the number of notifications is too large to complete in one request, + you will receive a `202 Accepted` status and GitHub will run an asynchronous + process to mark notifications as "read." To check whether any "unread" notifications + remain, you can use the [List repository notifications for the authenticated + user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) + endpoint and pass the query parameter `all=false`. + tags: + - activity + operationId: activity/mark-repo-notifications-as-read + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + last_read_at: + type: string + format: date-time + description: 'Describes the last point that notifications were checked. + Anything updated since this time will not be marked as read. If + you omit this parameter, all notifications are marked as read. + This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp.' + examples: + default: + value: + last_read_at: '2019-01-01T00:00:00Z' + responses: + '202': + description: Response + content: + application/json: + schema: + type: object + properties: + message: + type: string + url: + type: string + examples: + default: + value: + message: Unread notifications couldn't be marked in a single request. + Notifications are being marked as read in the background. + '205': + description: Reset Content + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: notifications + "/repos/{owner}/{repo}/pages": + get: + summary: Get a GitHub Pages site + description: |- + Gets information about a GitHub Pages site. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/get-pages + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/page" + examples: + default: + "$ref": "#/components/examples/page" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + post: + summary: Create a GitHub Pages site + description: |- + Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + + The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/create-pages-site + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + description: The source branch and directory used to publish your Pages + site. + nullable: true + properties: + build_type: + type: string + description: The process in which the Page will be built. Possible + values are `"legacy"` and `"workflow"`. + enum: + - legacy + - workflow + source: + type: object + description: The source branch and directory used to publish your + Pages site. + properties: + branch: + type: string + description: The repository branch used to publish your site's + source files. + path: + type: string + description: 'The repository directory that includes the source + files for the Pages site. Allowed paths are `/` or `/docs`. + Default: `/`' + enum: + - "/" + - "/docs" + default: "/" + required: + - branch + anyOf: + - required: + - source + - required: + - build_type + examples: + default: + value: + source: + branch: main + path: "/docs" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/page" + examples: + default: + "$ref": "#/components/examples/page" + '422': + "$ref": "#/components/responses/validation_failed" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + put: + summary: Update information about a GitHub Pages site + description: |- + Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + + The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/update-information-about-pages-site + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + cname: + type: string + description: Specify a custom domain for the repository. Sending + a `null` value will remove the custom domain. For more about custom + domains, see "[Using a custom domain with GitHub Pages](https://docs.github.com/pages/configuring-a-custom-domain-for-your-github-pages-site)." + nullable: true + https_enforced: + type: boolean + description: Specify whether HTTPS should be enforced for the repository. + build_type: + type: string + description: The process by which the GitHub Pages site will be + built. `workflow` means that the site is built by a custom GitHub + Actions workflow. `legacy` means that the site is built by GitHub + when changes are pushed to a specific branch. + enum: + - legacy + - workflow + source: + anyOf: + - type: string + description: Update the source for the repository. Must include + the branch name, and may optionally specify the subdirectory + `/docs`. Possible values are `"gh-pages"`, `"master"`, and `"master + /docs"`. + enum: + - gh-pages + - master + - master /docs + - type: object + description: Update the source for the repository. Must include + the branch name and path. + properties: + branch: + type: string + description: The repository branch used to publish your site's + source files. + path: + type: string + description: The repository directory that includes the source + files for the Pages site. Allowed paths are `/` or `/docs`. + enum: + - "/" + - "/docs" + required: + - branch + - path + anyOf: + - required: + - build_type + - required: + - source + - required: + - cname + - required: + - public + - required: + - https_enforced + examples: + default: + value: + cname: octocatblog.com + source: + branch: main + path: "/" + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed" + '400': + "$ref": "#/components/responses/bad_request" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + delete: + summary: Delete a GitHub Pages site + description: |- + Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + + The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/delete-pages-site + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#delete-a-apiname-pages-site + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/pages/builds": + get: + summary: List GitHub Pages builds + description: |- + Lists builts of a GitHub Pages site. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/list-pages-builds + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#list-apiname-pages-builds + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/page-build" + examples: + default: + "$ref": "#/components/examples/page-build-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + post: + summary: Request a GitHub Pages build + description: |- + You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + + Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + tags: + - repos + operationId: repos/request-pages-build + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#request-a-apiname-pages-build + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/page-build-status" + examples: + default: + "$ref": "#/components/examples/page-build-status" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/pages/builds/latest": + get: + summary: Get latest Pages build + description: |- + Gets information about the single most recent build of a GitHub Pages site. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/get-latest-pages-build + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#get-latest-pages-build + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/page-build" + examples: + default: + "$ref": "#/components/examples/page-build" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/pages/builds/{build_id}": + get: + summary: Get GitHub Pages build + description: |- + Gets information about a GitHub Pages build. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/get-pages-build + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#get-apiname-pages-build + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: build_id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/page-build" + examples: + default: + "$ref": "#/components/examples/page-build" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/pages/deployments": + post: + summary: Create a GitHub Pages deployment + description: |- + Create a GitHub Pages deployment for a repository. + + The authenticated user must have write permission to the repository. + tags: + - repos + operationId: repos/create-pages-deployment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#create-a-github-pages-deployment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + description: The object used to create GitHub Pages deployment + properties: + artifact_id: + type: number + description: The ID of an artifact that contains the .zip or .tar + of static assets to deploy. The artifact belongs to the repository. + Either `artifact_id` or `artifact_url` are required. + artifact_url: + type: string + description: The URL of an artifact that contains the .zip or .tar + of static assets to deploy. The artifact belongs to the repository. + Either `artifact_id` or `artifact_url` are required. + environment: + type: string + description: The target environment for this GitHub Pages deployment. + default: github-pages + pages_build_version: + type: string + description: A unique string that represents the version of the + build for this deployment. + default: GITHUB_SHA + oidc_token: + type: string + description: The OIDC token issued by GitHub Actions certifying + the origin of the deployment. + required: + - pages_build_version + - oidc_token + examples: + default: + value: + artifact_url: https://downloadcontent/ + environment: github-pages + pages_build_version: 4fd754f7e594640989b406850d0bc8f06a121251 + oidc_token: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlV2R1h4SUhlY0JFc1JCdEttemUxUEhfUERiVSIsImtpZCI6IjUyRjE5N0M0ODFERTcwMTEyQzQ0MUI0QTlCMzdCNTNDN0ZDRjBEQjUifQ.eyJqdGkiOiJhMWIwNGNjNy0zNzZiLTQ1N2QtOTMzNS05NTY5YmVjZDExYTIiLCJzdWIiOiJyZXBvOnBhcGVyLXNwYS9taW55aTplbnZpcm9ubWVudDpQcm9kdWN0aW9uIiwiYXVkIjoiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyLXNwYSIsInJlZiI6InJlZnMvaGVhZHMvbWFpbiIsInNoYSI6ImEyODU1MWJmODdiZDk3NTFiMzdiMmM0YjM3M2MxZjU3NjFmYWM2MjYiLCJyZXBvc2l0b3J5IjoicGFwZXItc3BhL21pbnlpIiwicmVwb3NpdG9yeV9vd25lciI6InBhcGVyLXNwYSIsInJ1bl9pZCI6IjE1NDY0NTkzNjQiLCJydW5fbnVtYmVyIjoiMzQiLCJydW5fYXR0ZW1wdCI6IjYiLCJhY3RvciI6IllpTXlzdHkiLCJ3b3JrZmxvdyI6IkNJIiwiaGVhZF9yZWYiOiIiLCJiYXNlX3JlZiI6IiIsImV2ZW50X25hbWUiOiJwdXNoIiwicmVmX3R5cGUiOiJicmFuY2giLCJlbnZpcm9ubWVudCI6IlByb2R1Y3Rpb24iLCJqb2Jfd29ya2Zsb3dfcmVmIjoicGFwZXItc3BhL21pbnlpLy5naXRodWIvd29ya2Zsb3dzL2JsYW5rLnltbEByZWZzL2hlYWRzL21haW4iLCJpc3MiOiJodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwibmJmIjoxNjM5MDAwODU2LCJleHAiOjE2MzkwMDE3NTYsImlhdCI6MTYzOTAwMTQ1Nn0.VP8WictbQECKozE2SgvKb2FqJ9hisWsoMkYRTqfBrQfZTCXi5IcFEdgDMB2X7a99C2DeUuTvHh9RMKXLL2a0zg3-Sd7YrO7a2ll2kNlnvyIypcN6AeIc7BxHsTTnZN9Ud_xmEsTrSRGOEKmzCFkULQ6N4zlVD0sidypmXlMemmWEcv_ZHqhioEI_VMp5vwXQurketWH7qX4oDgG4okyYtPrv5RQHbfQcVo9izaPJ_jnsDd0CBA0QOx9InjPidtIkMYQLyUgJy33HLJy86EFNUnAf8UhBQuQi5mAsEpEzBBuKpG3PDiPtYCHOk64JZkZGd5mR888a5sbHRiaF8hm8YA + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/page-deployment" + examples: + default: + "$ref": "#/components/examples/page-deployment" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": + get: + summary: Get the status of a GitHub Pages deployment + description: |- + Gets the current status of a GitHub Pages deployment. + + The authenticated user must have read permission for the GitHub Pages site. + tags: + - repos + operationId: repos/get-pages-deployment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#get-the-status-of-a-github-pages-deployment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pages-deployment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pages-deployment-status" + examples: + default: + "$ref": "#/components/examples/pages-deployment-status" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": + post: + summary: Cancel a GitHub Pages deployment + description: |- + Cancels a GitHub Pages deployment. + + The authenticated user must have write permissions for the GitHub Pages site. + tags: + - repos + operationId: repos/cancel-pages-deployment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#cancel-a-github-pages-deployment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pages-deployment-id" + responses: + '204': + "$ref": "#/components/responses/no_content" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/pages/health": + get: + summary: Get a DNS health check for GitHub Pages + description: |- + Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + + The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + + The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - repos + operationId: repos/get-pages-health-check + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pages/pages#get-a-dns-health-check-for-github-pages + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pages-health-check" + examples: + default: + "$ref": "#/components/examples/pages-health-check" + '202': + description: Empty response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '400': + description: Custom domains are not available for GitHub Pages + '422': + description: There isn't a CNAME for this page + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pages + subcategory: pages + "/repos/{owner}/{repo}/private-vulnerability-reporting": + get: + summary: Check if private vulnerability reporting is enabled for a repository + description: Returns a boolean indicating whether or not private vulnerability + reporting is enabled for the repository. For more information, see "[Evaluating + the security settings of a repository](https://docs.github.com/code-security/security-advisories/working-with-repository-security-advisories/evaluating-the-security-settings-of-a-repository)". + tags: + - repos + operationId: repos/check-private-vulnerability-reporting + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#check-if-private-vulnerability-reporting-is-enabled-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Private vulnerability reporting status + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether or not private vulnerability reporting is + enabled for the repository. + required: + - enabled + examples: + default: + value: + enabled: true + '422': + "$ref": "#/components/responses/bad_request" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + put: + summary: Enable private vulnerability reporting for a repository + description: Enables private vulnerability reporting for a repository. The authenticated + user must have admin access to the repository. For more information, see "[Privately + reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + tags: + - repos + operationId: repos/enable-private-vulnerability-reporting + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#enable-private-vulnerability-reporting-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + "$ref": "#/components/responses/no_content" + '422': + "$ref": "#/components/responses/bad_request" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + delete: + summary: Disable private vulnerability reporting for a repository + description: Disables private vulnerability reporting for a repository. The + authenticated user must have admin access to the repository. For more information, + see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + tags: + - repos + operationId: repos/disable-private-vulnerability-reporting + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#disable-private-vulnerability-reporting-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + "$ref": "#/components/responses/no_content" + '422': + "$ref": "#/components/responses/bad_request" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/properties/values": + get: + summary: Get all custom property values for a repository + description: |- + Gets all custom property values that are set for a repository. + Users with read access to the repository can use this endpoint. + tags: + - repos + operationId: repos/custom-properties-for-repos-get-repository-values + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/custom-properties#get-all-custom-property-values-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/custom-property-value" + examples: + default: + "$ref": "#/components/examples/custom-property-values" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: custom-properties + patch: + summary: Create or update custom property values for a repository + description: |- + Create new or update existing custom property values for a repository. + Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + + Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + tags: + - repos + operationId: repos/custom-properties-for-repos-create-or-update-repository-values + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/custom-properties#create-or-update-custom-property-values-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + properties: + type: array + description: A list of custom property names and associated values + to apply to the repositories. + items: + "$ref": "#/components/schemas/custom-property-value" + required: + - properties + examples: + default: + "$ref": "#/components/examples/create-or-update-custom-properties-values" + responses: + '204': + description: No Content when custom property values are successfully created + or updated + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: custom-properties + "/repos/{owner}/{repo}/pulls": + get: + summary: List pull requests + description: |- + Lists pull requests in a specified repository. + + Draft pull requests are available in public repositories with GitHub + Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + plans, and in public and private repositories with GitHub Team and GitHub Enterprise + Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + in the GitHub Help documentation. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#list-pull-requests + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: state + description: Either `open`, `closed`, or `all` to filter by state. + in: query + required: false + schema: + type: string + enum: + - open + - closed + - all + default: open + - name: head + description: 'Filter pulls by head user or head organization and branch name + in the format of `user:ref-name` or `organization:ref-name`. For example: + `github:new-script-format` or `octocat:test-branch`.' + in: query + required: false + schema: + type: string + - name: base + description: 'Filter pulls by base branch name. Example: `gh-pages`.' + in: query + required: false + schema: + type: string + - name: sort + description: What to sort results by. `popularity` will sort by the number + of comments. `long-running` will sort by date created and will limit the + results to pull requests that have been open for more than a month and have + had activity within the past month. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - popularity + - long-running + default: created + - name: direction + description: 'The direction of the sort. Default: `desc` when sort is `created` + or sort is not specified, otherwise `asc`.' + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/pull-request-simple" + examples: + default: + "$ref": "#/components/examples/pull-request-simple-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + post: + summary: Create a pull request + description: |- + Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/create + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#create-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: The title of the new pull request. Required unless + `issue` is specified. + head: + type: string + description: 'The name of the branch where your changes are implemented. + For cross-repository pull requests in the same network, namespace + `head` with a user like this: `username:branch`.' + head_repo: + type: string + description: The name of the repository where the changes in the + pull request were made. This field is required for cross-repository + pull requests if both repositories are owned by the same organization. + format: repo.nwo + example: octo-org/octo-repo + base: + type: string + description: The name of the branch you want the changes pulled + into. This should be an existing branch on the current repository. + You cannot submit a pull request to one repository that requests + a merge to a base of another repository. + body: + type: string + description: The contents of the pull request. + maintainer_can_modify: + type: boolean + description: Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) + the pull request. + draft: + type: boolean + description: Indicates whether the pull request is a draft. See + "[Draft Pull Requests](https://docs.github.com/articles/about-pull-requests#draft-pull-requests)" + in the GitHub Help documentation to learn more. + issue: + type: integer + format: int64 + example: 1 + description: An issue in the repository to convert to a pull request. + The issue title, body, and comments will become the title, body, + and comments on the new pull request. Required unless `title` + is specified. + required: + - head + - base + examples: + default: + value: + title: Amazing new feature + body: Please pull these awesome changes in! + head: octocat:new-feature + base: master + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request" + examples: + default: + "$ref": "#/components/examples/pull-request" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + schema: + type: string + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + "/repos/{owner}/{repo}/pulls/comments": + get: + summary: List review comments in a repository + description: |- + Lists review comments for all pull requests in a repository. By default, + review comments are in ascending order by ID. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/list-review-comments-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: sort + in: query + required: false + schema: + type: string + enum: + - created + - updated + - created_at + - name: direction + description: The direction to sort results. Ignored without `sort` parameter. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/pull-request-review-comment" + examples: + default: + "$ref": "#/components/examples/pull-request-review-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: comments + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": + get: + summary: Get a review comment for a pull request + description: |- + Provides details for a specified review comment. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/get-review-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review-comment" + examples: + default: + "$ref": "#/components/examples/pull-request-review-comment-2" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: comments + patch: + summary: Update a review comment for a pull request + description: |- + Edits the content of a specified review comment. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/update-review-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The text of the reply to the review comment. + required: + - body + examples: + default: + value: + body: I like this too! + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review-comment" + examples: + default: + "$ref": "#/components/examples/pull-request-review-comment-2" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: comments + delete: + summary: Delete a review comment for a pull request + description: Deletes a review comment. + tags: + - pulls + operationId: pulls/delete-review-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/comments#delete-a-review-comment-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: comments + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": + get: + summary: List reactions for a pull request review comment + description: List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + tags: + - reactions + operationId: reactions/list-for-pull-request-review-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + - name: content + description: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). + Omit this parameter to list all reactions to a pull request review comment. + in: query + required: false + schema: + type: string + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + post: + summary: Create reaction for a pull request review comment + description: Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + A response with an HTTP `200` status means that you already added the reaction + type to this pull request review comment. + tags: + - reactions + operationId: reactions/create-for-pull-request-review-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + description: The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) + to add to the pull request review comment. + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + required: + - content + examples: + default: + value: + content: heart + responses: + '200': + description: Reaction exists + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '201': + description: Reaction created + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": + delete: + summary: Delete a pull request comment reaction + description: |- + > [!NOTE] + > You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + + Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + tags: + - reactions + operationId: reactions/delete-for-pull-request-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/comment-id" + - "$ref": "#/components/parameters/reaction-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/pulls/{pull_number}": + get: + summary: Get a pull request + description: |- + Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + Lists details of a pull request by providing its number. + + When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + + The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + + The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + + * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + + Pass the appropriate [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types) to fetch diff and patch formats. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + tags: + - pulls + operationId: pulls/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#get-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + responses: + '200': + description: Pass the appropriate [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types) + to fetch diff and patch formats. + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request" + examples: + default: + "$ref": "#/components/examples/pull-request" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '406': + "$ref": "#/components/responses/unacceptable" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + patch: + summary: Update a pull request + description: |- + Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/update + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#update-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: The title of the pull request. + body: + type: string + description: The contents of the pull request. + state: + type: string + description: State of this Pull Request. Either `open` or `closed`. + enum: + - open + - closed + base: + type: string + description: The name of the branch you want your changes pulled + into. This should be an existing branch on the current repository. + You cannot update the base branch on a pull request to point to + another repository. + maintainer_can_modify: + type: boolean + description: Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) + the pull request. + examples: + default: + value: + title: new title + body: updated body + state: open + base: master + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request" + examples: + default: + "$ref": "#/components/examples/pull-request" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + "/repos/{owner}/{repo}/pulls/{pull_number}/codespaces": + post: + summary: Create a codespace from a pull request + description: |- + Creates a codespace owned by the authenticated user for the specified pull request. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/create-with-pr-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-from-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + nullable: true + properties: + location: + description: The requested location for a new codespace. Best efforts + are made to respect this upon creation. Assigned by IP if not + provided. + type: string + geo: + description: The geographic area for this codespace. If not specified, + the value is assigned by IP. This property replaces `location`, + which is closing down. + type: string + enum: + - EuropeWest + - SoutheastAsia + - UsEast + - UsWest + client_ip: + description: IP for location auto-detection when proxying a request + type: string + machine: + description: Machine type to use for this codespace + type: string + devcontainer_path: + description: Path to devcontainer.json config to use for this codespace + type: string + multi_repo_permissions_opt_out: + description: Whether to authorize requested permissions from devcontainer.json + type: boolean + working_directory: + description: Working directory for this codespace + type: string + idle_timeout_minutes: + description: Time in minutes before codespace stops from inactivity + type: integer + display_name: + description: Display name for this codespace + type: string + retention_period_minutes: + description: Duration in minutes after codespace has gone idle in + which it will be deleted. Must be integer minutes between 0 and + 43200 (30 days). + type: integer + examples: + default: + value: + repository_id: 1 + ref: main + responses: + '201': + description: Response when the codespace was successfully created + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '202': + description: Response when the codespace creation partially failed but is + being retried in the background + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": + get: + summary: List review comments on a pull request + description: |- + Lists all review comments for a specified pull request. By default, review comments + are in ascending order by ID. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/list-review-comments + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/sort" + - name: direction + description: The direction to sort results. Ignored without `sort` parameter. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/pull-request-review-comment" + examples: + default: + "$ref": "#/components/examples/pull-request-review-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: comments + post: + summary: Create a review comment for a pull request + description: |- + Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + + If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + + The `position` parameter is closing down. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/create-review-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The text of the review comment. + commit_id: + type: string + description: The SHA of the commit needing a comment. Not using + the latest commit SHA may render your comment outdated if a subsequent + commit modifies the line you specify as the `position`. + path: + type: string + description: The relative path to the file that necessitates a comment. + position: + type: integer + description: '**This parameter is closing down. Use `line` instead**. + The position in the diff where you want to add a review comment. + Note this value is not the same as the line number in the file. + The position value equals the number of lines down from the first + "@@" hunk header in the file you want to add a comment. The line + just below the "@@" line is position 1, the next line is position + 2, and so on. The position in the diff continues to increase through + lines of whitespace and additional hunks until the beginning of + a new file.' + deprecated: true + x-github: + deprecationDate: '2022-11-01' + side: + type: string + description: In a split diff view, the side of the diff that the + pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use + `LEFT` for deletions that appear in red. Use `RIGHT` for additions + that appear in green or unchanged lines that appear in white and + are shown for context. For a multi-line comment, side represents + whether the last line of the comment range is a deletion or addition. + For more information, see "[Diff view options](https://docs.github.com/articles/about-comparing-branches-in-pull-requests#diff-view-options)" + in the GitHub Help documentation. + enum: + - LEFT + - RIGHT + line: + type: integer + description: "**Required unless using `subject_type:file`**. The + line of the blob in the pull request diff that the comment applies + to. For a multi-line comment, the last line of the range that + your comment applies to." + start_line: + type: integer + description: '**Required when using multi-line comments unless using + `in_reply_to`**. The `start_line` is the first line in the pull + request diff that your multi-line comment applies to. To learn + more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" + in the GitHub Help documentation.' + start_side: + type: string + description: '**Required when using multi-line comments unless using + `in_reply_to`**. The `start_side` is the starting side of the + diff that the comment applies to. Can be `LEFT` or `RIGHT`. To + learn more about multi-line comments, see "[Commenting on a pull + request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" + in the GitHub Help documentation. See `side` in this table for + additional context.' + enum: + - LEFT + - RIGHT + - side + in_reply_to: + type: integer + example: 2 + description: The ID of the review comment to reply to. To find the + ID of a review comment with ["List review comments on a pull request"](#list-review-comments-on-a-pull-request). + When specified, all parameters other than `body` in the request + body are ignored. + subject_type: + type: string + description: The level at which the comment is targeted. + enum: + - line + - file + required: + - body + - commit_id + - path + examples: + example-for-a-multi-line-comment: + summary: Example for a multi-line comment + value: + body: Great stuff! + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + path: file1.txt + start_line: 1 + start_side: RIGHT + line: 2 + side: RIGHT + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review-comment" + examples: + example-for-a-multi-line-comment: + "$ref": "#/components/examples/pull-request-review-comment-example-for-a-multi-line-comment" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: comments + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": + post: + summary: Create a reply for a review comment + description: |- + Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/create-reply-for-review-comment + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/comment-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The text of the review comment. + required: + - body + examples: + default: + value: + body: Great stuff! + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review-comment" + examples: + default: + "$ref": "#/components/examples/pull-request-review-comment" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + schema: + type: string + '404': + "$ref": "#/components/responses/not_found" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: false + category: pulls + subcategory: comments + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": + get: + summary: List commits on a pull request + description: |- + Lists a maximum of 250 commits for a pull request. To receive a complete + commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + endpoint. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/list-commits + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/commit" + examples: + default: + "$ref": "#/components/examples/commit-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + "/repos/{owner}/{repo}/pulls/{pull_number}/files": + get: + summary: List pull requests files + description: |- + Lists the files in a specified pull request. + + > [!NOTE] + > Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/list-files + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#list-pull-requests-files + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/diff-entry" + examples: + default: + "$ref": "#/components/examples/diff-entry-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": + get: + summary: Check if a pull request has been merged + description: Checks if a pull request has been merged into the base branch. + The HTTP status of the response indicates whether or not the pull request + has been merged; the response body is empty. + tags: + - pulls + operationId: pulls/check-if-merged + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#check-if-a-pull-request-has-been-merged + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + responses: + '204': + description: Response if pull request has been merged + '404': + description: Not Found if pull request has not been merged + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + put: + summary: Merge a pull request + description: |- + Merges a pull request into the base branch. + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + tags: + - pulls + operationId: pulls/merge + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#merge-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + commit_title: + type: string + description: Title for the automatic commit message. + commit_message: + type: string + description: Extra detail to append to automatic commit message. + sha: + type: string + description: SHA that pull request head must match to allow merge. + merge_method: + type: string + description: The merge method to use. + enum: + - merge + - squash + - rebase + examples: + response-if-merge-was-successful: + value: + commit_title: Expand enum + commit_message: Add a new value to the merge_method enum + responses: + '200': + description: if merge was successful + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-merge-result" + examples: + response-if-merge-was-successful: + "$ref": "#/components/examples/pull-request-merge-result-response-if-merge-was-successful" + '405': + description: Method Not Allowed if merge cannot be performed + content: + application/json: + schema: + type: object + properties: + message: + type: string + documentation_url: + type: string + examples: + response-if-merge-cannot-be-performed: + value: + message: Pull Request is not mergeable + '409': + description: Conflict if sha was provided and pull request head did not + match + content: + application/json: + schema: + type: object + properties: + message: + type: string + documentation_url: + type: string + examples: + response-if-sha-was-provided-and-pull-request-head-did-not-match: + value: + message: Head branch was modified. Review and try the merge again. + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": + get: + summary: Get all requested reviewers for a pull request + description: Gets the users or teams whose review is requested for a pull request. + Once a requested reviewer submits a review, they are no longer considered + a requested reviewer. Their review will instead be returned by the [List reviews + for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) + operation. + tags: + - pulls + operationId: pulls/list-requested-reviewers + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review-request" + examples: + default: + "$ref": "#/components/examples/simple-pull-request-review-request" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: review-requests + post: + summary: Request reviewers for a pull request + description: |- + Requests reviews for a pull request from a given set of users and/or teams. + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + tags: + - pulls + operationId: pulls/request-reviewers + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/review-requests#request-reviewers-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + reviewers: + type: array + description: An array of user `login`s that will be requested. + items: + type: string + team_reviewers: + type: array + description: An array of team `slug`s that will be requested. + items: + type: string + anyOf: + - required: + - reviewers + - required: + - team_reviewers + examples: + default: + value: + reviewers: + - octocat + - hubot + - other_user + team_reviewers: + - justice-league + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-simple" + examples: + default: + "$ref": "#/components/examples/pull-request-review-request" + '422': + description: Unprocessable Entity if user is not a collaborator + '403': + "$ref": "#/components/responses/forbidden" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: review-requests + delete: + summary: Remove requested reviewers from a pull request + description: Removes review requests from a pull request for a given set of + users and/or teams. + tags: + - pulls + operationId: pulls/remove-requested-reviewers + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + reviewers: + type: array + description: An array of user `login`s that will be removed. + items: + type: string + team_reviewers: + type: array + description: An array of team `slug`s that will be removed. + items: + type: string + required: + - reviewers + examples: + default: + value: + reviewers: + - octocat + - hubot + - other_user + team_reviewers: + - justice-league + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-simple" + examples: + default: + "$ref": "#/components/examples/pull-request-simple" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: review-requests + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": + get: + summary: List reviews for a pull request + description: |- + Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/list-reviews + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: The list of reviews returns in chronological order. + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/pull-request-review" + examples: + default: + "$ref": "#/components/examples/pull-request-review-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + post: + summary: Create a review for a pull request + description: |- + Creates a review on a specified pull request. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + + Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + + > [!NOTE] + > To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + + The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/create-review + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + commit_id: + type: string + description: The SHA of the commit that needs a review. Not using + the latest commit SHA may render your review comment outdated + if a subsequent commit modifies the line you specify as the `position`. + Defaults to the most recent commit in the pull request when you + do not specify a value. + body: + type: string + description: "**Required** when using `REQUEST_CHANGES` or `COMMENT` + for the `event` parameter. The body text of the pull request review." + event: + type: string + description: 'The review action you want to perform. The review + actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By + leaving this blank, you set the review action state to `PENDING`, + which means you will need to [submit the pull request review](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request) + when you are ready.' + enum: + - APPROVE + - REQUEST_CHANGES + - COMMENT + comments: + type: array + description: Use the following table to specify the location, destination, + and contents of the draft review comment. + items: + type: object + properties: + path: + type: string + description: The relative path to the file that necessitates + a review comment. + position: + type: integer + description: The position in the diff where you want to add + a review comment. Note this value is not the same as the + line number in the file. The `position` value equals the + number of lines down from the first "@@" hunk header in + the file you want to add a comment. The line just below + the "@@" line is position 1, the next line is position 2, + and so on. The position in the diff continues to increase + through lines of whitespace and additional hunks until the + beginning of a new file. + body: + type: string + description: Text of the review comment. + line: + type: integer + example: 28 + side: + type: string + example: RIGHT + start_line: + type: integer + example: 26 + start_side: + type: string + example: LEFT + required: + - path + - body + examples: + default: + value: + commit_id: ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091 + body: This is close to perfect! Please address the suggested inline + change. + event: REQUEST_CHANGES + comments: + - path: file.md + position: 6 + body: Please add more information here, and fix this typo. + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review" + examples: + default: + "$ref": "#/components/examples/pull-request-review" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": + get: + summary: Get a review for a pull request + description: |- + Retrieves a pull request review by its ID. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/get-review + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/review-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review" + examples: + default: + "$ref": "#/components/examples/pull-request-review-4" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + put: + summary: Update a review for a pull request + description: |- + Updates the contents of a specified review summary comment. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/update-review + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/review-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The body text of the pull request review. + required: + - body + examples: + default: + value: + body: This is close to perfect! Please address the suggested inline + change. And add more about this. + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review" + examples: + default: + "$ref": "#/components/examples/pull-request-review-5" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + delete: + summary: Delete a pending review for a pull request + description: |- + Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/delete-pending-review + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#delete-a-pending-review-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/review-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review" + examples: + default: + "$ref": "#/components/examples/pull-request-review" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": + get: + summary: List comments for a pull request review + description: |- + Lists comments for a specific pull request review. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/list-comments-for-review + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/review-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/review-comment" + examples: + default: + "$ref": "#/components/examples/review-comment-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": + put: + summary: Dismiss a review for a pull request + description: |- + Dismisses a specified review on a pull request. + + > [!NOTE] + > To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/dismiss-review + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/review-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: The message for the pull request review dismissal + event: + type: string + example: '"DISMISS"' + enum: + - DISMISS + required: + - message + examples: + default: + value: + message: You are dismissed + event: DISMISS + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review" + examples: + default: + "$ref": "#/components/examples/pull-request-review-3" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": + post: + summary: Submit a review for a pull request + description: |- + Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - pulls + operationId: pulls/submit-review + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + - "$ref": "#/components/parameters/review-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + body: + type: string + description: The body text of the pull request review + event: + type: string + description: 'The review action you want to perform. The review + actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When + you leave this blank, the API returns _HTTP 422 (Unrecognizable + entity)_ and sets the review action state to `PENDING`, which + means you will need to re-submit the pull request review using + a review action.' + enum: + - APPROVE + - REQUEST_CHANGES + - COMMENT + required: + - event + examples: + default: + value: + body: Here is the body for the review. + event: REQUEST_CHANGES + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/pull-request-review" + examples: + default: + "$ref": "#/components/examples/pull-request-review-4" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: reviews + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": + put: + summary: Update a pull request branch + description: |- + Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + Note: If making a request on behalf of a GitHub App you must also have permissions to write the contents of the head repository. + tags: + - pulls + operationId: pulls/update-branch + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/pull-number" + requestBody: + required: false + content: + application/json: + schema: + type: object + nullable: true + properties: + expected_head_sha: + type: string + description: 'The expected SHA of the pull request''s HEAD ref. + This is the most recent commit on the pull request''s branch. + If the expected SHA does not match the pull request''s HEAD, you + will receive a `422 Unprocessable Entity` status. You can use + the "[List commits](https://docs.github.com/rest/commits/commits#list-commits)" + endpoint to find the most recent commit SHA. Default: SHA of the + pull request''s current HEAD ref.' + examples: + default: + value: + expected_head_sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + responses: + '202': + description: Response + content: + application/json: + schema: + type: object + properties: + message: + type: string + url: + type: string + examples: + default: + value: + message: Updating pull request branch. + url: https://github.com/repos/octocat/Hello-World/pulls/53 + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: pulls + subcategory: pulls + "/repos/{owner}/{repo}/readme": + get: + summary: Get a repository README + description: |- + Gets the preferred README for a repository. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + tags: + - repos + operationId: repos/get-readme + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/contents#get-a-repository-readme + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ref + description: 'The name of the commit/branch/tag. Default: the repository’s + default branch.' + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/content-file" + examples: + default: + "$ref": "#/components/examples/content-file" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: contents + "/repos/{owner}/{repo}/readme/{dir}": + get: + summary: Get a repository README for a directory + description: |- + Gets the README from a repository directory. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + tags: + - repos + operationId: repos/get-readme-in-directory + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/contents#get-a-repository-readme-for-a-directory + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: dir + description: The alternate path to look for a README file + in: path + required: true + schema: + type: string + x-multi-segment: true + - name: ref + description: 'The name of the commit/branch/tag. Default: the repository’s + default branch.' + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/content-file" + examples: + default: + "$ref": "#/components/examples/content-file" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: contents + "/repos/{owner}/{repo}/releases": + get: + summary: List releases + description: |- + This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + + Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + tags: + - repos + operationId: repos/list-releases + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#list-releases + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/release" + examples: + default: + "$ref": "#/components/examples/release-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + post: + summary: Create a release + description: |- + Users with push access to the repository can create a release. + + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + tags: + - repos + operationId: repos/create-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#create-a-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + tag_name: + type: string + description: The name of the tag. + target_commitish: + type: string + description: 'Specifies the commitish value that determines where + the Git tag is created from. Can be any branch or commit SHA. + Unused if the Git tag already exists. Default: the repository''s + default branch.' + name: + type: string + description: The name of the release. + body: + type: string + description: Text describing the contents of the tag. + draft: + type: boolean + description: "`true` to create a draft (unpublished) release, `false` + to create a published one." + default: false + prerelease: + type: boolean + description: "`true` to identify the release as a prerelease. `false` + to identify the release as a full release." + default: false + discussion_category_name: + type: string + description: If specified, a discussion of the specified category + is created and linked to the release. The value must be a category + that already exists in the repository. For more information, see + "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." + generate_release_notes: + type: boolean + description: Whether to automatically generate the name and body + for this release. If `name` is specified, the specified name will + be used; otherwise, a name will be automatically generated. If + `body` is specified, the body will be pre-pended to the automatically + generated notes. + default: false + make_latest: + type: string + description: Specifies whether this release should be set as the + latest release for the repository. Drafts and prereleases cannot + be set as latest. Defaults to `true` for newly published releases. + `legacy` specifies that the latest release should be determined + based on the release creation date and higher semantic version. + enum: + - 'true' + - 'false' + - legacy + default: 'true' + required: + - tag_name + examples: + default: + value: + tag_name: v1.0.0 + target_commitish: master + name: v1.0.0 + body: Description of the release + draft: false + prerelease: false + generate_release_notes: false + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/release" + examples: + default: + "$ref": "#/components/examples/release" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/releases/1 + schema: + type: string + '404': + description: Not Found if the discussion category name is invalid + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + "/repos/{owner}/{repo}/releases/assets/{asset_id}": + get: + summary: Get a release asset + description: "To download the asset's binary content:\n\n- If within a browser, + fetch the location specified in the `browser_download_url` key provided in + the response.\n- Alternatively, set the `Accept` header of the request to + \n [`application/octet-stream`](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + \n The API will either redirect the client to the location, or stream it + directly if possible.\n API clients should handle both a `200` or `302` response." + tags: + - repos + operationId: repos/get-release-asset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/assets#get-a-release-asset + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/asset-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/release-asset" + examples: + default: + "$ref": "#/components/examples/release-asset" + '404': + "$ref": "#/components/responses/not_found" + '302': + "$ref": "#/components/responses/found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: assets + patch: + summary: Update a release asset + description: Users with push access to the repository can edit a release asset. + tags: + - repos + operationId: repos/update-release-asset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/assets#update-a-release-asset + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/asset-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The file name of the asset. + label: + type: string + description: An alternate short description of the asset. Used in + place of the filename. + state: + type: string + example: '"uploaded"' + examples: + default: + value: + name: foo-1.0.0-osx.zip + label: Mac binary + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/release-asset" + examples: + default: + "$ref": "#/components/examples/release-asset" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: assets + delete: + summary: Delete a release asset + description: '' + tags: + - repos + operationId: repos/delete-release-asset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/assets#delete-a-release-asset + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/asset-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: assets + "/repos/{owner}/{repo}/releases/generate-notes": + post: + summary: Generate release notes content for a release + description: Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). + The body content will be markdown formatted and contain information like the + changes since last release and users who contributed. The generated release + notes are not saved anywhere. They are intended to be generated and used when + creating a new release. + tags: + - repos + operationId: repos/generate-release-notes + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#generate-release-notes-content-for-a-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + tag_name: + type: string + description: The tag name for the release. This can be an existing + tag or a new one. + target_commitish: + type: string + description: Specifies the commitish value that will be the target + for the release's tag. Required if the supplied tag_name does + not reference an existing tag. Ignored if the tag_name already + exists. + previous_tag_name: + type: string + description: The name of the previous tag to use as the starting + point for the release notes. Use to manually specify the range + for the set of changes considered as part this release. + configuration_file_path: + type: string + description: Specifies a path to a file in the repository containing + configuration settings used for generating the release notes. + If unspecified, the configuration file located in the repository + at '.github/release.yml' or '.github/release.yaml' will be used. + If that is not present, the default configuration will be used. + required: + - tag_name + examples: + default: + value: + tag_name: v1.0.0 + target_commitish: main + previous_tag_name: v0.9.2 + configuration_file_path: ".github/custom_release_config.yml" + responses: + '200': + description: Name and body of generated release notes + content: + application/json: + schema: + "$ref": "#/components/schemas/release-notes-content" + examples: + default: + "$ref": "#/components/examples/release-notes-content" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + "/repos/{owner}/{repo}/releases/latest": + get: + summary: Get the latest release + description: |- + View the latest published full release for the repository. + + The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + tags: + - repos + operationId: repos/get-latest-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#get-the-latest-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/release" + examples: + default: + "$ref": "#/components/examples/release" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + "/repos/{owner}/{repo}/releases/tags/{tag}": + get: + summary: Get a release by tag name + description: Get a published release with the specified tag. + tags: + - repos + operationId: repos/get-release-by-tag + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: tag + description: tag parameter + in: path + required: true + schema: + type: string + x-multi-segment: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/release" + examples: + default: + "$ref": "#/components/examples/release" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + "/repos/{owner}/{repo}/releases/{release_id}": + get: + summary: Get a release + description: |- + Gets a public release with the specified release ID. + + > [!NOTE] + > This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource. For more information, see "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + tags: + - repos + operationId: repos/get-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#get-a-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + responses: + '200': + description: '**Note:** This returns an `upload_url` key corresponding to + the endpoint for uploading release assets. This key is a hypermedia resource. + For more information, see "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)."' + content: + application/json: + schema: + "$ref": "#/components/schemas/release" + examples: + default: + "$ref": "#/components/examples/release" + '401': + description: Unauthorized + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + patch: + summary: Update a release + description: Users with push access to the repository can edit a release. + tags: + - repos + operationId: repos/update-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#update-a-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + tag_name: + type: string + description: The name of the tag. + target_commitish: + type: string + description: 'Specifies the commitish value that determines where + the Git tag is created from. Can be any branch or commit SHA. + Unused if the Git tag already exists. Default: the repository''s + default branch.' + name: + type: string + description: The name of the release. + body: + type: string + description: Text describing the contents of the tag. + draft: + type: boolean + description: "`true` makes the release a draft, and `false` publishes + the release." + prerelease: + type: boolean + description: "`true` to identify the release as a prerelease, `false` + to identify the release as a full release." + make_latest: + type: string + description: Specifies whether this release should be set as the + latest release for the repository. Drafts and prereleases cannot + be set as latest. Defaults to `true` for newly published releases. + `legacy` specifies that the latest release should be determined + based on the release creation date and higher semantic version. + enum: + - 'true' + - 'false' + - legacy + default: true + discussion_category_name: + type: string + description: If specified, a discussion of the specified category + is created and linked to the release. The value must be a category + that already exists in the repository. If there is already a discussion + linked to the release, this parameter is ignored. For more information, + see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." + examples: + default: + value: + tag_name: v1.0.0 + target_commitish: master + name: v1.0.0 + body: Description of the release + draft: false + prerelease: false + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/release" + examples: + default: + "$ref": "#/components/examples/release" + '404': + description: Not Found if the discussion category name is invalid + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + delete: + summary: Delete a release + description: Users with push access to the repository can delete a release. + tags: + - repos + operationId: repos/delete-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/releases#delete-a-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: releases + "/repos/{owner}/{repo}/releases/{release_id}/assets": + get: + summary: List release assets + description: '' + tags: + - repos + operationId: repos/list-release-assets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/assets#list-release-assets + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/release-asset" + examples: + default: + "$ref": "#/components/examples/release-asset-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: assets + post: + summary: Upload a release asset + description: "This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) + to determine which URL to access. The endpoint you call to upload release + assets is specific to your release. Use the `upload_url` returned in\nthe + response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) + to upload a release asset.\n\nYou need to use an HTTP client which supports + [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to + this endpoint.\n\nMost libraries will set the required `Content-Length` header + automatically. Use the required `Content-Type` header to provide the media + type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). + For example: \n\n`application/zip`\n\nGitHub expects the asset data in its + raw binary form, rather than JSON. You will send the raw binary content of + the asset as the request body. Everything else about the endpoint is the same + as the rest of the API. For example,\nyou'll still need to pass your authentication + to be able to upload an asset.\n\nWhen an upstream failure occurs, you will + receive a `502 Bad Gateway` status. This may leave an empty asset with a state + of `starter`. It can be safely deleted.\n\n**Notes:**\n* GitHub renames + asset filenames that have special characters, non-alphanumeric characters, + and leading or trailing periods. The \"[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)\"\nendpoint + lists the renamed filenames. For more information and help, contact [GitHub + Support](https://support.github.com/contact?tags=dotcom-rest-api).\n* To + find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` + endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + \n* If you upload an asset with the same filename as another uploaded asset, + you'll receive an error and must delete the old file before you can re-upload + the new asset." + tags: + - repos + operationId: repos/upload-release-asset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/releases/assets#upload-a-release-asset + servers: + - url: https://uploads.github.com + description: The URL origin (protocol + host name + port) is included in `upload_url` + returned in the response of the "Create a release" endpoint + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + - name: name + in: query + required: true + schema: + type: string + - name: label + in: query + schema: + type: string + requestBody: + required: false + content: + application/octet-stream: + schema: + type: string + format: binary + description: The raw file data + examples: + default: + value: "@example.zip" + responses: + '201': + description: Response for successful upload + content: + application/json: + schema: + "$ref": "#/components/schemas/release-asset" + examples: + response-for-successful-upload: + "$ref": "#/components/examples/release-asset-response-for-successful-upload" + '422': + description: Response if you upload an asset with the same filename as another + uploaded asset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: releases + subcategory: assets + "/repos/{owner}/{repo}/releases/{release_id}/reactions": + get: + summary: List reactions for a release + description: List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + tags: + - reactions + operationId: reactions/list-for-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + - name: content + description: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). + Omit this parameter to list all reactions to a release. + in: query + required: false + schema: + type: string + enum: + - "+1" + - laugh + - heart + - hooray + - rocket + - eyes + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + post: + summary: Create reaction for a release + description: 'Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + A response with a `Status: 200 OK` means that you already added the reaction + type to this release.' + tags: + - reactions + operationId: reactions/create-for-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + content: + type: string + description: The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) + to add to the release. + enum: + - "+1" + - laugh + - heart + - hooray + - rocket + - eyes + required: + - content + examples: + default: + value: + content: heart + responses: + '200': + description: Reaction exists + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '201': + description: Reaction created + content: + application/json: + schema: + "$ref": "#/components/schemas/reaction" + examples: + default: + "$ref": "#/components/examples/reaction" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": + delete: + summary: Delete a release reaction + description: |- + > [!NOTE] + > You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + + Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + tags: + - reactions + operationId: reactions/delete-for-release + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/reactions/reactions#delete-a-release-reaction + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/release-id" + - "$ref": "#/components/parameters/reaction-id" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: reactions + subcategory: reactions + "/repos/{owner}/{repo}/rules/branches/{branch}": + get: + summary: Get rules for a branch + description: |- + Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + enforcement statuses are not returned. + tags: + - repos + operationId: repos/get-branch-rules + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#get-rules-for-a-branch + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/branch" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository-rule-detailed" + examples: + default: + "$ref": "#/components/examples/repository-rule-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + "/repos/{owner}/{repo}/rulesets": + get: + summary: Get all repository rulesets + description: Get all the rulesets for a repository. + tags: + - repos + operationId: repos/get-repo-rulesets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#get-all-repository-rulesets + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - name: includes_parents + description: Include rulesets configured at higher levels that apply to this + repository + in: query + required: false + schema: + type: boolean + default: true + - "$ref": "#/components/parameters/ruleset-targets" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/repository-ruleset-items" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + post: + summary: Create a repository ruleset + description: Create a ruleset for a repository. + tags: + - repos + operationId: repos/create-repo-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#create-a-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + description: Request body + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the ruleset. + target: + type: string + description: The target of the ruleset + enum: + - branch + - tag + - push + default: branch + enforcement: + "$ref": "#/components/schemas/repository-rule-enforcement" + bypass_actors: + type: array + description: The actors that can bypass the rules in this ruleset + items: + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + conditions: + "$ref": "#/components/schemas/repository-ruleset-conditions" + rules: + type: array + description: An array of rules within the ruleset. + items: + "$ref": "#/components/schemas/repository-rule" + required: + - name + - enforcement + examples: + default: + value: + name: super cool ruleset + target: branch + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/repository-ruleset" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + "/repos/{owner}/{repo}/rulesets/rule-suites": + get: + summary: List repository rule suites + description: |- + Lists suites of rule evaluations at the repository level. + For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + tags: + - repos + operationId: repos/get-repo-rule-suites + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/ref-in-query" + - "$ref": "#/components/parameters/time-period" + - "$ref": "#/components/parameters/actor-name-in-query" + - "$ref": "#/components/parameters/rule-suite-result" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/rule-suites" + examples: + default: + "$ref": "#/components/examples/rule-suite-items" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rule-suites + "/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": + get: + summary: Get a repository rule suite + description: |- + Gets information about a suite of rule evaluations from within a repository. + For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + tags: + - repos + operationId: repos/get-repo-rule-suite + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rule-suites#get-a-repository-rule-suite + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/rule-suite-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/rule-suite" + examples: + default: + "$ref": "#/components/examples/rule-suite" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rule-suites + "/repos/{owner}/{repo}/rulesets/{ruleset_id}": + get: + summary: Get a repository ruleset + description: |- + Get a ruleset for a repository. + + **Note:** To prevent leaking sensitive information, the `bypass_actors` property is only returned if the user + making the API request has write access to the ruleset. + tags: + - repos + operationId: repos/get-repo-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#get-a-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + - name: includes_parents + description: Include rulesets configured at higher levels that apply to this + repository + in: query + required: false + schema: + type: boolean + default: true + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/repository-ruleset" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + put: + summary: Update a repository ruleset + description: Update a ruleset for a repository. + tags: + - repos + operationId: repos/update-repo-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#update-a-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + requestBody: + description: Request body + required: false + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the ruleset. + target: + type: string + description: The target of the ruleset + enum: + - branch + - tag + - push + enforcement: + "$ref": "#/components/schemas/repository-rule-enforcement" + bypass_actors: + type: array + description: The actors that can bypass the rules in this ruleset + items: + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + conditions: + "$ref": "#/components/schemas/repository-ruleset-conditions" + rules: + description: An array of rules within the ruleset. + type: array + items: + "$ref": "#/components/schemas/repository-rule" + examples: + default: + value: + name: super cool ruleset + target: branch + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-ruleset" + examples: + default: + "$ref": "#/components/examples/repository-ruleset" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + delete: + summary: Delete a repository ruleset + description: Delete a ruleset for a repository. + tags: + - repos + operationId: repos/delete-repo-ruleset + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history": + get: + summary: Get repository ruleset history + description: Get the history of a repository ruleset. + tags: + - repos + operationId: repos/get-repo-ruleset-history + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#get-repository-ruleset-history + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/ruleset-version" + examples: + default: + "$ref": "#/components/examples/ruleset-history" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}": + get: + summary: Get repository ruleset version + description: Get a version of a repository ruleset. + tags: + - repos + operationId: repos/get-repo-ruleset-version + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/rules#get-repository-ruleset-version + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ruleset_id + description: The ID of the ruleset. + in: path + required: true + schema: + type: integer + - name: version_id + description: The ID of the version + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/ruleset-version-with-state" + examples: + default: + "$ref": "#/components/examples/repository-ruleset-version-with-state" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: rules + "/repos/{owner}/{repo}/secret-scanning/alerts": + get: + summary: List secret scanning alerts for a repository + description: |- + Lists secret scanning alerts for an eligible repository, from newest to oldest. + + The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + tags: + - secret-scanning + operationId: secret-scanning/list-alerts-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/secret-scanning-alert-state" + - "$ref": "#/components/parameters/secret-scanning-alert-secret-type" + - "$ref": "#/components/parameters/secret-scanning-alert-resolution" + - "$ref": "#/components/parameters/secret-scanning-alert-assignee" + - "$ref": "#/components/parameters/secret-scanning-alert-sort" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/secret-scanning-pagination-before-org-repo" + - "$ref": "#/components/parameters/secret-scanning-pagination-after-org-repo" + - "$ref": "#/components/parameters/secret-scanning-alert-validity" + - "$ref": "#/components/parameters/secret-scanning-alert-publicly-leaked" + - "$ref": "#/components/parameters/secret-scanning-alert-multi-repo" + - "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/secret-scanning-alert" + examples: + default: + "$ref": "#/components/examples/secret-scanning-alert-list" + '404': + description: Repository is public or secret scanning is disabled for the + repository + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: secret-scanning + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": + get: + summary: Get a secret scanning alert + description: |- + Gets a single secret scanning alert detected in an eligible repository. + + The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + tags: + - secret-scanning + operationId: secret-scanning/get-alert + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + - "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/secret-scanning-alert" + examples: + default: + "$ref": "#/components/examples/secret-scanning-alert-open" + '304': + "$ref": "#/components/responses/not_modified" + '404': + description: Repository is public, or secret scanning is disabled for the + repository, or the resource is not found + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: secret-scanning + patch: + summary: Update a secret scanning alert + description: |- + Updates the status of a secret scanning alert in an eligible repository. + + You can also use this endpoint to assign or unassign an alert to a user who has write access to the repository. + + The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + operationId: secret-scanning/update-alert + tags: + - secret-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/secret-scanning#update-a-secret-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + state: + "$ref": "#/components/schemas/secret-scanning-alert-state" + resolution: + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + resolution_comment: + "$ref": "#/components/schemas/secret-scanning-alert-resolution-comment" + assignee: + "$ref": "#/components/schemas/secret-scanning-alert-assignee" + anyOf: + - required: + - state + - required: + - assignee + examples: + default: + value: + state: resolved + resolution: false_positive + assign: + summary: Assign alert to a user + value: + assignee: octocat + unassign: + summary: Unassign alert + value: + assignee: + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/secret-scanning-alert" + examples: + default: + "$ref": "#/components/examples/secret-scanning-alert-resolved" + '400': + description: Bad request, resolution comment is invalid or the resolution + was not changed. + '404': + description: Repository is public, or secret scanning is disabled for the + repository, or the resource is not found + '422': + description: State does not match the resolution or resolution comment, + or assignee does not have write access to the repository + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: secret-scanning + subcategory: secret-scanning + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": + get: + summary: List locations for a secret scanning alert + description: |- + Lists all locations for a given secret scanning alert for an eligible repository. + + The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + tags: + - secret-scanning + operationId: secret-scanning/list-locations-for-alert + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/alert-number" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + description: List of locations where the secret was detected + items: + "$ref": "#/components/schemas/secret-scanning-location" + examples: + default: + "$ref": "#/components/examples/secret-scanning-location-list" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + description: Repository is public, or secret scanning is disabled for the + repository, or the resource is not found + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: secret-scanning + "/repos/{owner}/{repo}/secret-scanning/push-protection-bypasses": + post: + summary: Create a push protection bypass + description: |- + Creates a bypass for a previously push protected secret. + + The authenticated user must be the original author of the committed secret. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + operationId: secret-scanning/create-push-protection-bypass + tags: + - secret-scanning + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/secret-scanning#create-a-push-protection-bypass + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + reason: + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-reason" + placeholder_id: + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-placeholder-id" + required: + - reason + - placeholder_id + examples: + default: + value: + reason: will_fix_later + placeholder_id: 2k4dM4tseyC5lPIsjl5emX9sPNk + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass" + examples: + default: + "$ref": "#/components/examples/secret-scanning-push-protection-bypass" + '403': + description: User does not have enough permissions to perform this action. + '404': + description: Placeholder ID not found, or push protection is disabled on + this repository. + '422': + description: Bad request, input data missing or incorrect. + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + enabledForGitHubApps: true + githubCloudOnly: false + category: secret-scanning + subcategory: secret-scanning + "/repos/{owner}/{repo}/secret-scanning/scan-history": + get: + summary: Get secret scanning scan history for a repository + description: |- + Lists the latest default incremental and backfill scans by type for a repository. Scans from Copilot Secret Scanning are not included. + + > [!NOTE] + > This endpoint requires [GitHub Advanced Security](https://docs.github.com/get-started/learning-about-github/about-github-advanced-security)." + + OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + tags: + - secret-scanning + operationId: secret-scanning/get-scan-history + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/secret-scanning#get-secret-scanning-scan-history-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '404': + description: Repository does not have GitHub Advanced Security or secret + scanning enabled + '503': + "$ref": "#/components/responses/service_unavailable" + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/secret-scanning-scan-history" + examples: + default: + "$ref": "#/components/examples/secret-scanning-scan-history" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: secret-scanning + "/repos/{owner}/{repo}/security-advisories": + get: + summary: List repository security advisories + description: |- + Lists security advisories in a repository. + + The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + tags: + - security-advisories + operationId: security-advisories/list-repository-advisories + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/direction" + - name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - published + default: created + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - name: per_page + description: The number of advisories to return per page. For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + - name: state + description: Filter by state of the repository advisories. Only advisories + of this state will be returned. + in: query + required: false + schema: + type: string + enum: + - triage + - draft + - published + - closed + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository-advisory" + examples: + default: + "$ref": "#/components/examples/list-repository-advisories" + '400': + "$ref": "#/components/responses/bad_request" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + post: + summary: Create a repository security advisory + description: |- + Creates a new repository security advisory. + + In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + tags: + - security-advisories + operationId: security-advisories/create-repository-advisory + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#create-a-repository-security-advisory + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-advisory-create" + examples: + default: + value: + summary: A new important advisory + description: A more in-depth description of what the problem is. + severity: high + cve_id: + vulnerabilities: + - package: + name: a-package + ecosystem: npm + vulnerable_version_range: "< 1.0.0" + patched_versions: 1.0.0 + vulnerable_functions: + - important_function + cwe_ids: + - CWE-1101 + - CWE-20 + credits: + - login: monalisa + type: reporter + - login: octocat + type: analyst + withVectorString: + value: + summary: A new important advisory + description: A more in-depth description of what the problem is. + cvss_vector_string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L + cve_id: + vulnerabilities: + - package: + name: a-package + ecosystem: npm + vulnerable_version_range: "< 1.0.0" + patched_versions: 1.0.0 + vulnerable_functions: + - important_function + cwe_ids: + - CWE-1101 + - CWE-20 + credits: + - login: monalisa + type: reporter + - login: octocat + type: analyst + minimal: + value: + summary: A new important advisory + description: A more in-depth description of what the problem is. + vulnerabilities: + - package: + ecosystem: npm + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-advisory" + examples: + default: + "$ref": "#/components/examples/repository-advisory" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + "/repos/{owner}/{repo}/security-advisories/reports": + post: + summary: Privately report a security vulnerability + description: |- + Report a security vulnerability to the maintainers of the repository. + See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + tags: + - security-advisories + operationId: security-advisories/create-private-vulnerability-report + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#privately-report-a-security-vulnerability + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/private-vulnerability-report-create" + examples: + default: + value: + summary: A newly discovered vulnerability + description: A more in-depth description of what the problem is. + severity: high + vulnerabilities: + - package: + name: a-package + ecosystem: npm + vulnerable_version_range: "< 1.0.0" + patched_versions: 1.0.0 + vulnerable_functions: + - important_function + cwe_ids: + - CWE-123 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-advisory" + examples: + default: + "$ref": "#/components/examples/repository-advisory-pvr" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}": + get: + summary: Get a repository security advisory + description: |- + Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + + Anyone can access any published security advisory on a public repository. + + The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + collaborator on the security advisory. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + tags: + - security-advisories + operationId: security-advisories/get-repository-advisory + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#get-a-repository-security-advisory + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/ghsa_id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-advisory" + examples: + default: + "$ref": "#/components/examples/repository-advisory" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + patch: + summary: Update a repository security advisory + description: |- + Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + + In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + or a collaborator on the repository security advisory. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + tags: + - security-advisories + operationId: security-advisories/update-repository-advisory + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#update-a-repository-security-advisory + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/ghsa_id" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-advisory-update" + examples: + default: + summary: Updating the severity and state. + value: + severity: critical + state: published + add_credit: + summary: To add a credit to an advisory, send the whole array of values. + value: + credits: + - login: monauser + type: remediation_developer + update_vvrs: + summary: To add vulnerable versions, include existing versions in + the array. + value: + - package: + ecosystem: pip + name: a-package + vulnerable_version_range: ">= 1.0.0, < 1.0.1" + patched_versions: 1.0.1 + vulnerable_functions: + - function1 + - package: + ecosystem: pip + name: another-package + vulnerable_version_range: ">= 1.0.0, < 1.0.2" + patched_versions: 1.0.2 + vulnerable_functions: + - function2 + invalid_state_transition: + summary: Example of an invalid state transition, from `published` + to `draft`. + value: + state: draft + update_severity_with_cvss_set: + summary: Severity cannot be updated when the CVSS is already set. + value: + severity: low + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-advisory" + examples: + default: + "$ref": "#/components/examples/repository-advisory" + add_credit: + "$ref": "#/components/examples/repository-advisory" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Validation failed, or the endpoint has been spammed. + content: + application/json: + schema: + "$ref": "#/components/schemas/validation-error" + examples: + invalid_state_transition: + value: + message: Invalid state transition from `published` to `draft`. + update_severity_with_cvss_set: + value: + message: Cannot update severity value when CVSS is set. + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": + post: + summary: Request a CVE for a repository security advisory + description: |- + If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + + You may request a CVE for public repositories, but cannot do so for private repositories. + + In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + tags: + - security-advisories + operationId: security-advisories/create-repository-advisory-cve-request + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#request-a-cve-for-a-repository-security-advisory + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/ghsa_id" + responses: + '202': + "$ref": "#/components/responses/accepted" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": + post: + summary: Create a temporary private fork + description: |- + Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + + > [!NOTE] + > Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + tags: + - security-advisories + operationId: security-advisories/create-fork + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/security-advisories/repository-advisories#create-a-temporary-private-fork + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/ghsa_id" + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/full-repository" + examples: + default: + "$ref": "#/components/examples/full-repository" + '400': + "$ref": "#/components/responses/bad_request" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: security-advisories + subcategory: repository-advisories + "/repos/{owner}/{repo}/stargazers": + get: + summary: List stargazers + description: |- + Lists the people that have starred the repository. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + tags: + - activity + operationId: activity/list-stargazers-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/starring#list-stargazers + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + anyOf: + - type: array + items: + "$ref": "#/components/schemas/simple-user" + - type: array + items: + "$ref": "#/components/schemas/stargazer" + examples: + default-response: + "$ref": "#/components/examples/simple-user-items-default-response" + alternative-response-with-star-creation-timestamps: + "$ref": "#/components/examples/stargazer-items-alternative-response-with-star-creation-timestamps" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: starring + "/repos/{owner}/{repo}/stats/code_frequency": + get: + summary: Get the weekly commit activity + description: |- + Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + + > [!NOTE] + > This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains 10,000 or more commits, a 422 status code will be returned. + tags: + - repos + operationId: repos/get-code-frequency-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-activity + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Returns a weekly aggregate of the number of additions and deletions + pushed to a repository. + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-frequency-stat" + examples: + default: + "$ref": "#/components/examples/code-frequency-stat-items" + '202': + "$ref": "#/components/responses/accepted" + '204': + "$ref": "#/components/responses/no_content" + '422': + description: Repository contains more than 10,000 commits + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: statistics + "/repos/{owner}/{repo}/stats/commit_activity": + get: + summary: Get the last year of commit activity + description: Returns the last year of commit activity grouped by week. The `days` + array is a group of commits per day, starting on `Sunday`. + tags: + - repos + operationId: repos/get-commit-activity-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/statistics#get-the-last-year-of-commit-activity + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/commit-activity" + examples: + default: + "$ref": "#/components/examples/commit-activity-items" + '202': + "$ref": "#/components/responses/accepted" + '204': + "$ref": "#/components/responses/no_content" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: statistics + "/repos/{owner}/{repo}/stats/contributors": + get: + summary: Get all contributor commit activity + description: |2- + + Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + + * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * `a` - Number of additions + * `d` - Number of deletions + * `c` - Number of commits + + > [!NOTE] + > This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + tags: + - repos + operationId: repos/get-contributors-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/statistics#get-all-contributor-commit-activity + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/contributor-activity" + examples: + default: + "$ref": "#/components/examples/contributor-activity-items" + '202': + "$ref": "#/components/responses/accepted" + '204': + "$ref": "#/components/responses/no_content" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: statistics + "/repos/{owner}/{repo}/stats/participation": + get: + summary: Get the weekly commit count + description: |- + Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + + The array order is oldest week (index 0) to most recent week. + + The most recent week is seven days ago at UTC midnight to today at UTC midnight. + tags: + - repos + operationId: repos/get-participation-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-count + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: The array order is oldest week (index 0) to most recent week. + content: + application/json: + schema: + "$ref": "#/components/schemas/participation-stats" + examples: + default: + "$ref": "#/components/examples/participation-stats" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: statistics + "/repos/{owner}/{repo}/stats/punch_card": + get: + summary: Get the hourly commit count for each day + description: |- + Each array contains the day number, hour number, and number of commits: + + * `0-6`: Sunday - Saturday + * `0-23`: Hour of day + * Number of commits + + For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + tags: + - repos + operationId: repos/get-punch-card-stats + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: For example, `[2, 14, 25]` indicates that there were 25 total + commits, during the 2:00pm hour on Tuesdays. All times are based on the + time zone of individual commits. + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/code-frequency-stat" + examples: + default: + "$ref": "#/components/examples/code-frequency-stat-items-2" + '204': + "$ref": "#/components/responses/no_content" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: statistics + "/repos/{owner}/{repo}/statuses/{sha}": + post: + summary: Create a commit status + description: |- + Users with push access in a repository can create commit statuses for a given SHA. + + Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + tags: + - repos + operationId: repos/create-commit-status + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/commits/statuses#create-a-commit-status + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: sha + in: path + required: true + schema: + type: string + x-multi-segment: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + state: + type: string + description: The state of the status. + enum: + - error + - failure + - pending + - success + target_url: + type: string + nullable: true + description: "The target URL to associate with this status. This + URL will be linked from the GitHub UI to allow users to easily + see the source of the status. \nFor example, if your continuous + integration system is posting build status, you would want to + provide the deep link for the build output for this specific SHA: + \ \n`http://ci.example.com/user/repo/build/sha`" + description: + type: string + nullable: true + description: A short description of the status. + context: + type: string + description: A string label to differentiate this status from the + status of other systems. This field is case-insensitive. + default: default + required: + - state + examples: + default: + value: + state: success + target_url: https://example.com/build/status + description: The build succeeded! + context: continuous-integration/jenkins + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/status" + examples: + default: + "$ref": "#/components/examples/status" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: commits + subcategory: statuses + "/repos/{owner}/{repo}/subscribers": + get: + summary: List watchers + description: Lists the people watching the specified repository. + tags: + - activity + operationId: activity/list-watchers-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/watching#list-watchers + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: watching + "/repos/{owner}/{repo}/subscription": + get: + summary: Get a repository subscription + description: Gets information about whether the authenticated user is subscribed + to the repository. + tags: + - activity + operationId: activity/get-repo-subscription + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/watching#get-a-repository-subscription + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: if you subscribe to the repository + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-subscription" + examples: + response-if-you-subscribe-to-the-repository: + "$ref": "#/components/examples/repository-subscription-response-if-you-subscribe-to-the-repository" + '404': + description: Not Found if you don't subscribe to the repository + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: watching + put: + summary: Set a repository subscription + description: If you would like to watch a repository, set `subscribed` to `true`. + If you would like to ignore notifications made within a repository, set `ignored` + to `true`. If you would like to stop watching a repository, [delete the repository's + subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) + completely. + tags: + - activity + operationId: activity/set-repo-subscription + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/watching#set-a-repository-subscription + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + subscribed: + type: boolean + description: Determines if notifications should be received from + this repository. + ignored: + type: boolean + description: Determines if all notifications should be blocked from + this repository. + examples: + default: + value: + subscribed: true + ignored: false + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/repository-subscription" + examples: + default: + "$ref": "#/components/examples/repository-subscription" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: watching + delete: + summary: Delete a repository subscription + description: This endpoint should only be used to stop watching a repository. + To control whether or not you wish to receive notifications from a repository, + [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + tags: + - activity + operationId: activity/delete-repo-subscription + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/watching#delete-a-repository-subscription + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: watching + "/repos/{owner}/{repo}/tags": + get: + summary: List repository tags + description: '' + tags: + - repos + operationId: repos/list-tags + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-repository-tags + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/tag" + examples: + default: + "$ref": "#/components/examples/tag-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/tags/protection": + get: + summary: Closing down - List tag protection states for a repository + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the "[Repository Rulesets](https://docs.github.com/rest/repos/rules#get-all-repository-rulesets)" endpoint instead. + + This returns the tag protection states of a repository. + + This information is only available to repository administrators. + tags: + - repos + operationId: repos/list-tag-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/tags#closing-down---list-tag-protection-states-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/tag-protection" + examples: + default: + "$ref": "#/components/examples/tag-protection-items" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: tags + deprecationDate: '2024-05-29' + removalDate: '2024-08-30' + deprecated: true + post: + summary: Closing down - Create a tag protection state for a repository + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the "[Repository Rulesets](https://docs.github.com/rest/repos/rules#create-a-repository-ruleset)" endpoint instead. + + This creates a tag protection state for a repository. + This endpoint is only available to repository administrators. + tags: + - repos + operationId: repos/create-tag-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/tags#closing-down---create-a-tag-protection-state-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + pattern: + type: string + description: An optional glob pattern to match against when enforcing + tag protection. + required: + - pattern + examples: + default: + value: + pattern: v1.* + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/tag-protection" + examples: + default: + "$ref": "#/components/examples/tag-protection" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: tags + deprecationDate: '2024-05-29' + removalDate: '2024-08-30' + deprecated: true + "/repos/{owner}/{repo}/tags/protection/{tag_protection_id}": + delete: + summary: Closing down - Delete a tag protection state for a repository + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the "[Repository Rulesets](https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset)" endpoint instead. + + This deletes a tag protection state for a repository. + This endpoint is only available to repository administrators. + tags: + - repos + operationId: repos/delete-tag-protection + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/tags#closing-down---delete-a-tag-protection-state-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/tag-protection-id" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: tags + deprecationDate: '2024-05-29' + removalDate: '2024-08-30' + deprecated: true + "/repos/{owner}/{repo}/tarball/{ref}": + get: + summary: Download a repository archive (tar) + description: |- + Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + the `Location` header to make a second `GET` request. + + > [!NOTE] + > For private repositories, these links are temporary and expire after five minutes. + tags: + - repos + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/contents#download-a-repository-archive-tar + operationId: repos/download-tarball-archive + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ref + in: path + required: true + x-multi-segment: true + schema: + type: string + responses: + '302': + description: Response + headers: + Location: + example: https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires + schema: + type: string + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: contents + "/repos/{owner}/{repo}/teams": + get: + summary: List repository teams + description: |- + Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + + For a public repository, a team is listed only if that team added the public repository explicitly. + + OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + tags: + - repos + operationId: repos/list-teams + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-repository-teams + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + default: + "$ref": "#/components/examples/team-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/topics": + get: + summary: Get all repository topics + description: '' + tags: + - repos + operationId: repos/get-all-topics + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#get-all-repository-topics + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/topic" + examples: + default: + "$ref": "#/components/examples/topic" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + put: + summary: Replace all repository topics + description: '' + tags: + - repos + operationId: repos/replace-all-topics + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#replace-all-repository-topics + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + names: + type: array + description: An array of topics to add to the repository. Pass one + or more topics to _replace_ the set of existing topics. Send an + empty array (`[]`) to clear all topics from the repository. **Note:** + Topic `names` will be saved as lowercase. + items: + type: string + required: + - names + examples: + default: + value: + names: + - octocat + - atom + - electron + - api + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/topic" + examples: + default: + "$ref": "#/components/examples/topic" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed_simple" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/traffic/clones": + get: + summary: Get repository clones + description: Get the total number of clones and breakdown per day or week for + the last 14 days. Timestamps are aligned to UTC midnight of the beginning + of the day or week. Week begins on Monday. + tags: + - repos + operationId: repos/get-clones + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/traffic#get-repository-clones + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/clone-traffic" + examples: + default: + "$ref": "#/components/examples/clone-traffic" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: traffic + "/repos/{owner}/{repo}/traffic/popular/paths": + get: + summary: Get top referral paths + description: Get the top 10 popular contents over the last 14 days. + tags: + - repos + operationId: repos/get-top-paths + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/traffic#get-top-referral-paths + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/content-traffic" + examples: + default: + "$ref": "#/components/examples/content-traffic-items" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: traffic + "/repos/{owner}/{repo}/traffic/popular/referrers": + get: + summary: Get top referral sources + description: Get the top 10 referrers over the last 14 days. + tags: + - repos + operationId: repos/get-top-referrers + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/traffic#get-top-referral-sources + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/referrer-traffic" + examples: + default: + "$ref": "#/components/examples/referrer-traffic-items" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: traffic + "/repos/{owner}/{repo}/traffic/views": + get: + summary: Get page views + description: Get the total number of views and breakdown per day or week for + the last 14 days. Timestamps are aligned to UTC midnight of the beginning + of the day or week. Week begins on Monday. + tags: + - repos + operationId: repos/get-views + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/metrics/traffic#get-page-views + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - "$ref": "#/components/parameters/per" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/view-traffic" + examples: + default: + "$ref": "#/components/examples/view-traffic" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: metrics + subcategory: traffic + "/repos/{owner}/{repo}/transfer": + post: + summary: Transfer a repository + description: A transfer request will need to be accepted by the new owner when + transferring a personal repository to another user. The response will contain + the original `owner`, and the transfer will continue asynchronously. For more + details on the requirements to transfer personal and organization-owned repositories, + see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + tags: + - repos + operationId: repos/transfer + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#transfer-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + new_owner: + type: string + description: The username or organization name the repository will + be transferred to. + new_name: + type: string + description: The new name to be given to the repository. + team_ids: + type: array + description: ID of the team or teams to add to the repository. Teams + can only be added to organization-owned repositories. + items: + type: integer + required: + - new_owner + examples: + default: + value: + new_owner: github + team_ids: + - 12 + - 345 + new_name: octorepo + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/vulnerability-alerts": + get: + summary: Check if vulnerability alerts are enabled for a repository + description: Shows whether dependency alerts are enabled or disabled for a repository. + The authenticated user must have admin read access to the repository. For + more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + tags: + - repos + operationId: repos/check-vulnerability-alerts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response if repository is enabled with vulnerability alerts + '404': + description: Not Found if repository is not enabled with vulnerability alerts + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + put: + summary: Enable vulnerability alerts + description: Enables dependency alerts and the dependency graph for a repository. + The authenticated user must have admin access to the repository. For more + information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + tags: + - repos + operationId: repos/enable-vulnerability-alerts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#enable-vulnerability-alerts + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + delete: + summary: Disable vulnerability alerts + description: |- + Disables dependency alerts and the dependency graph for a repository. + The authenticated user must have admin access to the repository. For more information, + see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + tags: + - repos + operationId: repos/disable-vulnerability-alerts + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#disable-vulnerability-alerts + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repos/{owner}/{repo}/zipball/{ref}": + get: + summary: Download a repository archive (zip) + description: |- + Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + the `Location` header to make a second `GET` request. + + > [!NOTE] + > For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + tags: + - repos + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip + operationId: repos/download-zipball-archive + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + - name: ref + in: path + required: true + x-multi-segment: true + schema: + type: string + responses: + '302': + description: Response + headers: + Location: + example: https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires + schema: + type: string + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: contents + "/repos/{template_owner}/{template_repo}/generate": + post: + summary: Create a repository using a template + description: |- + Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + + OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + tags: + - repos + operationId: repos/create-using-template + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#create-a-repository-using-a-template + parameters: + - name: template_owner + description: The account owner of the template repository. The name is not + case sensitive. + in: path + required: true + schema: + type: string + - name: template_repo + description: The name of the template repository without the `.git` extension. + The name is not case sensitive. + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + owner: + type: string + description: The organization or person who will own the new repository. + To create a new repository in an organization, the authenticated + user must be a member of the specified organization. + name: + type: string + description: The name of the new repository. + description: + type: string + description: A short description of the new repository. + include_all_branches: + type: boolean + description: 'Set to `true` to include the directory structure and + files from all branches in the template repository, and not just + the default branch. Default: `false`.' + default: false + private: + type: boolean + description: Either `true` to create a new private repository or + `false` to create a new public one. + default: false + required: + - name + examples: + default: + value: + owner: octocat + name: Hello-World + description: This is your first repository + include_all_branches: false + private: false + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/full-repository" + examples: + default: + "$ref": "#/components/examples/full-repository" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World + schema: + type: string + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/repositories": + get: + summary: List public repositories + description: |- + Lists all public repositories in the order that they were created. + + Note: + - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + tags: + - repos + operationId: repos/list-public + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-public-repositories + parameters: + - "$ref": "#/components/parameters/since-repo" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/public-repository-items" + headers: + Link: + example: ; rel="next" + schema: + type: string + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/search/code": + get: + summary: Search code + description: |- + Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + + When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + + For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + + `q=addClass+in:file+language:js+repo:jquery/jquery` + + This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + + Considerations for code search: + + Due to the complexity of searching code, there are a few restrictions on how searches are performed: + + * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * Only files smaller than 384 KB are searchable. + * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + + This endpoint requires you to authenticate and limits you to 10 requests per minute. + tags: + - search + operationId: search/code + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/search/search#search-code + parameters: + - name: q + description: The query contains one or more search keywords and qualifiers. + Qualifiers allow you to limit your search to specific areas of GitHub. The + REST API supports the same qualifiers as the web interface for GitHub. To + learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + See "[Searching code](https://docs.github.com/search-github/searching-on-github/searching-code)" + for a detailed list of qualifiers. + in: query + required: true + schema: + type: string + - name: sort + deprecated: true + description: "**This field is closing down.** Sorts the results of your query. + Can only be `indexed`, which indicates how recently a file has been indexed + by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)" + in: query + required: false + schema: + type: string + enum: + - indexed + - name: order + description: "**This field is closing down.** Determines whether the first + search result returned is the highest number of matches (`desc`) or lowest + number of matches (`asc`). This parameter is ignored unless you provide + `sort`. " + in: query + deprecated: true + required: false + schema: + type: string + enum: + - desc + - asc + default: desc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - incomplete_results + - items + properties: + total_count: + type: integer + incomplete_results: + type: boolean + items: + type: array + items: + "$ref": "#/components/schemas/code-search-result-item" + examples: + default: + "$ref": "#/components/examples/code-search-result-item-paginated" + '304': + "$ref": "#/components/responses/not_modified" + '503': + "$ref": "#/components/responses/service_unavailable" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: search + subcategory: search + "/search/commits": + get: + summary: Search commits + description: |- + Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + + When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + metadata](https://docs.github.com/rest/search/search#text-match-metadata). + + For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + + `q=repo:octocat/Spoon-Knife+css` + tags: + - search + operationId: search/commits + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/search/search#search-commits + parameters: + - name: q + description: The query contains one or more search keywords and qualifiers. + Qualifiers allow you to limit your search to specific areas of GitHub. The + REST API supports the same qualifiers as the web interface for GitHub. To + learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + See "[Searching commits](https://docs.github.com/search-github/searching-on-github/searching-commits)" + for a detailed list of qualifiers. + in: query + required: true + schema: + type: string + - name: sort + description: 'Sorts the results of your query by `author-date` or `committer-date`. + Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)' + in: query + required: false + schema: + type: string + enum: + - author-date + - committer-date + - "$ref": "#/components/parameters/order" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - incomplete_results + - items + properties: + total_count: + type: integer + incomplete_results: + type: boolean + items: + type: array + items: + "$ref": "#/components/schemas/commit-search-result-item" + examples: + default: + "$ref": "#/components/examples/commit-search-result-item-paginated" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: search + subcategory: search + "/search/issues": + get: + summary: Search issues and pull requests + description: |- + Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + + When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + + For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + + `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + + This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + + > [!NOTE] + > For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + tags: + - search + operationId: search/issues-and-pull-requests + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/search/search#search-issues-and-pull-requests + parameters: + - name: q + description: The query contains one or more search keywords and qualifiers. + Qualifiers allow you to limit your search to specific areas of GitHub. The + REST API supports the same qualifiers as the web interface for GitHub. To + learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + See "[Searching issues and pull requests](https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests)" + for a detailed list of qualifiers. + in: query + required: true + schema: + type: string + - name: sort + description: 'Sorts the results of your query by the number of `comments`, + `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, + `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort + results by how recently the items were `created` or `updated`, Default: + [best match](https://docs.github.com/rest/search/search#ranking-search-results)' + in: query + required: false + schema: + type: string + enum: + - comments + - reactions + - reactions-+1 + - reactions--1 + - reactions-smile + - reactions-thinking_face + - reactions-heart + - reactions-tada + - interactions + - created + - updated + - "$ref": "#/components/parameters/order" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/issues-advanced-search" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - incomplete_results + - items + properties: + total_count: + type: integer + incomplete_results: + type: boolean + items: + type: array + items: + "$ref": "#/components/schemas/issue-search-result-item" + examples: + default: + "$ref": "#/components/examples/issue-search-result-item-paginated" + '503': + "$ref": "#/components/responses/service_unavailable" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: search + subcategory: search + "/search/labels": + get: + summary: Search labels + description: |- + Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + + When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + + For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + + `q=bug+defect+enhancement&repository_id=64778136` + + The labels that best match the query appear first in the search results. + tags: + - search + operationId: search/labels + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/search/search#search-labels + parameters: + - name: repository_id + description: The id of the repository. + in: query + required: true + schema: + type: integer + - name: q + description: The search keywords. This endpoint does not accept qualifiers + in the query. To learn more about the format of the query, see [Constructing + a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + in: query + required: true + schema: + type: string + - name: sort + description: 'Sorts the results of your query by when the label was `created` + or `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)' + in: query + required: false + schema: + type: string + enum: + - created + - updated + - "$ref": "#/components/parameters/order" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - incomplete_results + - items + properties: + total_count: + type: integer + incomplete_results: + type: boolean + items: + type: array + items: + "$ref": "#/components/schemas/label-search-result-item" + examples: + default: + "$ref": "#/components/examples/label-search-result-item-paginated" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: search + subcategory: search + "/search/repositories": + get: + summary: Search repositories + description: |- + Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + + When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + + For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + + `q=tetris+language:assembly&sort=stars&order=desc` + + This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + tags: + - search + operationId: search/repos + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/search/search#search-repositories + parameters: + - name: q + description: The query contains one or more search keywords and qualifiers. + Qualifiers allow you to limit your search to specific areas of GitHub. The + REST API supports the same qualifiers as the web interface for GitHub. To + learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" + for a detailed list of qualifiers. + in: query + required: true + schema: + type: string + - name: sort + description: 'Sorts the results of your query by number of `stars`, `forks`, + or `help-wanted-issues` or how recently the items were `updated`. Default: + [best match](https://docs.github.com/rest/search/search#ranking-search-results)' + in: query + required: false + schema: + type: string + enum: + - stars + - forks + - help-wanted-issues + - updated + - "$ref": "#/components/parameters/order" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - incomplete_results + - items + properties: + total_count: + type: integer + incomplete_results: + type: boolean + items: + type: array + items: + "$ref": "#/components/schemas/repo-search-result-item" + examples: + default: + "$ref": "#/components/examples/repo-search-result-item-paginated" + '503': + "$ref": "#/components/responses/service_unavailable" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: search + subcategory: search + "/search/topics": + get: + summary: Search topics + description: |- + Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + + When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + + For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + + `q=ruby+is:featured` + + This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + tags: + - search + operationId: search/topics + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/search/search#search-topics + parameters: + - name: q + description: The query contains one or more search keywords and qualifiers. + Qualifiers allow you to limit your search to specific areas of GitHub. The + REST API supports the same qualifiers as the web interface for GitHub. To + learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + in: query + required: true + schema: + type: string + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - incomplete_results + - items + properties: + total_count: + type: integer + incomplete_results: + type: boolean + items: + type: array + items: + "$ref": "#/components/schemas/topic-search-result-item" + examples: + default: + "$ref": "#/components/examples/topic-search-result-item-paginated" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: search + subcategory: search + "/search/users": + get: + summary: Search users + description: |- + Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + + When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + + For example, if you're looking for a list of popular users, you might try this query: + + `q=tom+repos:%3E42+followers:%3E1000` + + This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + + This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + tags: + - search + operationId: search/users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/search/search#search-users + parameters: + - name: q + description: The query contains one or more search keywords and qualifiers. + Qualifiers allow you to limit your search to specific areas of GitHub. The + REST API supports the same qualifiers as the web interface for GitHub. To + learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + See "[Searching users](https://docs.github.com/search-github/searching-on-github/searching-users)" + for a detailed list of qualifiers. + in: query + required: true + schema: + type: string + - name: sort + description: 'Sorts the results of your query by number of `followers` or + `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)' + in: query + required: false + schema: + type: string + enum: + - followers + - repositories + - joined + - "$ref": "#/components/parameters/order" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - incomplete_results + - items + properties: + total_count: + type: integer + incomplete_results: + type: boolean + items: + type: array + items: + "$ref": "#/components/schemas/user-search-result-item" + examples: + default: + "$ref": "#/components/examples/user-search-result-item-paginated" + '304': + "$ref": "#/components/responses/not_modified" + '503': + "$ref": "#/components/responses/service_unavailable" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: search + subcategory: search + "/teams/{team_id}": + get: + summary: Get a team (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. + tags: + - teams + operationId: teams/get-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#get-a-team-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + patch: + summary: Update a team (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. + + To edit a team, the authenticated user must either be an organization owner or a team maintainer. + + > [!NOTE] + > With nested teams, the `privacy` for parent teams cannot be `secret`. + tags: + - teams + operationId: teams/update-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#update-a-team-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the team. + description: + type: string + description: The description of the team. + privacy: + type: string + description: "The level of privacy this team should have. Editing + teams without specifying this parameter leaves `privacy` intact. + The options are: \n**For a non-nested team:** \n * `secret` + - only visible to organization owners and members of this team. + \ \n * `closed` - visible to all members of this organization. + \ \n**For a parent or child team:** \n * `closed` - visible to + all members of this organization." + enum: + - secret + - closed + notification_setting: + type: string + description: "The notification setting the team has chosen. Editing + teams without specifying this parameter leaves `notification_setting` + intact. The options are: \n * `notifications_enabled` - team members + receive notifications when the team is @mentioned. \n * `notifications_disabled` + - no one receives notifications." + enum: + - notifications_enabled + - notifications_disabled + permission: + type: string + description: "**Closing down notice**. The permission that new repositories + will be added to the team with when none is specified." + enum: + - pull + - push + - admin + default: pull + parent_team_id: + type: integer + description: The ID of a team to set as the parent team. + nullable: true + required: + - name + examples: + default: + value: + name: new team name + description: new team description + privacy: closed + notification_setting: notifications_enabled + responses: + '200': + description: Response when the updated information already exists + content: + application/json: + schema: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full" + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + delete: + summary: Delete a team (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. + + To delete a team, the authenticated user must be an organization owner or team maintainer. + + If you are an organization owner, deleting a parent team will delete all of its child teams as well. + tags: + - teams + operationId: teams/delete-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#delete-a-team-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + "/teams/{team_id}/invitations": + get: + summary: List pending team invitations (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. + + The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + tags: + - teams + operationId: teams/list-pending-invitations-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-invitation" + examples: + default: + "$ref": "#/components/examples/organization-invitation-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + "/teams/{team_id}/members": + get: + summary: List team members (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. + + Team members will include the members of child teams. + tags: + - teams + operationId: teams/list-members-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#list-team-members-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - name: role + description: Filters members returned by their role in the team. + in: query + required: false + schema: + type: string + enum: + - member + - maintainer + - all + default: all + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + "/teams/{team_id}/members/{username}": + get: + summary: Get team member (Legacy) + description: |- + The "Get team member" endpoint (described below) is closing down. + + We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + + To list members in a team, the team must be visible to the authenticated user. + tags: + - teams + operationId: teams/get-member-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#get-team-member-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: if user is a member + '404': + description: if user is not a member + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + put: + summary: Add team member (Legacy) + description: |- + The "Add team member" endpoint (described below) is closing down. + + We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + + Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + + > [!NOTE] + > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + + Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + tags: + - teams + operationId: teams/add-member-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#add-team-member-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '404': + description: Not Found if team synchronization is set up + '422': + description: Unprocessable Entity if you attempt to add an organization + to a team or you attempt to add a user to a team when they are not a member + of at least one other team in the same organization + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + delete: + summary: Remove team member (Legacy) + description: |- + The "Remove team member" endpoint (described below) is closing down. + + We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + + Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + + > [!NOTE] + > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + tags: + - teams + operationId: teams/remove-member-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#remove-team-member-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '404': + description: Not Found if team synchronization is setup + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + "/teams/{team_id}/memberships/{username}": + get: + summary: Get team membership for a user (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. + + Team members will include the members of child teams. + + To get a user's membership with a team, the team must be visible to the authenticated user. + + **Note:** + The response contains the `state` of the membership and the member's `role`. + + The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + tags: + - teams + operationId: teams/get-membership-for-user-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#get-team-membership-for-a-user-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-membership" + examples: + response-if-user-is-a-team-maintainer: + "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + put: + summary: Add or update team membership for a user (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. + + Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + + > [!NOTE] + > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + + If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + + If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + tags: + - teams + operationId: teams/add-or-update-membership-for-user-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/username" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + role: + type: string + description: The role that this user should have in the team. + enum: + - member + - maintainer + default: member + examples: + default: + summary: Assign the member role for a user in a team + value: + role: member + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/team-membership" + examples: + response-if-users-membership-with-team-is-now-pending: + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + '403': + description: Forbidden if team synchronization is set up + '422': + description: Unprocessable Entity if you attempt to add an organization + to a team + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + delete: + summary: Remove team membership for a user (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. + + Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + + To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + + > [!NOTE] + > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + tags: + - teams + operationId: teams/remove-membership-for-user-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '403': + description: if team synchronization is set up + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: members + deprecated: true + "/teams/{team_id}/repos": + get: + summary: List team repositories (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. + tags: + - teams + operationId: teams/list-repos-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#list-team-repositories-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + "/teams/{team_id}/repos/{owner}/{repo}": + get: + summary: Check team permissions for a repository (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. + + > [!NOTE] + > Repositories inherited through a parent team will also be checked. + + You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types/) via the `Accept` header: + tags: + - teams + operationId: teams/check-permissions-for-repo-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '200': + description: Alternative response with extra repository information + content: + application/json: + schema: + "$ref": "#/components/schemas/team-repository" + examples: + alternative-response-with-extra-repository-information: + "$ref": "#/components/examples/team-repository-alternative-response-with-extra-repository-information" + '204': + description: Response if repository is managed by this team + '404': + description: Not Found if repository is not managed by this team + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + put: + summary: Add or update team repository permissions (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. + + To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + + Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + tags: + - teams + operationId: teams/add-or-update-repo-permissions-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + permission: + type: string + description: The permission to grant the team on this repository. + If no permission is specified, the team's `permission` attribute + will be used to determine what permission to grant the team on + this repository. + enum: + - pull + - push + - admin + examples: + default: + summary: Example of setting permission to pull + value: + permission: push + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + delete: + summary: Remove a repository from a team (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. + + If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + tags: + - teams + operationId: teams/remove-repo-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + "/teams/{team_id}/teams": + get: + summary: List child teams (Legacy) + description: |- + > [!WARNING] + > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. + tags: + - teams + operationId: teams/list-child-legacy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#list-child-teams-legacy + parameters: + - "$ref": "#/components/parameters/team-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: if child teams exist + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team" + examples: + response-if-child-teams-exist: + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + removalDate: '2021-02-01' + deprecationDate: '2020-01-21' + category: teams + subcategory: teams + deprecated: true + "/user": + get: + summary: Get the authenticated user + description: OAuth app tokens and personal access tokens (classic) need the + `user` scope in order for the response to include private profile information. + tags: + - users + operationId: users/get-authenticated + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/users#get-the-authenticated-user + parameters: [] + responses: + '200': + description: Response + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/private-user" + - "$ref": "#/components/schemas/public-user" + discriminator: + propertyName: user_view_type + mapping: + public: "#/components/schemas/public-user" + private: "#/components/schemas/private-user" + examples: + response-with-public-and-private-profile-information: + "$ref": "#/components/examples/private-user-response-with-public-and-private-profile-information" + response-with-public-profile-information: + "$ref": "#/components/examples/private-user-response-with-public-profile-information" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: users + patch: + summary: Update the authenticated user + description: "**Note:** If your email is set to private and you send an `email` + parameter as part of this request to update your profile, your privacy settings + are still enforced: the email address will not be displayed on your public + profile or via the API." + tags: + - users + operationId: users/update-authenticated + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/users#update-the-authenticated-user + parameters: [] + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + name: + description: The new name of the user. + type: string + example: Omar Jahandar + email: + description: The publicly visible email address of the user. + type: string + example: omar@example.com + blog: + description: The new blog URL of the user. + type: string + example: blog.example.com + twitter_username: + description: The new Twitter username of the user. + type: string + example: therealomarj + nullable: true + company: + description: The new company of the user. + type: string + example: Acme corporation + location: + description: The new location of the user. + type: string + example: Berlin, Germany + hireable: + description: The new hiring availability of the user. + type: boolean + bio: + description: The new short biography of the user. + type: string + examples: + default: + summary: Example of updating blog and name + value: + blog: https://github.com/blog + name: monalisa octocat + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/private-user" + examples: + default: + "$ref": "#/components/examples/private-user" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: users + "/user/blocks": + get: + summary: List users blocked by the authenticated user + description: List the users you've blocked on your personal account. + tags: + - users + operationId: users/list-blocked-by-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: blocking + "/user/blocks/{username}": + get: + summary: Check if a user is blocked by the authenticated user + description: Returns a 204 if the given user is blocked by the authenticated + user. Returns a 404 if the given user is not blocked by the authenticated + user, or if the given user account has been identified as spam by GitHub. + tags: + - users + operationId: users/check-blocked + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '204': + description: If the user is blocked + '404': + description: If the user is not blocked + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: blocking + put: + summary: Block a user + description: Blocks the given user and returns a 204. If the authenticated user + cannot block the given user a 422 is returned. + tags: + - users + operationId: users/block + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/blocking#block-a-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: blocking + delete: + summary: Unblock a user + description: Unblocks the given user and returns a 204. + tags: + - users + operationId: users/unblock + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/blocking#unblock-a-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: blocking + "/user/codespaces": + get: + summary: List codespaces for the authenticated user + description: |- + Lists the authenticated user's codespaces. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/repository-id-in-query" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - codespaces + properties: + total_count: + type: integer + codespaces: + type: array + items: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespaces-list" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + post: + summary: Create a codespace for the authenticated user + description: |- + Creates a new codespace, owned by the authenticated user. + + This endpoint requires either a `repository_id` OR a `pull_request` but not both. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/create-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-for-the-authenticated-user + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - type: object + required: + - repository_id + properties: + repository_id: + description: Repository id for this codespace + type: integer + ref: + description: Git ref (typically a branch name) for this codespace + type: string + location: + description: The requested location for a new codespace. Best + efforts are made to respect this upon creation. Assigned by + IP if not provided. + type: string + geo: + description: The geographic area for this codespace. If not specified, + the value is assigned by IP. This property replaces `location`, + which is closing down. + type: string + enum: + - EuropeWest + - SoutheastAsia + - UsEast + - UsWest + client_ip: + description: IP for location auto-detection when proxying a request + type: string + machine: + description: Machine type to use for this codespace + type: string + devcontainer_path: + description: Path to devcontainer.json config to use for this + codespace + type: string + multi_repo_permissions_opt_out: + description: Whether to authorize requested permissions from devcontainer.json + type: boolean + working_directory: + description: Working directory for this codespace + type: string + idle_timeout_minutes: + description: Time in minutes before codespace stops from inactivity + type: integer + display_name: + description: Display name for this codespace + type: string + retention_period_minutes: + description: Duration in minutes after codespace has gone idle + in which it will be deleted. Must be integer minutes between + 0 and 43200 (30 days). + type: integer + - type: object + required: + - pull_request + properties: + pull_request: + required: + - pull_request_number + - repository_id + description: Pull request number for this codespace + type: object + properties: + pull_request_number: + description: Pull request number + type: integer + repository_id: + description: Repository id for this codespace + type: integer + location: + description: The requested location for a new codespace. Best + efforts are made to respect this upon creation. Assigned by + IP if not provided. + type: string + geo: + description: The geographic area for this codespace. If not specified, + the value is assigned by IP. This property replaces `location`, + which is closing down. + type: string + enum: + - EuropeWest + - SoutheastAsia + - UsEast + - UsWest + machine: + description: Machine type to use for this codespace + type: string + devcontainer_path: + description: Path to devcontainer.json config to use for this + codespace + type: string + working_directory: + description: Working directory for this codespace + type: string + idle_timeout_minutes: + description: Time in minutes before codespace stops from inactivity + type: integer + examples: + default: + value: + repository_id: 1 + ref: main + geo: UsWest + responses: + '201': + description: Response when the codespace was successfully created + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '202': + description: Response when the codespace creation partially failed but is + being retried in the background + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/user/codespaces/secrets": + get: + summary: List secrets for the authenticated user + description: |- + Lists all development environment secrets available for a user's codespaces without revealing their + encrypted values. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-secrets-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + "$ref": "#/components/schemas/codespaces-secret" + examples: + default: + "$ref": "#/components/examples/repo-codespaces-secret-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + "/user/codespaces/secrets/public-key": + get: + summary: Get public key for the authenticated user + description: |- + Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-public-key-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespaces-user-public-key" + examples: + default: + "$ref": "#/components/examples/codespaces-user-public-key" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + "/user/codespaces/secrets/{secret_name}": + get: + summary: Get a secret for the authenticated user + description: |- + Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-secret-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#get-a-secret-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespaces-secret" + examples: + default: + "$ref": "#/components/examples/user-codespaces-secret" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + put: + summary: Create or update a secret for the authenticated user + description: |- + Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/create-or-update-secret-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#create-or-update-a-secret-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + encrypted_value: + type: string + description: Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) + using the public key retrieved from the [Get the public key for + the authenticated user](https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user) + endpoint. + pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + key_id: + type: string + description: ID of the key you used to encrypt the secret. + selected_repository_ids: + type: array + description: An array of repository ids that can access the user + secret. You can manage the list of selected repositories using + the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), + [Set selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret), + and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) + endpoints. + items: + anyOf: + - type: integer + - type: string + required: + - key_id + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + selected_repository_ids: + - '1234567' + - '2345678' + responses: + '201': + description: Response after successfully creating a secret + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response after successfully updating a secret + '422': + "$ref": "#/components/responses/validation_failed" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + delete: + summary: Delete a secret for the authenticated user + description: |- + Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/delete-secret-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#delete-a-secret-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/secret-name" + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + "/user/codespaces/secrets/{secret_name}/repositories": + get: + summary: List selected repositories for a user secret + description: |- + List the repositories that have been granted the ability to use a user's development environment secret. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/list-repositories-for-secret-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret + parameters: + - "$ref": "#/components/parameters/secret-name" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repositories: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-paginated" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + put: + summary: Set selected repositories for a user secret + description: |- + Select the repositories that will use a user's development environment secret. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/set-repositories-for-secret-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret + parameters: + - "$ref": "#/components/parameters/secret-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + selected_repository_ids: + type: array + description: An array of repository ids for which a codespace can + access the secret. You can manage the list of selected repositories + using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), + [Add a selected repository to a user secret](https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret), + and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) + endpoints. + items: + type: integer + required: + - selected_repository_ids + examples: + default: + value: + selected_repository_ids: + - '1296269' + - '1296280' + responses: + '204': + description: No Content when repositories were added to the selected list + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + "/user/codespaces/secrets/{secret_name}/repositories/{repository_id}": + put: + summary: Add a selected repository to a user secret + description: |- + Adds a repository to the selected repositories for a user's development environment secret. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/add-repository-for-secret-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret + parameters: + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: No Content when repository was added to the selected list + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + delete: + summary: Remove a selected repository from a user secret + description: |- + Removes a repository from the selected repositories for a user's development environment secret. + + The authenticated user must have Codespaces access to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/remove-repository-for-secret-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret + parameters: + - "$ref": "#/components/parameters/secret-name" + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: No Content when repository was removed from the selected list + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: secrets + "/user/codespaces/{codespace_name}": + get: + summary: Get a codespace for the authenticated user + description: |- + Gets information about a user's codespace. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#get-a-codespace-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/codespace-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + patch: + summary: Update a codespace for the authenticated user + description: |- + Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + + If you specify a new machine type it will be applied the next time your codespace is started. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/update-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#update-a-codespace-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/codespace-name" + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + machine: + description: A valid machine to transition this codespace to. + type: string + display_name: + description: Display name for this codespace + type: string + recent_folders: + description: Recently opened folders inside the codespace. It is + currently used by the clients to determine the folder path to + load the codespace in. + type: array + items: + type: string + examples: + default: + value: + machine: standardLinux + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + delete: + summary: Delete a codespace for the authenticated user + description: |- + Deletes a user's codespace. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/delete-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#delete-a-codespace-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/codespace-name" + responses: + '202': + "$ref": "#/components/responses/accepted" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/user/codespaces/{codespace_name}/exports": + post: + summary: Export a codespace for the authenticated user + description: |- + Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + + If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/export-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/codespace-name" + responses: + '202': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace-export-details" + examples: + default: + "$ref": "#/components/examples/user-export-details" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/user/codespaces/{codespace_name}/exports/{export_id}": + get: + summary: Get details about a codespace export + description: |- + Gets information about an export of a codespace. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/get-export-details-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#get-details-about-a-codespace-export + parameters: + - "$ref": "#/components/parameters/codespace-name" + - "$ref": "#/components/parameters/export-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace-export-details" + examples: + default: + "$ref": "#/components/examples/user-export-details" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/user/codespaces/{codespace_name}/machines": + get: + summary: List machine types for a codespace + description: |- + List the machine types a codespace can transition to use. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/codespace-machines-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/machines#list-machine-types-for-a-codespace + parameters: + - "$ref": "#/components/parameters/codespace-name" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - machines + properties: + total_count: + type: integer + machines: + type: array + items: + "$ref": "#/components/schemas/codespace-machine" + examples: + default: + "$ref": "#/components/examples/codespace-machines-list" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: machines + "/user/codespaces/{codespace_name}/publish": + post: + summary: Create a repository from an unpublished codespace + description: |- + Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + + The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + + This will fail for a codespace that is already published, meaning it has an associated repository. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/publish-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#create-a-repository-from-an-unpublished-codespace + parameters: + - "$ref": "#/components/parameters/codespace-name" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + description: A name for the new repository. + type: string + private: + description: Whether the new repository should be private. + type: boolean + default: false + examples: + default: + value: + repository: monalisa-octocat-hello-world-g4wpq6h95q + private: false + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace-with-full-repository" + examples: + default: + "$ref": "#/components/examples/codespace-with-full-repository" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + category: codespaces + subcategory: codespaces + "/user/codespaces/{codespace_name}/start": + post: + summary: Start a codespace for the authenticated user + description: |- + Starts a user's codespace. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/start-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/codespace-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '304': + "$ref": "#/components/responses/not_modified" + '500': + "$ref": "#/components/responses/internal_error" + '400': + "$ref": "#/components/responses/bad_request" + '401': + "$ref": "#/components/responses/requires_authentication" + '402': + description: Payment required + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '409': + "$ref": "#/components/responses/conflict" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/user/codespaces/{codespace_name}/stop": + post: + summary: Stop a codespace for the authenticated user + description: |- + Stops a user's codespace. + + OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + tags: + - codespaces + operationId: codespaces/stop-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/codespace-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/codespace" + examples: + default: + "$ref": "#/components/examples/codespace" + '500': + "$ref": "#/components/responses/internal_error" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: codespaces + subcategory: codespaces + "/user/docker/conflicts": + get: + summary: Get list of conflicting packages during Docker migration for authenticated-user + description: |- + Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + tags: + - packages + operationId: packages/list-docker-migration-conflicting-packages-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-authenticated-user + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/packages-for-user" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/user/email/visibility": + patch: + summary: Set primary email visibility for the authenticated user + description: Sets the visibility for your primary email addresses. + tags: + - users + operationId: users/set-primary-email-visibility-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + visibility: + description: Denotes whether an email is publicly visible. + type: string + enum: + - public + - private + required: + - visibility + type: object + examples: + default: + summary: Example setting the primary email address to private + value: + visibility: private + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/email" + examples: + default: + "$ref": "#/components/examples/email-items-3" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: emails + "/user/emails": + get: + summary: List email addresses for the authenticated user + description: |- + Lists all of your email addresses, and specifies which one is visible + to the public. + + OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + tags: + - users + operationId: users/list-emails-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/email" + examples: + default: + "$ref": "#/components/examples/email-items-2" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: emails + post: + summary: Add an email address for the authenticated user + description: OAuth app tokens and personal access tokens (classic) need the + `user` scope to use this endpoint. + tags: + - users + operationId: users/add-email-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user + parameters: [] + requestBody: + required: false + content: + application/json: + schema: + oneOf: + - type: object + properties: + emails: + description: Adds one or more email addresses to your GitHub account. + Must contain at least one email address. **Note:** Alternatively, + you can pass a single email address or an `array` of emails + addresses directly, but we recommend that you pass an object + using the `emails` key. + type: array + items: + type: string + example: username@example.com + minItems: 1 + example: [] + required: + - emails + example: + emails: + - octocat@github.com + - mona@github.com + - type: array + items: + type: string + example: username@example.com + minItems: 1 + - type: string + examples: + default: + summary: Example adding multiple email addresses + value: + emails: + - octocat@github.com + - mona@github.com + - octocat@octocat.org + responses: + '201': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/email" + examples: + default: + "$ref": "#/components/examples/email-items" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: emails + delete: + summary: Delete an email address for the authenticated user + description: OAuth app tokens and personal access tokens (classic) need the + `user` scope to use this endpoint. + tags: + - users + operationId: users/delete-email-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user + parameters: [] + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + description: Deletes one or more email addresses from your GitHub + account. Must contain at least one email address. **Note:** Alternatively, + you can pass a single email address or an `array` of emails addresses + directly, but we recommend that you pass an object using the `emails` + key. + properties: + emails: + description: Email addresses associated with the GitHub user account. + type: array + items: + type: string + example: username@example.com + minItems: 1 + example: + emails: + - octocat@github.com + - mona@github.com + required: + - emails + - type: array + items: + type: string + example: username@example.com + minItems: 1 + - type: string + examples: + default: + summary: Example deleting multiple email accounts + value: + emails: + - octocat@github.com + - mona@github.com + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: emails + "/user/followers": + get: + summary: List followers of the authenticated user + description: Lists the people following the authenticated user. + tags: + - users + operationId: users/list-followers-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: followers + "/user/following": + get: + summary: List the people the authenticated user follows + description: Lists the people who the authenticated user follows. + tags: + - users + operationId: users/list-followed-by-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: followers + "/user/following/{username}": + get: + summary: Check if a person is followed by the authenticated user + description: '' + tags: + - users + operationId: users/check-person-is-followed-by-authenticated + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '204': + description: if the person is followed by the authenticated user + '404': + description: if the person is not followed by the authenticated user + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: followers + put: + summary: Follow a user + description: |- + Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + + OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + tags: + - users + operationId: users/follow + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#follow-a-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: followers + delete: + summary: Unfollow a user + description: OAuth app tokens and personal access tokens (classic) need the + `user:follow` scope to use this endpoint. + tags: + - users + operationId: users/unfollow + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#unfollow-a-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: followers + "/user/gpg_keys": + get: + summary: List GPG keys for the authenticated user + description: |- + Lists the current user's GPG keys. + + OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + tags: + - users + operationId: users/list-gpg-keys-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/gpg-key" + examples: + default: + "$ref": "#/components/examples/gpg-key-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: gpg-keys + post: + summary: Create a GPG key for the authenticated user + description: |- + Adds a GPG key to the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + operationId: users/create-gpg-key-for-authenticated-user + tags: + - users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + name: + description: A descriptive name for the new key. + type: string + armored_public_key: + description: A GPG key in ASCII-armored format. + type: string + type: object + required: + - armored_public_key + examples: + default: + value: + name: Octocat's GPG Key + armored_public_key: |- + -----BEGIN PGP PUBLIC KEY BLOCK----- + Version: GnuPG v1 + + mQINBFnZ2ZIBEADQ2Z7Z7 + -----END PGP PUBLIC KEY BLOCK----- + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gpg-key" + examples: + default: + "$ref": "#/components/examples/gpg-key" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: gpg-keys + "/user/gpg_keys/{gpg_key_id}": + get: + summary: Get a GPG key for the authenticated user + description: |- + View extended details for a single GPG key. + + OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + tags: + - users + operationId: users/get-gpg-key-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/gpg-key-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/gpg-key" + examples: + default: + "$ref": "#/components/examples/gpg-key" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: gpg-keys + delete: + summary: Delete a GPG key for the authenticated user + description: |- + Removes a GPG key from the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + tags: + - users + operationId: users/delete-gpg-key-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/gpg-key-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: gpg-keys + "/user/installations": + get: + summary: List app installations accessible to the user access token + description: |- + Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + + The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + + You can find the permissions for the installation under the `permissions` key. + tags: + - apps + operationId: apps/list-installations-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: You can find the permissions for the installation under the + `permissions` key. + content: + application/json: + schema: + type: object + required: + - total_count + - installations + properties: + total_count: + type: integer + installations: + type: array + items: + "$ref": "#/components/schemas/installation" + examples: + default: + "$ref": "#/components/examples/base-installation-for-auth-user-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: installations + "/user/installations/{installation_id}/repositories": + get: + summary: List repositories accessible to the user access token + description: |- + List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + + The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + + The access the user has to each repository is included in the hash under the `permissions` key. + tags: + - apps + operationId: apps/list-installation-repos-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token + parameters: + - "$ref": "#/components/parameters/installation-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: The access the user has to each repository is included in the + hash under the `permissions` key. + content: + application/json: + schema: + type: object + required: + - total_count + - repositories + properties: + total_count: + type: integer + repository_selection: + type: string + repositories: + type: array + items: + allOf: + - "$ref": "#/components/schemas/repository" + examples: + default: + "$ref": "#/components/examples/repository-paginated" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: installations + "/user/installations/{installation_id}/repositories/{repository_id}": + put: + summary: Add a repository to an app installation + description: "Add a single repository to an installation. The authenticated + user must have admin access to the repository. \n\nThis endpoint only works + for PATs (classic) with the `repo` scope." + tags: + - apps + operationId: apps/add-repo-to-installation-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/installations#add-a-repository-to-an-app-installation + parameters: + - "$ref": "#/components/parameters/installation-id" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: installations + delete: + summary: Remove a repository from an app installation + description: "Remove a single repository from an installation. The authenticated + user must have admin access to the repository. The installation must have + the `repository_selection` of `selected`. \n\nThis endpoint only works for + PATs (classic) with the `repo` scope." + tags: + - apps + operationId: apps/remove-repo-from-installation-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/installations#remove-a-repository-from-an-app-installation + parameters: + - "$ref": "#/components/parameters/installation-id" + - "$ref": "#/components/parameters/repository-id" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '422': + description: Returned when the application is installed on `all` repositories + in the organization, or if this request would remove the last repository + that the application has access to in the organization. + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: installations + "/user/interaction-limits": + get: + summary: Get interaction restrictions for your public repositories + description: Shows which type of GitHub user can interact with your public repositories + and when the restriction expires. + tags: + - interactions + operationId: interactions/get-restrictions-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/user#get-interaction-restrictions-for-your-public-repositories + responses: + '200': + description: Default response + content: + application/json: + schema: + anyOf: + - "$ref": "#/components/schemas/interaction-limit-response" + - type: object + properties: {} + additionalProperties: false + examples: + default: + "$ref": "#/components/examples/interaction-limit-response" + '204': + description: Response when there are no restrictions + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: interactions + subcategory: user + put: + summary: Set interaction restrictions for your public repositories + description: Temporarily restricts which type of GitHub user can interact with + your public repositories. Setting the interaction limit at the user level + will overwrite any interaction limits that are set for individual repositories + owned by the user. + tags: + - interactions + operationId: interactions/set-restrictions-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/user#set-interaction-restrictions-for-your-public-repositories + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/interaction-limit" + examples: + default: + value: + limit: collaborators_only + expiry: one_month + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/interaction-limit-response" + examples: + default: + "$ref": "#/components/examples/interaction-limit-user" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: interactions + subcategory: user + delete: + summary: Remove interaction restrictions from your public repositories + description: Removes any interaction restrictions from your public repositories. + tags: + - interactions + operationId: interactions/remove-restrictions-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/user#remove-interaction-restrictions-from-your-public-repositories + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: interactions + subcategory: user + "/user/issues": + get: + summary: List user account issues assigned to the authenticated user + description: |- + List issues across owned and member repositories assigned to the authenticated user. + + > [!NOTE] + > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + tags: + - issues + operationId: issues/list-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user + parameters: + - name: filter + description: Indicates which sorts of issues to return. `assigned` means issues + assigned to you. `created` means issues created by you. `mentioned` means + issues mentioning you. `subscribed` means issues you're subscribed to updates + for. `all` or `repos` means all issues you can see, regardless of participation + or creation. + in: query + required: false + schema: + type: string + enum: + - assigned + - created + - mentioned + - subscribed + - repos + - all + default: assigned + - name: state + description: Indicates the state of the issues to return. + in: query + required: false + schema: + type: string + enum: + - open + - closed + - all + default: open + - "$ref": "#/components/parameters/labels" + - name: sort + description: What to sort results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - comments + default: created + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/issue" + examples: + default: + "$ref": "#/components/examples/issue-with-repo-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: issues + subcategory: issues + "/user/keys": + get: + summary: List public SSH keys for the authenticated user + description: |- + Lists the public SSH keys for the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + tags: + - users + operationId: users/list-public-ssh-keys-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/key" + examples: + default: + "$ref": "#/components/examples/key-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: keys + post: + summary: Create a public SSH key for the authenticated user + description: |- + Adds a public SSH key to the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `write:public_key` scope to use this endpoint. + operationId: users/create-public-ssh-key-for-authenticated-user + tags: + - users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + title: + description: A descriptive name for the new key. + type: string + example: Personal MacBook Air + key: + description: The public SSH key to add to your GitHub account. + type: string + pattern: "^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) " + required: + - key + type: object + examples: + default: + value: + title: ssh-rsa AAAAB3NzaC1yc2EAAA + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/key" + examples: + default: + "$ref": "#/components/examples/key" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: keys + "/user/keys/{key_id}": + get: + summary: Get a public SSH key for the authenticated user + description: |- + View extended details for a single public SSH key. + + OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + tags: + - users + operationId: users/get-public-ssh-key-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/key-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/key" + examples: + default: + "$ref": "#/components/examples/key" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: keys + delete: + summary: Delete a public SSH key for the authenticated user + description: |- + Removes a public SSH key from the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + tags: + - users + operationId: users/delete-public-ssh-key-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/key-id" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: keys + "/user/marketplace_purchases": + get: + summary: List subscriptions for the authenticated user + description: Lists the active subscriptions for the authenticated user. + tags: + - apps + operationId: apps/list-subscriptions-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/user-marketplace-purchase" + examples: + default: + "$ref": "#/components/examples/user-marketplace-purchase-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '401': + "$ref": "#/components/responses/requires_authentication" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/user/marketplace_purchases/stubbed": + get: + summary: List subscriptions for the authenticated user (stubbed) + description: Lists the active subscriptions for the authenticated user. + tags: + - apps + operationId: apps/list-subscriptions-for-authenticated-user-stubbed + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/user-marketplace-purchase" + examples: + default: + "$ref": "#/components/examples/user-marketplace-purchase-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: marketplace + "/user/memberships/orgs": + get: + summary: List organization memberships for the authenticated user + description: Lists all of the authenticated user's organization memberships. + tags: + - orgs + operationId: orgs/list-memberships-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user + parameters: + - name: state + description: Indicates the state of the memberships to return. If not specified, + the API returns both active and pending memberships. + in: query + required: false + schema: + type: string + enum: + - active + - pending + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/org-membership" + examples: + default: + "$ref": "#/components/examples/org-membership-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/user/memberships/orgs/{org}": + get: + summary: Get an organization membership for the authenticated user + description: If the authenticated user is an active or pending member of the + organization, this endpoint will return the user's membership. If the authenticated + user is not affiliated with the organization, a `404` is returned. This endpoint + will return a `403` if the request is made by a GitHub App that is blocked + by the organization. + tags: + - orgs + operationId: orgs/get-membership-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/org" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/org-membership" + examples: + default: + "$ref": "#/components/examples/org-membership" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + patch: + summary: Update an organization membership for the authenticated user + description: Converts the authenticated user to an active member of the organization, + if that user has a pending invitation from the organization. + tags: + - orgs + operationId: orgs/update-membership-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/members#update-an-organization-membership-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/org" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + state: + type: string + description: The state that the membership should be in. Only `"active"` + will be accepted. + enum: + - active + required: + - state + examples: + default: + value: + state: active + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/org-membership" + examples: + default: + "$ref": "#/components/examples/org-membership-2" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: members + "/user/migrations": + get: + summary: List user migrations + description: Lists all migrations a user has started. + tags: + - migrations + operationId: migrations/list-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/users#list-user-migrations + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/migration" + examples: + default: + "$ref": "#/components/examples/migration-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: users + post: + summary: Start a user migration + description: Initiates the generation of a user migration archive. + tags: + - migrations + operationId: migrations/start-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/users#start-a-user-migration + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + lock_repositories: + description: Lock the repositories being migrated at the start of + the migration + example: true + readOnly: false + type: boolean + exclude_metadata: + description: Indicates whether metadata should be excluded and only + git source should be included for the migration. + example: true + readOnly: false + type: boolean + exclude_git_data: + description: Indicates whether the repository git data should be + excluded from the migration. + example: true + readOnly: false + type: boolean + exclude_attachments: + description: Do not include attachments in the migration + example: true + readOnly: false + type: boolean + exclude_releases: + description: Do not include releases in the migration + example: true + readOnly: false + type: boolean + exclude_owner_projects: + description: Indicates whether projects owned by the organization + or users should be excluded. + example: true + readOnly: false + type: boolean + org_metadata_only: + type: boolean + example: true + description: Indicates whether this should only include organization + metadata (repositories array should be empty and will ignore other + flags). + default: false + exclude: + description: Exclude attributes from the API response to improve + performance + example: + - repositories + readOnly: false + type: array + items: + description: Allowed values that can be passed to the exclude + param. + enum: + - repositories + example: repositories + type: string + repositories: + type: array + items: + description: Repository path, owner and name + example: acme/widgets + type: string + required: + - repositories + type: object + examples: + default: + value: + repositories: + - octocat/Hello-World + lock_repositories: true + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/migration" + examples: + default: + "$ref": "#/components/examples/migration-2" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: users + "/user/migrations/{migration_id}": + get: + summary: Get a user migration status + description: |- + Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + + * `pending` - the migration hasn't started yet. + * `exporting` - the migration is in progress. + * `exported` - the migration finished successfully. + * `failed` - the migration failed. + + Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + tags: + - migrations + operationId: migrations/get-status-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/users#get-a-user-migration-status + parameters: + - "$ref": "#/components/parameters/migration-id" + - name: exclude + in: query + required: false + schema: + type: array + items: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/migration" + examples: + default: + "$ref": "#/components/examples/migration" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: users + "/user/migrations/{migration_id}/archive": + get: + summary: Download a user migration archive + description: |- + Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + + * attachments + * bases + * commit\_comments + * issue\_comments + * issue\_events + * issues + * milestones + * organizations + * projects + * protected\_branches + * pull\_request\_reviews + * pull\_requests + * releases + * repositories + * review\_comments + * schema + * users + + The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + tags: + - migrations + operationId: migrations/get-archive-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/users#download-a-user-migration-archive + parameters: + - "$ref": "#/components/parameters/migration-id" + responses: + '302': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: users + delete: + summary: Delete a user migration archive + description: Deletes a previous migration archive. Downloadable migration archives + are automatically deleted after seven days. Migration metadata, which is returned + in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) + and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) + endpoints, will continue to be available even after an archive is deleted. + tags: + - migrations + operationId: migrations/delete-archive-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/users#delete-a-user-migration-archive + parameters: + - "$ref": "#/components/parameters/migration-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: users + "/user/migrations/{migration_id}/repos/{repo_name}/lock": + delete: + summary: Unlock a user repository + description: Unlocks a repository. You can lock repositories when you [start + a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). + Once the migration is complete you can unlock each repository to begin using + it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) + if you no longer need the source data. Returns a status of `404 Not Found` + if the repository is not locked. + tags: + - migrations + operationId: migrations/unlock-repo-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/users#unlock-a-user-repository + parameters: + - "$ref": "#/components/parameters/migration-id" + - "$ref": "#/components/parameters/repo-name" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: users + "/user/migrations/{migration_id}/repositories": + get: + summary: List repositories for a user migration + description: Lists all the repositories for this user migration. + tags: + - migrations + operationId: migrations/list-repos-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration + parameters: + - "$ref": "#/components/parameters/migration-id" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: migrations + subcategory: users + "/user/orgs": + get: + summary: List organizations for the authenticated user + description: |- + List organizations for the authenticated user. + + For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + + > [!NOTE] + > Requests using a fine-grained access token will receive a `200 Success` response with an empty list. + tags: + - orgs + operationId: orgs/list-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-simple" + examples: + default: + "$ref": "#/components/examples/organization-simple-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: orgs + subcategory: orgs + "/user/packages": + get: + summary: List packages for the authenticated user's namespace + description: |- + Lists packages owned by the authenticated user within the user's namespace. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/list-packages-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace + parameters: + - name: package_type + description: The type of supported package. Packages in GitHub's Gradle registry + have the type `maven`. Docker images pushed to GitHub's Container registry + (`ghcr.io`) have the type `container`. You can use the type `docker` to + find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), + even if these have now been migrated to the Container registry. + in: query + required: true + schema: + type: string + enum: + - npm + - maven + - rubygems + - docker + - nuget + - container + - "$ref": "#/components/parameters/package-visibility" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/packages-for-user" + '400': + "$ref": "#/components/responses/package_es_list_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/user/packages/{package_type}/{package_name}": + get: + summary: Get a package for the authenticated user + description: |- + Gets a specific package for a package owned by the authenticated user. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-package-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-a-package-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/package-user" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + delete: + summary: Delete a package for the authenticated user + description: |- + Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/delete-package-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#delete-a-package-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/user/packages/{package_type}/{package_name}/restore": + post: + summary: Restore a package for the authenticated user + description: |- + Restores a package owned by the authenticated user. + + You can restore a deleted package under the following conditions: + - The package was deleted within the last 30 days. + - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/restore-package-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#restore-a-package-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - name: token + description: package token + schema: + type: string + required: false + in: query + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/user/packages/{package_type}/{package_name}/versions": + get: + summary: List package versions for a package owned by the authenticated user + description: |- + Lists package versions for a package owned by the authenticated user. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-all-package-versions-for-package-owned-by-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + - name: state + in: query + required: false + description: The state of the package, either active or deleted. + schema: + type: string + enum: + - active + - deleted + default: active + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package-version" + examples: + default: + "$ref": "#/components/examples/package-versions-for-authenticated-user" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": + get: + summary: Get a package version for the authenticated user + description: |- + Gets a specific package version for a package owned by the authenticated user. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-package-version-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-a-package-version-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/package-version-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/package-version" + examples: + default: + "$ref": "#/components/examples/package-version-authenticated-user" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + delete: + summary: Delete a package version for the authenticated user + description: |- + Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + + The authenticated user must have admin permissions in the organization to use this endpoint. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/delete-package-version-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#delete-a-package-version-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/package-version-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": + post: + summary: Restore a package version for the authenticated user + description: |- + Restores a package version owned by the authenticated user. + + You can restore a deleted package version under the following conditions: + - The package was deleted within the last 30 days. + - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/restore-package-version-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#restore-a-package-version-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/package-version-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/user/public_emails": + get: + summary: List public email addresses for the authenticated user + description: |- + Lists your publicly visible email address, which you can set with the + [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + endpoint. + + OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + tags: + - users + operationId: users/list-public-emails-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/email" + examples: + default: + "$ref": "#/components/examples/email-items-2" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: emails + "/user/repos": + get: + summary: List repositories for the authenticated user + description: |- + Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + + The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + tags: + - repos + operationId: repos/list-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user + parameters: + - name: visibility + description: Limit results to repositories with the specified visibility. + in: query + required: false + schema: + type: string + enum: + - all + - public + - private + default: all + - name: affiliation + description: "Comma-separated list of values. Can include: \n * `owner`: + Repositories that are owned by the authenticated user. \n * `collaborator`: + Repositories that the user has been added to as a collaborator. \n * `organization_member`: + Repositories that the user has access to through being a member of an organization. + This includes every repository on every team that the user is on." + in: query + required: false + schema: + type: string + default: owner,collaborator,organization_member + - name: type + description: Limit results to repositories of the specified type. Will cause + a `422` error if used in the same request as **visibility** or **affiliation**. + in: query + required: false + schema: + type: string + enum: + - all + - owner + - public + - private + - member + default: all + - name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - pushed + - full_name + default: full_name + - name: direction + description: 'The order to sort by. Default: `asc` when using `full_name`, + otherwise `desc`.' + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/since-repo-date" + - "$ref": "#/components/parameters/before-repo-date" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository" + examples: + default: + "$ref": "#/components/examples/repository-items-default-response" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: repos + subcategory: repos + post: + summary: Create a repository for the authenticated user + description: |- + Creates a new repository for the authenticated user. + + OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + tags: + - repos + operationId: repos/create-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + name: + description: The name of the repository. + type: string + example: Team Environment + description: + description: A short description of the repository. + type: string + homepage: + description: A URL with more information about the repository. + type: string + private: + description: Whether the repository is private. + default: false + type: boolean + has_issues: + description: Whether issues are enabled. + default: true + type: boolean + example: true + has_projects: + description: Whether projects are enabled. + default: true + type: boolean + example: true + has_wiki: + description: Whether the wiki is enabled. + default: true + type: boolean + example: true + has_discussions: + description: Whether discussions are enabled. + default: false + type: boolean + example: true + team_id: + description: The id of the team that will be granted access to this + repository. This is only valid when creating a repository in an + organization. + type: integer + auto_init: + description: Whether the repository is initialized with a minimal + README. + default: false + type: boolean + gitignore_template: + description: The desired language or platform to apply to the .gitignore. + example: Haskell + type: string + license_template: + description: The license keyword of the open source license for + this repository. + example: mit + type: string + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + default: true + type: boolean + example: true + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + default: true + type: boolean + example: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + default: true + type: boolean + example: true + allow_auto_merge: + description: Whether to allow Auto-merge to be used on pull requests. + default: false + type: boolean + example: false + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + default: false + type: boolean + example: false + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + Required when using `squash_merge_commit_message`. + + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + Required when using `merge_commit_message`. + + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + has_downloads: + description: Whether downloads are enabled. + default: true + type: boolean + example: true + is_template: + description: Whether this repository acts as a template that can + be used to generate new repositories. + default: false + type: boolean + example: true + required: + - name + type: object + examples: + default: + value: + name: Hello-World + description: This is your first repo! + homepage: https://github.com + private: false + is_template: true + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/full-repository" + examples: + default: + "$ref": "#/components/examples/full-repository" + headers: + Location: + example: https://api.github.com/repos/octocat/Hello-World + schema: + type: string + '401': + "$ref": "#/components/responses/requires_authentication" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '422': + "$ref": "#/components/responses/validation_failed" + '400': + "$ref": "#/components/responses/bad_request" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: repos + subcategory: repos + "/user/repository_invitations": + get: + summary: List repository invitations for the authenticated user + description: When authenticating as a user, this endpoint will list all currently + open repository invitations for that user. + tags: + - repos + operationId: repos/list-invitations-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository-invitation" + examples: + default: + "$ref": "#/components/examples/repository-invitation-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: collaborators + subcategory: invitations + "/user/repository_invitations/{invitation_id}": + patch: + summary: Accept a repository invitation + description: '' + tags: + - repos + operationId: repos/accept-invitation-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/invitations#accept-a-repository-invitation + parameters: + - "$ref": "#/components/parameters/invitation-id" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '409': + "$ref": "#/components/responses/conflict" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: collaborators + subcategory: invitations + delete: + summary: Decline a repository invitation + description: '' + tags: + - repos + operationId: repos/decline-invitation-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/collaborators/invitations#decline-a-repository-invitation + parameters: + - "$ref": "#/components/parameters/invitation-id" + responses: + '204': + description: Response + '409': + "$ref": "#/components/responses/conflict" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: collaborators + subcategory: invitations + "/user/social_accounts": + get: + summary: List social accounts for the authenticated user + description: Lists all of your social accounts. + tags: + - users + operationId: users/list-social-accounts-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/social-account" + examples: + default: + "$ref": "#/components/examples/social-account-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: social-accounts + post: + summary: Add social accounts for the authenticated user + description: |- + Add one or more social accounts to the authenticated user's profile. + + OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + tags: + - users + operationId: users/add-social-account-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + account_urls: + description: Full URLs for the social media profiles to add. + type: array + items: + type: string + example: https://twitter.com/github + example: [] + required: + - account_urls + example: + account_urls: + - https://www.linkedin.com/company/github/ + - https://twitter.com/github + examples: + default: + summary: Adding multiple social accounts + value: + account_urls: + - https://facebook.com/GitHub + - https://www.youtube.com/@GitHub + responses: + '201': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/social-account" + examples: + default: + "$ref": "#/components/examples/social-account-items" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: social-accounts + delete: + summary: Delete social accounts for the authenticated user + description: |- + Deletes one or more social accounts from the authenticated user's profile. + + OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + tags: + - users + operationId: users/delete-social-account-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/social-accounts#delete-social-accounts-for-the-authenticated-user + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + account_urls: + description: Full URLs for the social media profiles to delete. + type: array + items: + type: string + example: https://twitter.com/github + example: [] + required: + - account_urls + example: + account_urls: + - https://www.linkedin.com/company/github/ + - https://twitter.com/github + examples: + default: + summary: Deleting multiple social accounts + value: + account_urls: + - https://facebook.com/GitHub + - https://www.youtube.com/@GitHub + responses: + '204': + description: Response + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: social-accounts + "/user/ssh_signing_keys": + get: + summary: List SSH signing keys for the authenticated user + description: |- + Lists the SSH signing keys for the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + tags: + - users + operationId: users/list-ssh-signing-keys-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/ssh-signing-key" + examples: + default: + "$ref": "#/components/examples/ssh-signing-key-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + previews: [] + category: users + subcategory: ssh-signing-keys + post: + summary: Create a SSH signing key for the authenticated user + description: |- + Creates an SSH signing key for the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + operationId: users/create-ssh-signing-key-for-authenticated-user + tags: + - users + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/ssh-signing-keys#create-a-ssh-signing-key-for-the-authenticated-user + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + properties: + title: + description: A descriptive name for the new key. + type: string + example: Personal MacBook Air + key: + description: The public SSH key to add to your GitHub account. For + more information, see "[Checking for existing SSH keys](https://docs.github.com/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys)." + type: string + pattern: "^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) + |^(sk-ssh-ed25519|sk-ecdsa-sha2-nistp256)@openssh.com " + required: + - key + type: object + examples: + default: + value: + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + title: ssh-rsa AAAAB3NzaC1yc2EAAA + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/ssh-signing-key" + examples: + default: + "$ref": "#/components/examples/ssh-signing-key" + '422': + "$ref": "#/components/responses/validation_failed" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: ssh-signing-keys + "/user/ssh_signing_keys/{ssh_signing_key_id}": + get: + summary: Get an SSH signing key for the authenticated user + description: |- + Gets extended details for an SSH signing key. + + OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + tags: + - users + operationId: users/get-ssh-signing-key-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/ssh-signing-keys#get-an-ssh-signing-key-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/ssh-signing-key-id" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/ssh-signing-key" + examples: + default: + "$ref": "#/components/examples/ssh-signing-key" + '404': + "$ref": "#/components/responses/not_found" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: ssh-signing-keys + delete: + summary: Delete an SSH signing key for the authenticated user + description: |- + Deletes an SSH signing key from the authenticated user's GitHub account. + + OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + tags: + - users + operationId: users/delete-ssh-signing-key-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/ssh-signing-keys#delete-an-ssh-signing-key-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/ssh-signing-key-id" + responses: + '204': + description: Response + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: ssh-signing-keys + "/user/starred": + get: + summary: List repositories starred by the authenticated user + description: |- + Lists repositories the authenticated user has starred. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + tags: + - activity + operationId: activity/list-repos-starred-by-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/sort-starred" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/repository" + examples: + default-response: + "$ref": "#/components/examples/repository-items-default-response" + application/vnd.github.v3.star+json: + schema: + type: array + items: + "$ref": "#/components/schemas/starred-repository" + examples: + alternative-response-with-star-creation-timestamps: + "$ref": "#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: starring + "/user/starred/{owner}/{repo}": + get: + summary: Check if a repository is starred by the authenticated user + description: Whether the authenticated user has starred the repository. + tags: + - activity + operationId: activity/check-repo-is-starred-by-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response if this repository is starred by you + '404': + description: Not Found if this repository is not starred by you + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '401': + "$ref": "#/components/responses/requires_authentication" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: starring + put: + summary: Star a repository for the authenticated user + description: Note that you'll need to set `Content-Length` to zero when calling + out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + tags: + - activity + operationId: activity/star-repo-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/starring#star-a-repository-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '401': + "$ref": "#/components/responses/requires_authentication" + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: starring + delete: + summary: Unstar a repository for the authenticated user + description: Unstar a repository that the authenticated user has previously + starred. + tags: + - activity + operationId: activity/unstar-repo-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/starring#unstar-a-repository-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/owner" + - "$ref": "#/components/parameters/repo" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '401': + "$ref": "#/components/responses/requires_authentication" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: starring + "/user/subscriptions": + get: + summary: List repositories watched by the authenticated user + description: Lists repositories the authenticated user is watching. + tags: + - activity + operationId: activity/list-watched-repos-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: watching + "/user/teams": + get: + summary: List teams for the authenticated user + description: |- + List all of the teams across all of the organizations to which the authenticated + user belongs. + + OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + + When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + tags: + - teams + operationId: teams/list-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/team-full" + examples: + default: + "$ref": "#/components/examples/team-full-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: teams + subcategory: teams + "/user/{account_id}": + get: + summary: Get a user using their ID + description: |- + Provides publicly available information about someone with a GitHub account. This method takes their durable user `ID` instead of their `login`, which can change over time. + + If you are requesting information about an [Enterprise Managed User](https://docs.github.com/enterprise-cloud@latest/admin/managing-iam/understanding-iam-for-enterprises/about-enterprise-managed-users), or a GitHub App bot that is installed in an organization that uses Enterprise Managed Users, your requests must be authenticated as a user or GitHub App that has access to the organization to view that account's information. If you are not authorized, the request will return a `404 Not Found` status. + + The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be public which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + + The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see [Emails API](https://docs.github.com/rest/users/emails). + tags: + - users + operationId: users/get-by-id + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/users#get-a-user-using-their-id + parameters: + - "$ref": "#/components/parameters/account-id" + responses: + '200': + description: Response + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/private-user" + - "$ref": "#/components/schemas/public-user" + discriminator: + propertyName: user_view_type + mapping: + public: "#/components/schemas/public-user" + private: "#/components/schemas/private-user" + examples: + default-response: + "$ref": "#/components/examples/public-user-default-response" + response-with-git-hub-plan-information: + "$ref": "#/components/examples/public-user-response-with-git-hub-plan-information" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: users + "/user/{user_id}/projectsV2/{project_number}/drafts": + post: + summary: Create draft item for user owned project + description: Create draft issue item for the specified user owned project. + tags: + - projects + operationId: projects/create-draft-item-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/drafts#create-draft-item-for-user-owned-project + parameters: + - "$ref": "#/components/parameters/user-id" + - "$ref": "#/components/parameters/project-number" + requestBody: + required: true + description: Details of the draft item to create in the project. + content: + application/json: + schema: + type: object + properties: + title: + type: string + description: The title of the draft issue item to create in the + project. + body: + type: string + description: The body content of the draft issue item to create + in the project. + required: + - title + examples: + title: + summary: Example with Sample Draft Issue Title + value: + title: Sample Draft Issue Title + body: + summary: Example with Sample Draft Issue Title and Body + value: + title: Sample Draft Issue Title + body: This is the body content of the draft issue. + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-simple" + examples: + draft_issue: + "$ref": "#/components/examples/projects-v2-item-simple" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: drafts + "/users": + get: + summary: List users + description: |- + Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + + Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + tags: + - users + operationId: users/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/users#list-users + parameters: + - "$ref": "#/components/parameters/since-user" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + example: ; rel="next" + schema: + type: string + '304': + "$ref": "#/components/responses/not_modified" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: users + "/users/{user_id}/projectsV2/{project_number}/views": + post: + summary: Create a view for a user-owned project + description: Create a new view in a user-owned project. Views allow you to customize + how items in a project are displayed and filtered. + tags: + - projects + operationId: projects/create-view-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/views#create-a-view-for-a-user-owned-project + parameters: + - "$ref": "#/components/parameters/user-id" + - "$ref": "#/components/parameters/project-number" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the view. + example: Sprint Board + layout: + type: string + description: The layout of the view. + enum: + - table + - board + - roadmap + example: board + filter: + type: string + description: The filter query for the view. See [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) + for more information. + example: is:issue is:open + visible_fields: + type: array + description: |- + `visible_fields` is not applicable to `roadmap` layout views. + For `table` and `board` layouts, this represents the field IDs that should be visible in the view. If not provided, the default visible fields will be used. + items: + type: integer + example: + - 123 + - 456 + - 789 + required: + - name + - layout + additionalProperties: false + examples: + table_view: + summary: Create a table view + value: + name: All Issues + layout: table + filter: is:issue + visible_fields: + - 123 + - 456 + - 789 + board_view: + summary: Create a board view with filter + value: + name: Sprint Board + layout: board + filter: is:issue is:open label:sprint + visible_fields: + - 123 + - 456 + - 789 + roadmap_view: + summary: Create a roadmap view + value: + name: Product Roadmap + layout: roadmap + responses: + '201': + description: Response for creating a view in a user-owned project. + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-view" + examples: + table_view: + summary: Response for creating a table view + value: + "$ref": "#/components/examples/projects-v2-view" + board_view: + summary: Response for creating a board view with filter + value: + "$ref": "#/components/examples/projects-v2-view" + roadmap_view: + summary: Response for creating a roadmap view + value: + "$ref": "#/components/examples/projects-v2-view" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + '503': + description: Service unavailable + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: projects + subcategory: views + "/users/{username}": + get: + summary: Get a user + description: |- + Provides publicly available information about someone with a GitHub account. + + If you are requesting information about an [Enterprise Managed User](https://docs.github.com/enterprise-cloud@latest/admin/managing-iam/understanding-iam-for-enterprises/about-enterprise-managed-users), or a GitHub App bot that is installed in an organization that uses Enterprise Managed Users, your requests must be authenticated as a user or GitHub App that has access to the organization to view that account's information. If you are not authorized, the request will return a `404 Not Found` status. + + The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be public which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + + The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see [Emails API](https://docs.github.com/rest/users/emails). + tags: + - users + operationId: users/get-by-username + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/users#get-a-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/private-user" + - "$ref": "#/components/schemas/public-user" + discriminator: + propertyName: user_view_type + mapping: + public: "#/components/schemas/public-user" + private: "#/components/schemas/private-user" + examples: + default-response: + "$ref": "#/components/examples/public-user-default-response" + response-with-git-hub-plan-information: + "$ref": "#/components/examples/public-user-response-with-git-hub-plan-information" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: users + "/users/{username}/attestations/bulk-list": + post: + summary: List attestations by bulk subject digests + description: |- + List a collection of artifact attestations associated with any entry in a list of subject digests owned by a user. + + The collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required. + + **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + tags: + - users + operationId: users/list-attestations-bulk + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/attestations#list-attestations-by-bulk-subject-digests + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/username" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + subject_digests: + type: array + items: + type: string + description: List of subject digests to fetch attestations for. + minItems: 1 + maxItems: 1024 + predicate_type: + type: string + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text + for custom predicate types. + required: + - subject_digests + examples: + default: + "$ref": "#/components/examples/bulk-subject-digest-body" + withPredicateType: + "$ref": "#/components/examples/bulk-subject-digest-body-with-predicate-type" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + attestations_subject_digests: + type: object + additionalProperties: + nullable: true + type: array + items: + type: object + properties: + bundle: + type: object + properties: + mediaType: + type: string + verificationMaterial: + type: object + properties: {} + additionalProperties: true + dsseEnvelope: + type: object + properties: {} + additionalProperties: true + description: The bundle of the attestation. + repository_id: + type: integer + bundle_url: + type: string + description: Mapping of subject digest to bundles. + page_info: + type: object + properties: + has_next: + type: boolean + description: Indicates whether there is a next page. + has_previous: + type: boolean + description: Indicates whether there is a previous page. + next: + type: string + description: The cursor to the next page. + previous: + type: string + description: The cursor to the previous page. + description: Information about the current page. + examples: + default: + "$ref": "#/components/examples/list-attestations-bulk" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: attestations + "/users/{username}/attestations/delete-request": + post: + summary: Delete attestations in bulk + description: Delete artifact attestations in bulk by either subject digests + or unique ID. + tags: + - users + operationId: users/delete-attestations-bulk + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/attestations#delete-attestations-in-bulk + parameters: + - "$ref": "#/components/parameters/username" + requestBody: + required: true + content: + application/json: + schema: + type: object + oneOf: + - properties: + subject_digests: + type: array + items: + type: string + description: List of subject digests associated with the artifact + attestations to delete. + minItems: 1 + maxItems: 1024 + required: + - subject_digests + - properties: + attestation_ids: + type: array + items: + type: integer + description: List of unique IDs associated with the artifact attestations + to delete. + minItems: 1 + maxItems: 1024 + required: + - attestation_ids + description: The request body must include either `subject_digests` + or `attestation_ids`, but not both. + examples: + by-subject-digests: + summary: Delete by subject digests + value: + subject_digests: + - sha256:abc123 + - sha512:def456 + by-attestation-ids: + summary: Delete by attestation IDs + value: + attestation_ids: + - 111 + - 222 + responses: + '200': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: attestations + "/users/{username}/attestations/digest/{subject_digest}": + delete: + summary: Delete attestations by subject digest + description: Delete an artifact attestation by subject digest. + tags: + - users + operationId: users/delete-attestations-by-subject-digest + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/attestations#delete-attestations-by-subject-digest + parameters: + - "$ref": "#/components/parameters/username" + - name: subject_digest + description: Subject Digest + in: path + required: true + schema: + type: string + x-multi-segment: true + responses: + '200': + description: Response + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: attestations + "/users/{username}/attestations/{attestation_id}": + delete: + summary: Delete attestations by ID + description: Delete an artifact attestation by unique ID that is associated + with a repository owned by a user. + tags: + - users + operationId: users/delete-attestations-by-id + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/attestations#delete-attestations-by-id + parameters: + - "$ref": "#/components/parameters/username" + - name: attestation_id + description: Attestation ID + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: attestations + "/users/{username}/attestations/{subject_digest}": + get: + summary: List attestations + description: |- + List a collection of artifact attestations with a given subject digest that are associated with repositories owned by a user. + + The collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required. + + **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + tags: + - users + operationId: users/list-attestations + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/attestations#list-attestations + parameters: + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/username" + - name: subject_digest + description: Subject Digest + in: path + required: true + schema: + type: string + x-multi-segment: true + - name: predicate_type + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text + for custom predicate types. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + attestations: + type: array + items: + type: object + properties: + bundle: + type: object + properties: + mediaType: + type: string + verificationMaterial: + type: object + properties: {} + additionalProperties: true + dsseEnvelope: + type: object + properties: {} + additionalProperties: true + description: |- + The attestation's Sigstore Bundle. + Refer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information. + repository_id: + type: integer + bundle_url: + type: string + initiator: + type: string + examples: + default: + "$ref": "#/components/examples/list-attestations" + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/empty-object" + examples: + default: + value: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: attestations + "/users/{username}/docker/conflicts": + get: + summary: Get list of conflicting packages during Docker migration for user + description: |- + Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + tags: + - packages + operationId: packages/list-docker-migration-conflicting-packages-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-user + parameters: + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/packages-for-user" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/users/{username}/events": + get: + summary: List events for the authenticated user + description: |- + If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. _Optional_: use the fine-grained token with following permission set to view private events: "Events" user permissions (read). + + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-events-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + default: + "$ref": "#/components/examples/user-events-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/users/{username}/events/orgs/{org}": + get: + summary: List organization events for the authenticated user + description: |- + This is the user's organization dashboard. You must be authenticated as the user to view this. + + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-org-events-for-authenticated-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/org" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + default: + "$ref": "#/components/examples/user-org-events-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: activity + subcategory: events + "/users/{username}/events/public": + get: + summary: List public events for a user + description: |- + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-public-events-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-public-events-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + default: + "$ref": "#/components/examples/user-public-events-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/users/{username}/followers": + get: + summary: List followers of a user + description: Lists the people following the specified user. + tags: + - users + operationId: users/list-followers-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#list-followers-of-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: followers + "/users/{username}/following": + get: + summary: List the people a user follows + description: Lists the people who the specified user follows. + tags: + - users + operationId: users/list-following-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#list-the-people-a-user-follows + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/simple-user" + examples: + default: + "$ref": "#/components/examples/simple-user-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: followers + "/users/{username}/following/{target_user}": + get: + summary: Check if a user follows another user + description: '' + tags: + - users + operationId: users/check-following-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user + parameters: + - "$ref": "#/components/parameters/username" + - name: target_user + in: path + required: true + schema: + type: string + responses: + '204': + description: if the user follows the target user + '404': + description: if the user does not follow the target user + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: followers + "/users/{username}/gists": + get: + summary: List gists for a user + description: 'Lists public gists for the specified user:' + tags: + - gists + operationId: gists/list-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/gists/gists#list-gists-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/since" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/base-gist" + examples: + default: + "$ref": "#/components/examples/base-gist-items" + headers: + Link: + "$ref": "#/components/headers/link" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: gists + subcategory: gists + "/users/{username}/gpg_keys": + get: + summary: List GPG keys for a user + description: Lists the GPG keys for a user. This information is accessible by + anyone. + tags: + - users + operationId: users/list-gpg-keys-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/gpg-key" + examples: + default: + "$ref": "#/components/examples/gpg-key-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: gpg-keys + "/users/{username}/hovercard": + get: + summary: Get contextual information for a user + description: |- + Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + + The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository, you would use a `subject_type` value of `repository` and a `subject_id` value of `1300192` (the ID of the `Spoon-Knife` repository). + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - users + operationId: users/get-context-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/users#get-contextual-information-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - name: subject_type + description: Identifies which additional information you'd like to receive + about the person's hovercard. Can be `organization`, `repository`, `issue`, + `pull_request`. **Required** when using `subject_id`. + in: query + required: false + schema: + type: string + enum: + - organization + - repository + - issue + - pull_request + - name: subject_id + description: Uses the ID for the `subject_type` you specified. **Required** + when using `subject_type`. + in: query + required: false + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/hovercard" + examples: + default: + "$ref": "#/components/examples/hovercard" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: users + subcategory: users + "/users/{username}/installation": + get: + summary: Get a user installation for the authenticated app + description: |- + Enables an authenticated GitHub App to find the user’s installation information. + + You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + tags: + - apps + operationId: apps/get-user-installation + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app + parameters: + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/installation" + examples: + default: + "$ref": "#/components/examples/installation" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: apps + subcategory: apps + "/users/{username}/keys": + get: + summary: List public keys for a user + description: Lists the _verified_ public SSH keys for a user. This is accessible + by anyone. + tags: + - users + operationId: users/list-public-keys-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/keys#list-public-keys-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/key-simple" + examples: + default: + "$ref": "#/components/examples/key-simple-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: keys + "/users/{username}/orgs": + get: + summary: List organizations for a user + description: |- + List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + + This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + tags: + - orgs + operationId: orgs/list-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/organization-simple" + examples: + default: + "$ref": "#/components/examples/organization-simple-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: orgs + "/users/{username}/packages": + get: + summary: List packages for a user + description: |- + Lists all packages in a user's namespace for which the requesting user has access. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/list-packages-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#list-packages-for-a-user + parameters: + - name: package_type + description: The type of supported package. Packages in GitHub's Gradle registry + have the type `maven`. Docker images pushed to GitHub's Container registry + (`ghcr.io`) have the type `container`. You can use the type `docker` to + find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), + even if these have now been migrated to the Container registry. + in: query + required: true + schema: + type: string + enum: + - npm + - maven + - rubygems + - docker + - nuget + - container + - "$ref": "#/components/parameters/package-visibility" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/page" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/packages-for-user" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '400': + "$ref": "#/components/responses/package_es_list_error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/users/{username}/packages/{package_type}/{package_name}": + get: + summary: Get a package for a user + description: |- + Gets a specific package metadata for a public package owned by a user. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-package-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-a-package-for-a-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/package" + examples: + default: + "$ref": "#/components/examples/package-user" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + delete: + summary: Delete a package for a user + description: |- + Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + + If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/delete-package-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#delete-a-package-for-a-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/username" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/users/{username}/packages/{package_type}/{package_name}/restore": + post: + summary: Restore a package for a user + description: |- + Restores an entire package for a user. + + You can restore a deleted package under the following conditions: + - The package was deleted within the last 30 days. + - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + + If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/restore-package-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#restore-a-package-for-a-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/username" + - name: token + description: package token + schema: + type: string + required: false + in: query + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/users/{username}/packages/{package_type}/{package_name}/versions": + get: + summary: List package versions for a package owned by a user + description: |- + Lists package versions for a public package owned by a specified user. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-all-package-versions-for-package-owned-by-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/package-version" + examples: + default: + "$ref": "#/components/examples/package-versions-for-user" + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": + get: + summary: Get a package version for a user + description: |- + Gets a specific package version for a public package owned by a specified user. + + OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/get-package-version-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#get-a-package-version-for-a-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/package-version-id" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/package-version" + examples: + default: + "$ref": "#/components/examples/package-version-user" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + delete: + summary: Delete package version for a user + description: |- + Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + + If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/delete-package-version-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#delete-package-version-for-a-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/package-version-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": + post: + summary: Restore package version for a user + description: |- + Restores a specific package version for a user. + + You can restore a deleted package under the following conditions: + - The package was deleted within the last 30 days. + - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + + If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + + OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + tags: + - packages + operationId: packages/restore-package-version-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/packages/packages#restore-package-version-for-a-user + parameters: + - "$ref": "#/components/parameters/package-type" + - "$ref": "#/components/parameters/package-name" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/package-version-id" + responses: + '204': + description: Response + '404': + "$ref": "#/components/responses/not_found" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: packages + subcategory: packages + "/users/{username}/projectsV2": + get: + summary: List projects for user + description: List all projects owned by a specific user accessible by the authenticated + user. + tags: + - projects + operationId: projects/list-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/projects#list-projects-for-user + parameters: + - "$ref": "#/components/parameters/username" + - name: q + description: Limit results to projects of the specified type. + in: query + required: false + schema: + type: string + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2" + examples: + default: + "$ref": "#/components/examples/projects-v2" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: projects + "/users/{username}/projectsV2/{project_number}": + get: + summary: Get project for user + description: Get a specific user-owned project. + tags: + - projects + operationId: projects/get-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/projects#get-project-for-user + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2" + examples: + default: + "$ref": "#/components/examples/projects-v2" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: projects + "/users/{username}/projectsV2/{project_number}/fields": + get: + summary: List project fields for user + description: List all fields for a specific user-owned project. + tags: + - projects + operationId: projects/list-fields-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/fields#list-project-fields-for-user + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2-field" + examples: + default: + "$ref": "#/components/examples/projects-v2-field-items" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: fields + post: + summary: Add field to user owned project + description: Add a field to a specified user owned project. + tags: + - projects + operationId: projects/add-field-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/fields#add-field-to-user-owned-project + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/project-number" + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - type: object + properties: + name: + type: string + description: The name of the field. + data_type: + type: string + description: The field's data type. + enum: + - text + - number + - date + required: + - name + - data_type + additionalProperties: false + - type: object + properties: + name: + type: string + description: The name of the field. + data_type: + type: string + description: The field's data type. + enum: + - single_select + single_select_options: + type: array + description: The options available for single select fields. At + least one option must be provided when creating a single select + field. + items: + "$ref": "#/components/schemas/projects-v2-field-single-select-option" + required: + - name + - data_type + - single_select_options + additionalProperties: false + - type: object + properties: + name: + type: string + description: The name of the field. + data_type: + type: string + description: The field's data type. + enum: + - iteration + iteration_configuration: + "$ref": "#/components/schemas/projects-v2-field-iteration-configuration" + required: + - name + - data_type + - iteration_configuration + additionalProperties: false + examples: + text_field: + summary: Create a text field + value: + name: Team notes + data_type: text + number_field: + summary: Create a number field + value: + name: Story points + data_type: number + date_field: + summary: Create a date field + value: + name: Due date + data_type: date + single_select_field: + "$ref": "#/components/examples/projects-v2-field-single-select-request" + iteration_field: + "$ref": "#/components/examples/projects-v2-field-iteration-request" + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-field" + examples: + text_field: + "$ref": "#/components/examples/projects-v2-field-text" + number_field: + "$ref": "#/components/examples/projects-v2-field-number" + date_field: + "$ref": "#/components/examples/projects-v2-field-date" + single_select_field: + "$ref": "#/components/examples/projects-v2-field-single-select" + iteration_field: + "$ref": "#/components/examples/projects-v2-field-iteration" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: fields + "/users/{username}/projectsV2/{project_number}/fields/{field_id}": + get: + summary: Get project field for user + description: Get a specific field for a user-owned project. + tags: + - projects + operationId: projects/get-field-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/fields#get-project-field-for-user + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/field-id" + - "$ref": "#/components/parameters/username" + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-field" + examples: + default: + "$ref": "#/components/examples/projects-v2-field" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: fields + "/users/{username}/projectsV2/{project_number}/items": + get: + summary: List items for a user owned project + description: List all items for a specific user-owned project accessible by + the authenticated user. + tags: + - projects + operationId: projects/list-items-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#list-items-for-a-user-owned-project + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + - name: q + description: Search query to filter items, see [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) + for more information. + in: query + required: false + schema: + type: string + - name: fields + description: |- + Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + + Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789` + in: query + required: false + schema: + oneOf: + - type: string + - type: array + maxItems: 50 + items: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + default: + "$ref": "#/components/examples/projects-v2-item-with-content" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + post: + summary: Add item to user owned project + description: Add an issue or pull request item to the specified user owned project. + tags: + - projects + operationId: projects/add-item-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#add-item-to-user-owned-project + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/project-number" + requestBody: + required: true + description: Details of the item to add to the project. You can specify either + the unique ID or the repository owner, name, and issue/PR number. + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + type: + type: string + enum: + - Issue + - PullRequest + description: The type of item to add to the project. Must be either + Issue or PullRequest. + id: + type: integer + description: The unique identifier of the issue or pull request + to add to the project. + owner: + type: string + description: The repository owner login. + repo: + type: string + description: The repository name. + number: + type: integer + description: The issue or pull request number. + required: + - type + oneOf: + - required: + - id + - required: + - owner + - repo + - number + examples: + issue_with_id: + summary: Add an issue using its unique ID + value: + type: Issue + id: 3 + pull_request_with_id: + summary: Add a pull request using its unique ID + value: + type: PullRequest + id: 3 + issue_with_nwo: + summary: Add an issue using repository owner, name, and issue number + value: + type: Issue + owner: octocat + repo: hello-world + number: 42 + pull_request_with_nwo: + summary: Add a pull request using repository owner, name, and PR number + value: + type: PullRequest + owner: octocat + repo: hello-world + number: 123 + responses: + '201': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-simple" + examples: + issue_with_id: + summary: Response for adding an issue using its unique ID + value: + "$ref": "#/components/examples/projects-v2-item-simple" + pull_request_with_id: + summary: Response for adding a pull request using its unique ID + value: + "$ref": "#/components/examples/projects-v2-item-simple" + issue_with_nwo: + summary: Response for adding an issue using repository owner, name, + and issue number + value: + "$ref": "#/components/examples/projects-v2-item-simple" + pull_request_with_nwo: + summary: Response for adding a pull request using repository owner, + name, and PR number + value: + "$ref": "#/components/examples/projects-v2-item-simple" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + "/users/{username}/projectsV2/{project_number}/items/{item_id}": + get: + summary: Get an item for a user owned project + description: Get a specific item from a user-owned project. + tags: + - projects + operationId: projects/get-user-item + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#get-an-item-for-a-user-owned-project + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/item-id" + - name: fields + description: |- + Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + + Example: fields[]=123&fields[]=456&fields[]=789 or fields=123,456,789 + in: query + required: false + schema: + oneOf: + - type: string + - type: array + maxItems: 50 + items: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + default: + "$ref": "#/components/examples/projects-v2-item-with-content" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + patch: + summary: Update project item for user + description: Update a specific item in a user-owned project. + tags: + - projects + operationId: projects/update-item-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#update-project-item-for-user + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/item-id" + requestBody: + required: true + description: Field updates to apply to the project item. Only text, number, + date, single select, and iteration fields are supported. + content: + application/json: + schema: + type: object + properties: + fields: + type: array + description: A list of field updates to apply. + items: + type: object + properties: + id: + type: integer + description: The ID of the project field to update. + value: + description: |- + The new value for the field: + - For text, number, and date fields, provide the new value directly. + - For single select and iteration fields, provide the ID of the option or iteration. + - To clear the field, set this to null. + nullable: true + oneOf: + - type: string + - type: number + required: + - id + - value + required: + - fields + examples: + text_field: + summary: Update a text field + value: + fields: + - id: 123 + value: Updated text value + number_field: + summary: Update a number field + value: + fields: + - id: 456 + value: 42.5 + date_field: + summary: Update a date field + value: + fields: + - id: 789 + value: '2023-10-05' + single_select_field: + summary: Update a single select field + value: + fields: + - id: 789 + value: 47fc9ee4 + iteration_field: + summary: Update an iteration field + value: + fields: + - id: 1011 + value: 866ee5b8 + responses: + '200': + description: Response + content: + application/json: + schema: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + text_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + number_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + date_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + single_select_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + iteration_field: + "$ref": "#/components/examples/projects-v2-item-with-content" + '401': + "$ref": "#/components/responses/requires_authentication" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '422': + "$ref": "#/components/responses/validation_failed" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + delete: + summary: Delete project item for user + description: Delete a specific item from a user-owned project. + tags: + - projects + operationId: projects/delete-item-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#delete-project-item-for-user + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/item-id" + responses: + '204': + description: Response + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: projects + subcategory: items + "/users/{username}/projectsV2/{project_number}/views/{view_number}/items": + get: + summary: List items for a user project view + description: List items in a user project with the saved view's filter applied. + tags: + - projects + operationId: projects/list-view-items-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/projects/items#list-items-for-a-user-project-view + parameters: + - "$ref": "#/components/parameters/project-number" + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/view-number" + - name: fields + description: |- + Limit results to specific fields, by their IDs. If not specified, the + title field will be returned. + + Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789` + in: query + required: false + schema: + oneOf: + - type: string + - type: array + maxItems: 50 + items: + type: string + - "$ref": "#/components/parameters/pagination-before" + - "$ref": "#/components/parameters/pagination-after" + - "$ref": "#/components/parameters/per-page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/projects-v2-item-with-content" + examples: + default: + "$ref": "#/components/examples/projects-v2-item-with-content" + headers: + Link: + "$ref": "#/components/headers/link" + '304': + "$ref": "#/components/responses/not_modified" + '403': + "$ref": "#/components/responses/forbidden" + '401': + "$ref": "#/components/responses/requires_authentication" + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: false + category: projects + subcategory: items + "/users/{username}/received_events": + get: + summary: List events received by the authenticated user + description: |- + These are events that you've received by watching repositories and following users. If you are authenticated as the + given user, you will see private events. Otherwise, you'll only see public events. + + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-received-events-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + default: + "$ref": "#/components/examples/user-received-events-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/users/{username}/received_events/public": + get: + summary: List public events received by a user + description: |- + > [!NOTE] + > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + tags: + - activity + operationId: activity/list-received-public-events-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/event" + examples: + default: + "$ref": "#/components/examples/user-received-public-events-items" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: events + "/users/{username}/repos": + get: + summary: List repositories for a user + description: Lists public repositories for the specified user. + tags: + - repos + operationId: repos/list-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#list-repositories-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - name: type + description: Limit results to repositories of the specified type. + in: query + required: false + schema: + type: string + enum: + - all + - owner + - member + default: owner + - name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - pushed + - full_name + default: full_name + - name: direction + description: 'The order to sort by. Default: `asc` when using `full_name`, + otherwise `desc`.' + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + "/users/{username}/settings/billing/premium_request/usage": + get: + summary: Get billing premium request usage report for a user + description: |- + Gets a report of premium request usage for a user. + + **Note:** Only data from the past 24 months is accessible via this endpoint. + tags: + - billing + operationId: billing/get-github-billing-premium-request-usage-report-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-premium-request-usage-report-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/billing-usage-report-year" + - "$ref": "#/components/parameters/billing-usage-report-month-default" + - "$ref": "#/components/parameters/billing-usage-report-day" + - "$ref": "#/components/parameters/billing-usage-report-model" + - "$ref": "#/components/parameters/billing-usage-report-product" + responses: + '200': + "$ref": "#/components/responses/billing_premium_request_usage_report_user" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: usage + "/users/{username}/settings/billing/usage": + get: + summary: Get billing usage report for a user + description: |- + Gets a report of the total usage for a user. + + **Note:** This endpoint is only available to users with access to the enhanced billing platform. + tags: + - billing + operationId: billing/get-github-billing-usage-report-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-usage-report-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/billing-usage-report-year" + - "$ref": "#/components/parameters/billing-usage-report-month" + - "$ref": "#/components/parameters/billing-usage-report-day" + responses: + '200': + "$ref": "#/components/responses/billing_usage_report_user" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: usage + "/users/{username}/settings/billing/usage/summary": + get: + summary: Get billing usage summary for a user + description: |- + > [!NOTE] + > This endpoint is in public preview and is subject to change. + + Gets a summary report of usage for a user. + + **Note:** Only data from the past 24 months is accessible via this endpoint. + tags: + - billing + operationId: billing/get-github-billing-usage-summary-report-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-usage-summary-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/billing-usage-report-year" + - "$ref": "#/components/parameters/billing-usage-report-month-default" + - "$ref": "#/components/parameters/billing-usage-report-day" + - "$ref": "#/components/parameters/billing-usage-report-repository" + - "$ref": "#/components/parameters/billing-usage-report-product" + - "$ref": "#/components/parameters/billing-usage-report-sku" + responses: + '200': + "$ref": "#/components/responses/billing_usage_summary_report_user" + '400': + "$ref": "#/components/responses/bad_request" + '403': + "$ref": "#/components/responses/forbidden" + '404': + "$ref": "#/components/responses/not_found" + '500': + "$ref": "#/components/responses/internal_error" + '503': + "$ref": "#/components/responses/service_unavailable" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: usage + "/users/{username}/social_accounts": + get: + summary: List social accounts for a user + description: Lists social media accounts for a user. This endpoint is accessible + by anyone. + tags: + - users + operationId: users/list-social-accounts-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/social-account" + examples: + default: + "$ref": "#/components/examples/social-account-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: social-accounts + "/users/{username}/ssh_signing_keys": + get: + summary: List SSH signing keys for a user + description: Lists the SSH signing keys for a user. This operation is accessible + by anyone. + tags: + - users + operationId: users/list-ssh-signing-keys-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/ssh-signing-key" + examples: + default: + "$ref": "#/components/examples/ssh-signing-key-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: users + subcategory: ssh-signing-keys + "/users/{username}/starred": + get: + summary: List repositories starred by a user + description: |- + Lists repositories a user has starred. + + This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + + - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + tags: + - activity + operationId: activity/list-repos-starred-by-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/sort-starred" + - "$ref": "#/components/parameters/direction" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + anyOf: + - type: array + items: + "$ref": "#/components/schemas/starred-repository" + - type: array + items: + "$ref": "#/components/schemas/repository" + examples: + default-response: + "$ref": "#/components/examples/repository-items-default-response" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: starring + "/users/{username}/subscriptions": + get: + summary: List repositories watched by a user + description: Lists repositories a user is watching. + tags: + - activity + operationId: activity/list-repos-watched-by-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user + parameters: + - "$ref": "#/components/parameters/username" + - "$ref": "#/components/parameters/per-page" + - "$ref": "#/components/parameters/page" + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/minimal-repository" + examples: + default: + "$ref": "#/components/examples/minimal-repository-items" + headers: + Link: + "$ref": "#/components/headers/link" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: activity + subcategory: watching + "/versions": + get: + summary: Get all API versions + description: Get all supported GitHub API versions. + tags: + - meta + operationId: meta/get-all-versions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/meta/meta#get-all-api-versions + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + type: string + format: date + example: '2021-01-01' + examples: + default: + value: + - '2021-01-01' + - '2021-06-01' + - '2022-01-01' + '404': + "$ref": "#/components/responses/not_found" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: meta + subcategory: meta + "/zen": + get: + summary: Get the Zen of GitHub + description: Get a random sentence from the Zen of GitHub + tags: + - meta + operationId: meta/get-zen + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/meta/meta#get-the-zen-of-github + responses: + '200': + description: Response + content: + text/plain: + schema: + type: string + examples: + default: + summary: Example response + value: Responsive is better than fast + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: meta + subcategory: meta +x-webhooks: + branch-protection-configuration-disabled: + post: + summary: |- + This event occurs when there is a change to branch protection configurations for a repository. + For more information, see "[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches)." + For information about using the APIs to manage branch protection rules, see "[Branch protection rule](https://docs.github.com/graphql/reference/objects#branchprotectionrule)" in the GraphQL documentation or "[Branch protection](https://docs.github.com/rest/branches/branch-protection)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository permission. + description: All branch protections were disabled for a repository. + operationId: branch-protection-configuration/disabled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_configuration + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-branch-protection-configuration-disabled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: branch_protection_configuration + supported-webhook-types: + - repository + - organization + - app + branch-protection-configuration-enabled: + post: + summary: |- + This event occurs when there is a change to branch protection configurations for a repository. + For more information, see "[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches)." + For information about using the APIs to manage branch protection rules, see "[Branch protection rule](https://docs.github.com/graphql/reference/objects#branchprotectionrule)" in the GraphQL documentation or "[Branch protection](https://docs.github.com/rest/branches/branch-protection)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository permission. + description: All branch protections were enabled for a repository. + operationId: branch-protection-configuration/enabled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_configuration + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-branch-protection-configuration-enabled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: branch_protection_configuration + supported-webhook-types: + - repository + - organization + - app + branch-protection-rule-created: + post: + summary: |- + This event occurs when there is activity relating to branch protection rules. For more information, see "[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches)." For information about the APIs to manage branch protection rules, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#branchprotectionrule) or "[Branch protection](https://docs.github.com/rest/branches/branch-protection)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository permission. + description: A branch protection rule was created. + operationId: branch-protection-rule/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-branch-protection-rule-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: branch_protection_rule + supported-webhook-types: + - repository + - organization + - app + branch-protection-rule-deleted: + post: + summary: |- + This event occurs when there is activity relating to branch protection rules. For more information, see "[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches)." For information about the APIs to manage branch protection rules, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#branchprotectionrule) or "[Branch protection](https://docs.github.com/rest/branches/branch-protection)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository permission. + description: A branch protection rule was deleted. + operationId: branch-protection-rule/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-branch-protection-rule-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: branch_protection_rule + supported-webhook-types: + - repository + - organization + - app + branch-protection-rule-edited: + post: + summary: |- + This event occurs when there is activity relating to branch protection rules. For more information, see "[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches)." For information about the APIs to manage branch protection rules, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#branchprotectionrule) or "[Branch protection](https://docs.github.com/rest/branches/branch-protection)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository permission. + description: A branch protection rule was edited. + operationId: branch-protection-rule/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-branch-protection-rule-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: branch_protection_rule + supported-webhook-types: + - repository + - organization + - app + check-run-completed: + post: + summary: |- + This event occurs when there is activity relating to a check run. For information about check runs, see "[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api)." For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or "[Check Runs](https://docs.github.com/rest/checks/runs)" in the REST API documentation. + + For activity relating to check suites, use the `check-suite` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Checks" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the "Checks" permission. GitHub Apps with write-level access for the "Checks" permission are automatically subscribed to this webhook event. + + Repository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories. + + > [!NOTE] + > The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + description: A check run was completed, and a conclusion is available. + operationId: check-run/completed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#check_run + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-check-run-completed" + examples: + default: + "$ref": "#/components/examples/check-run-completed" + application/x-www-form-urlencoded: + schema: + "$ref": "#/components/schemas/webhook-check-run-completed-form-encoded" + examples: + default: + "$ref": "#/components/examples/check-run-completed-form-encoded" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: check_run + supported-webhook-types: + - repository + - organization + - app + check-run-created: + post: + summary: |- + This event occurs when there is activity relating to a check run. For information about check runs, see "[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api)." For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or "[Check Runs](https://docs.github.com/rest/checks/runs)" in the REST API documentation. + + For activity relating to check suites, use the `check-suite` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Checks" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the "Checks" permission. GitHub Apps with write-level access for the "Checks" permission are automatically subscribed to this webhook event. + + Repository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories. + + > [!NOTE] + > The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + description: A new check run was created. + operationId: check-run/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#check_run + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-check-run-created" + examples: + default: + "$ref": "#/components/examples/check-run-created" + application/x-www-form-urlencoded: + schema: + "$ref": "#/components/schemas/webhook-check-run-created-form-encoded" + examples: + default: + "$ref": "#/components/examples/check-run-created-form-encoded" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: check_run + supported-webhook-types: + - repository + - organization + - app + check-run-requested-action: + post: + summary: |- + This event occurs when there is activity relating to a check run. For information about check runs, see "[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api)." For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or "[Check Runs](https://docs.github.com/rest/checks/runs)" in the REST API documentation. + + For activity relating to check suites, use the `check-suite` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Checks" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the "Checks" permission. GitHub Apps with write-level access for the "Checks" permission are automatically subscribed to this webhook event. + + Repository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories. + + > [!NOTE] + > The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + description: A check run completed, and someone requested a followup action + that your app provides. Only the GitHub App someone requests to perform an + action will receive the `requested_action` payload. For more information, + see "[Creating CI tests with the Checks API](https://docs.github.com/developers/apps/guides/creating-ci-tests-with-the-checks-api)." + operationId: check-run/requested-action + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#check_run + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-check-run-requested-action" + examples: + default: + "$ref": "#/components/examples/check-run-requested-action" + application/x-www-form-urlencoded: + schema: + "$ref": "#/components/schemas/webhook-check-run-requested-action-form-encoded" + examples: + default: + "$ref": "#/components/examples/check-run-requested-action-form-encoded" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: check_run + supported-webhook-types: + - repository + - organization + - app + check-run-rerequested: + post: + summary: |- + This event occurs when there is activity relating to a check run. For information about check runs, see "[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api)." For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or "[Check Runs](https://docs.github.com/rest/checks/runs)" in the REST API documentation. + + For activity relating to check suites, use the `check-suite` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Checks" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the "Checks" permission. GitHub Apps with write-level access for the "Checks" permission are automatically subscribed to this webhook event. + + Repository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories. + + > [!NOTE] + > The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + description: Someone requested to re-run a check run. Only the GitHub App that + someone requests to re-run the check will receive the `rerequested` payload. + operationId: check-run/rerequested + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#check_run + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-check-run-rerequested" + examples: + default: + "$ref": "#/components/examples/check-run-rerequested" + application/x-www-form-urlencoded: + schema: + "$ref": "#/components/schemas/webhook-check-run-rerequested-form-encoded" + examples: + default: + "$ref": "#/components/examples/check-run-rerequested-form-encoded" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: check_run + supported-webhook-types: + - repository + - organization + - app + check-suite-completed: + post: + summary: |- + This event occurs when there is activity relating to a check suite. For information about check suites, see "[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api)." For information about the APIs to manage check suites, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checksuite) or "[Check Suites](https://docs.github.com/rest/checks/suites)" in the REST API documentation. + + For activity relating to check runs, use the `check_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Checks" permission. To receive the `requested` and `rerequested` event types, the app must have at least write-level access for the "Checks" permission. GitHub Apps with write-level access for the "Checks" permission are automatically subscribed to this webhook event. + + Repository and organization webhooks only receive payloads for the `completed` event types in repositories. + + > [!NOTE] + > The API only looks for pushes in the repository where the check suite was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + description: All check runs in a check suite have completed, and a conclusion + is available. + operationId: check-suite/completed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-check-suite-completed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: check_suite + supported-webhook-types: + - repository + - organization + - app + check-suite-requested: + post: + summary: |- + This event occurs when there is activity relating to a check suite. For information about check suites, see "[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api)." For information about the APIs to manage check suites, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checksuite) or "[Check Suites](https://docs.github.com/rest/checks/suites)" in the REST API documentation. + + For activity relating to check runs, use the `check_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Checks" permission. To receive the `requested` and `rerequested` event types, the app must have at least write-level access for the "Checks" permission. GitHub Apps with write-level access for the "Checks" permission are automatically subscribed to this webhook event. + + Repository and organization webhooks only receive payloads for the `completed` event types in repositories. + + > [!NOTE] + > The API only looks for pushes in the repository where the check suite was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + description: Someone requested to run a check suite. By default, check suites + are automatically created when you create a check run. For more information, + see [the GraphQL API documentation for creating a check run](https://docs.github.com/graphql/reference/mutations#createcheckrun) + or "[Create a check run](https://docs.github.com/rest/checks/runs#create-a-check-run)" + in the REST API documentation. + operationId: check-suite/requested + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-check-suite-requested" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: check_suite + supported-webhook-types: + - repository + - organization + - app + check-suite-rerequested: + post: + summary: |- + This event occurs when there is activity relating to a check suite. For information about check suites, see "[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api)." For information about the APIs to manage check suites, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checksuite) or "[Check Suites](https://docs.github.com/rest/checks/suites)" in the REST API documentation. + + For activity relating to check runs, use the `check_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Checks" permission. To receive the `requested` and `rerequested` event types, the app must have at least write-level access for the "Checks" permission. GitHub Apps with write-level access for the "Checks" permission are automatically subscribed to this webhook event. + + Repository and organization webhooks only receive payloads for the `completed` event types in repositories. + + > [!NOTE] + > The API only looks for pushes in the repository where the check suite was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + description: Someone requested to re-run the check runs in a check suite. For + more information, see [the GraphQL API documentation for creating a check + suite](https://docs.github.com/graphql/reference/mutations#createchecksuite) + or "[Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite)" + in the REST API documentation. + operationId: check-suite/rerequested + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-check-suite-rerequested" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: check_suite + supported-webhook-types: + - repository + - organization + - app + code-scanning-alert-appeared-in-branch: + post: + summary: |- + This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see "[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts)." For information about the API to manage code scanning, see "[Code scanning](https://docs.github.com/rest/code-scanning)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Code scanning alerts" repository permission. + description: A previously created code scanning alert appeared in another branch. + This can happen when a branch is merged into or created from a branch with + a pre-existing code scanning alert. + operationId: code-scanning-alert/appeared-in-branch + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-code-scanning-alert-appeared-in-branch" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: code_scanning_alert + supported-webhook-types: + - repository + - organization + - app + code-scanning-alert-closed-by-user: + post: + summary: |- + This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see "[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts)." For information about the API to manage code scanning, see "[Code scanning](https://docs.github.com/rest/code-scanning)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Code scanning alerts" repository permission. + description: Someone closed a code scanning alert. + operationId: code-scanning-alert/closed-by-user + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-code-scanning-alert-closed-by-user" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: code_scanning_alert + supported-webhook-types: + - repository + - organization + - app + code-scanning-alert-created: + post: + summary: |- + This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see "[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts)." For information about the API to manage code scanning, see "[Code scanning](https://docs.github.com/rest/code-scanning)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Code scanning alerts" repository permission. + description: A code scanning alert was created in a repository. + operationId: code-scanning-alert/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-code-scanning-alert-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: code_scanning_alert + supported-webhook-types: + - repository + - organization + - app + code-scanning-alert-fixed: + post: + summary: |- + This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see "[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts)." For information about the API to manage code scanning, see "[Code scanning](https://docs.github.com/rest/code-scanning)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Code scanning alerts" repository permission. + description: A code scanning alert was fixed in a branch by a commit. + operationId: code-scanning-alert/fixed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-code-scanning-alert-fixed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: code_scanning_alert + supported-webhook-types: + - repository + - organization + - app + code-scanning-alert-reopened: + post: + summary: |- + This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see "[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts)." For information about the API to manage code scanning, see "[Code scanning](https://docs.github.com/rest/code-scanning)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Code scanning alerts" repository permission. + description: A previously fixed code scanning alert reappeared in a branch. + operationId: code-scanning-alert/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: code_scanning_alert + supported-webhook-types: + - repository + - organization + - app + code-scanning-alert-reopened-by-user: + post: + summary: |- + This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see "[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts)." For information about the API to manage code scanning, see "[Code scanning](https://docs.github.com/rest/code-scanning)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Code scanning alerts" repository permission. + description: Someone reopened a code scanning alert. + operationId: code-scanning-alert/reopened-by-user + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened-by-user" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: code_scanning_alert + supported-webhook-types: + - repository + - organization + - app + code-scanning-alert-updated-assignment: + post: + summary: |- + This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see "[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts)." For information about the API to manage code scanning, see "[Code scanning](https://docs.github.com/rest/code-scanning)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Code scanning alerts" repository permission. + description: The assignees list of a code scanning alert has been updated. + operationId: code-scanning-alert/updated-assignment + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-code-scanning-alert-updated-assignment" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: code_scanning_alert + supported-webhook-types: + - repository + - organization + - app + commit-comment-created: + post: + summary: |- + This event occurs when there is activity relating to commit comments. For more information about commit comments, see "[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request)." For information about the APIs to manage commit comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#commitcomment) or "[Commit comments](https://docs.github.com/rest/commits/comments)" in the REST API documentation. + + For activity relating to comments on pull request reviews, use the `pull_request_review_comment` event. For activity relating to issue comments, use the `issue_comment` event. For activity relating to discussion comments, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: Someone commented on a commit. + operationId: commit-comment/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#commit_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-commit-comment-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: commit_comment + supported-webhook-types: + - repository + - organization + - app + create: + post: + summary: |- + This event occurs when a Git branch or tag is created. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + + **Notes**: + - This event will not occur when more than three tags are created at once. + - Payloads are capped at 25 MB. If an event generates a larger payload, GitHub will not deliver a payload for that webhook event. This may happen, for example, if many branches or tags are pushed at once. We suggest monitoring your payload size to ensure delivery. + operationId: create + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#create + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-create" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: create + supported-webhook-types: + - repository + - organization + - app + custom-property-created: + post: + summary: |- + This event occurs when there is activity relating to a custom property. + + For more information, see "[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)". For information about the APIs to manage custom properties, see "[Custom properties](https://docs.github.com/rest/orgs/custom-properties)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Custom properties" organization permission. + description: A new custom property was created. + operationId: custom-property/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-custom-property-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: custom_property + supported-webhook-types: + - business + - organization + - app + custom-property-deleted: + post: + summary: |- + This event occurs when there is activity relating to a custom property. + + For more information, see "[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)". For information about the APIs to manage custom properties, see "[Custom properties](https://docs.github.com/rest/orgs/custom-properties)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Custom properties" organization permission. + description: A custom property was deleted. + operationId: custom-property/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-custom-property-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: custom_property + supported-webhook-types: + - business + - organization + - app + custom-property-promoted-to-enterprise: + post: + summary: |- + This event occurs when there is activity relating to a custom property. + + For more information, see "[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)". For information about the APIs to manage custom properties, see "[Custom properties](https://docs.github.com/rest/orgs/custom-properties)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Custom properties" organization permission. + description: A custom property was promoted to an enterprise. + operationId: custom-property/promote-to-enterprise + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-custom-property-promoted-to-enterprise" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: custom_property + supported-webhook-types: + - business + - organization + - app + custom-property-updated: + post: + summary: |- + This event occurs when there is activity relating to a custom property. + + For more information, see "[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)". For information about the APIs to manage custom properties, see "[Custom properties](https://docs.github.com/rest/orgs/custom-properties)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Custom properties" organization permission. + description: A custom property was updated. + operationId: custom-property/updated + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-custom-property-updated" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: custom_property + supported-webhook-types: + - business + - organization + - app + custom-property-values-updated: + post: + summary: |- + This event occurs when there is activity relating to custom property values for a repository. + + For more information, see "[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)". For information about the APIs to manage custom properties for a repository, see "[Custom properties](https://docs.github.com/rest/repos/custom-properties)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Custom properties" organization permission. + description: The custom property values of a repository were updated. + operationId: custom-property-values/updated + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#custom-property-values + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-custom-property-values-updated" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: custom-property-values + supported-webhook-types: + - repository + - organization + - app + delete: + post: + summary: |- + This event occurs when a Git branch or tag is deleted. To subscribe to all pushes to a repository, including + branch and tag deletions, use the [`push`](#push) webhook event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + + > [!NOTE] + > This event will not occur when more than three tags are deleted at once. + operationId: delete + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#delete + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-delete" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: delete + supported-webhook-types: + - repository + - organization + - app + dependabot-alert-auto-dismissed: + post: + summary: |- + This event occurs when there is activity relating to Dependabot alerts. + + For more information about Dependabot alerts, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." For information about the API to manage Dependabot alerts, see "[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Dependabot alerts" repository permission. + + > [!NOTE] + > Webhook events for Dependabot alerts are currently in public preview and subject to change. + description: A Dependabot alert was automatically closed by a Dependabot auto-triage + rule. + operationId: dependabot-alert/auto-dismissed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-dependabot-alert-auto-dismissed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: dependabot_alert + supported-webhook-types: + - repository + - organization + - app + dependabot-alert-auto-reopened: + post: + summary: |- + This event occurs when there is activity relating to Dependabot alerts. + + For more information about Dependabot alerts, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." For information about the API to manage Dependabot alerts, see "[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Dependabot alerts" repository permission. + + > [!NOTE] + > Webhook events for Dependabot alerts are currently in public preview and subject to change. + description: A Dependabot alert, that had been automatically closed by a Dependabot + auto-triage rule, was automatically reopened because the alert metadata or + rule changed. + operationId: dependabot-alert/auto-reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-dependabot-alert-auto-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: dependabot_alert + supported-webhook-types: + - repository + - organization + - app + dependabot-alert-created: + post: + summary: |- + This event occurs when there is activity relating to Dependabot alerts. + + For more information about Dependabot alerts, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." For information about the API to manage Dependabot alerts, see "[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Dependabot alerts" repository permission. + + > [!NOTE] + > Webhook events for Dependabot alerts are currently in public preview and subject to change. + description: A manifest file change introduced a vulnerable dependency, or a + GitHub Security Advisory was published and an existing dependency was found + to be vulnerable. + operationId: dependabot-alert/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-dependabot-alert-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: dependabot_alert + supported-webhook-types: + - repository + - organization + - app + dependabot-alert-dismissed: + post: + summary: |- + This event occurs when there is activity relating to Dependabot alerts. + + For more information about Dependabot alerts, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." For information about the API to manage Dependabot alerts, see "[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Dependabot alerts" repository permission. + + > [!NOTE] + > Webhook events for Dependabot alerts are currently in public preview and subject to change. + description: A Dependabot alert was manually closed. + operationId: dependabot-alert/dismissed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-dependabot-alert-dismissed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: dependabot_alert + supported-webhook-types: + - repository + - organization + - app + dependabot-alert-fixed: + post: + summary: |- + This event occurs when there is activity relating to Dependabot alerts. + + For more information about Dependabot alerts, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." For information about the API to manage Dependabot alerts, see "[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Dependabot alerts" repository permission. + + > [!NOTE] + > Webhook events for Dependabot alerts are currently in public preview and subject to change. + description: A manifest file change removed a vulnerability. + operationId: dependabot-alert/fixed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-dependabot-alert-fixed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: dependabot_alert + supported-webhook-types: + - repository + - organization + - app + dependabot-alert-reintroduced: + post: + summary: |- + This event occurs when there is activity relating to Dependabot alerts. + + For more information about Dependabot alerts, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." For information about the API to manage Dependabot alerts, see "[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Dependabot alerts" repository permission. + + > [!NOTE] + > Webhook events for Dependabot alerts are currently in public preview and subject to change. + description: A manifest file change introduced a vulnerable dependency that + had previously been fixed. + operationId: dependabot-alert/reintroduced + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-dependabot-alert-reintroduced" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: dependabot_alert + supported-webhook-types: + - repository + - organization + - app + dependabot-alert-reopened: + post: + summary: |- + This event occurs when there is activity relating to Dependabot alerts. + + For more information about Dependabot alerts, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." For information about the API to manage Dependabot alerts, see "[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Dependabot alerts" repository permission. + + > [!NOTE] + > Webhook events for Dependabot alerts are currently in public preview and subject to change. + description: A Dependabot alert was manually reopened. + operationId: dependabot-alert/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-dependabot-alert-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: dependabot_alert + supported-webhook-types: + - repository + - organization + - app + deploy-key-created: + post: + summary: |- + This event occurs when there is activity relating to deploy keys. For more information, see "[Managing deploy keys](https://docs.github.com/developers/overview/managing-deploy-keys)." For information about the APIs to manage deploy keys, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deploykey) or "[Deploy keys](https://docs.github.com/rest/deploy-keys)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + description: A deploy key was created. + operationId: deploy-key/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deploy-key-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deploy_key + supported-webhook-types: + - repository + - organization + - app + deploy-key-deleted: + post: + summary: |- + This event occurs when there is activity relating to deploy keys. For more information, see "[Managing deploy keys](https://docs.github.com/developers/overview/managing-deploy-keys)." For information about the APIs to manage deploy keys, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deploykey) or "[Deploy keys](https://docs.github.com/rest/deploy-keys)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + description: A deploy key was deleted. + operationId: deploy-key/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deploy-key-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deploy_key + supported-webhook-types: + - repository + - organization + - app + deployment-created: + post: + summary: |- + This event occurs when there is activity relating to deployments. For more information, see "[About deployments](https://docs.github.com/actions/deployment/about-deployments)." For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or "[Deployments](https://docs.github.com/rest/deployments/deployments)" in the REST API documentation. + + For activity relating to deployment status, use the `deployment_status` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + description: A deployment was created. + operationId: deployment/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deployment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deployment-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deployment + supported-webhook-types: + - repository + - organization + - app + deployment-protection-rule-requested: + post: + summary: |- + This event occurs when there is activity relating to deployment protection rules. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment#environment-protection-rules)." For information about the API to manage deployment protection rules, see [the REST API documentation](https://docs.github.com/rest/deployments/environments). + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + description: A deployment protection rule was requested for an environment. + operationId: deployment-protection-rule/requested + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_protection_rule + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deployment-protection-rule-requested" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deployment_protection_rule + supported-webhook-types: + - app + deployment-review-approved: + post: + summary: |- + This event occurs when there is activity relating to deployment reviews. For more information, see "[About deployments](https://docs.github.com/actions/deployment/about-deployments)." For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or "[Deployments](https://docs.github.com/rest/deployments/deployments)" in the REST API documentation. + + For activity relating to deployment creation or deployment status, use the `deployment` or `deployment_status` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + description: A deployment review was approved. + operationId: deployment-review/approved + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deployment-review-approved" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deployment_review + supported-webhook-types: + - app + deployment-review-rejected: + post: + summary: |- + This event occurs when there is activity relating to deployment reviews. For more information, see "[About deployments](https://docs.github.com/actions/deployment/about-deployments)." For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or "[Deployments](https://docs.github.com/rest/deployments/deployments)" in the REST API documentation. + + For activity relating to deployment creation or deployment status, use the `deployment` or `deployment_status` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + description: A deployment review was rejected. + operationId: deployment-review/rejected + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deployment-review-rejected" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deployment_review + supported-webhook-types: + - app + deployment-review-requested: + post: + summary: |- + This event occurs when there is activity relating to deployment reviews. For more information, see "[About deployments](https://docs.github.com/actions/deployment/about-deployments)." For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or "[Deployments](https://docs.github.com/rest/deployments/deployments)" in the REST API documentation. + + For activity relating to deployment creation or deployment status, use the `deployment` or `deployment_status` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + description: A deployment review was requested. + operationId: deployment-review/requested + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deployment-review-requested" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deployment_review + supported-webhook-types: + - app + deployment-status-created: + post: + summary: |- + This event occurs when there is activity relating to deployment statuses. For more information, see "[About deployments](https://docs.github.com/actions/deployment/about-deployments)." For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or "[Deployments](https://docs.github.com/rest/deployments/deployments)" in the REST API documentation. + + For activity relating to deployment creation, use the `deployment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Deployments" repository permission. + + > [!NOTE] + > A webhook event is not fired for deployment statuses with an `inactive` state. + description: A new deployment status was created. + operationId: deployment-status/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_status + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-deployment-status-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: deployment_status + supported-webhook-types: + - repository + - organization + - app + discussion-answered: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A comment on the discussion was marked as the answer. + operationId: discussion/answered + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-answered" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-category-changed: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: The category of a discussion was changed. + operationId: discussion/category-changed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-category-changed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-closed: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was closed. + operationId: discussion/closed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: discussions + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-closed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-comment-created: + post: + summary: |- + This event occurs when there is activity relating to a comment on a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a discussion as opposed to comments on a discussion, use the `discussion` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A comment on a discussion was created. + operationId: discussion-comment/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-comment-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion_comment + supported-webhook-types: + - repository + - organization + - app + discussion-comment-deleted: + post: + summary: |- + This event occurs when there is activity relating to a comment on a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a discussion as opposed to comments on a discussion, use the `discussion` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A comment on a discussion was deleted. + operationId: discussion-comment/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-comment-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion_comment + supported-webhook-types: + - repository + - organization + - app + discussion-comment-edited: + post: + summary: |- + This event occurs when there is activity relating to a comment on a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a discussion as opposed to comments on a discussion, use the `discussion` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A comment on a discussion was edited. + operationId: discussion-comment/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-comment-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion_comment + supported-webhook-types: + - repository + - organization + - app + discussion-created: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was created. + operationId: discussion/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-deleted: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was deleted. + operationId: discussion/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-edited: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: The title or body on a discussion was edited, or the category of + the discussion was changed. + operationId: discussion/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-labeled: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A label was added to a discussion. + operationId: discussion/labeled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-labeled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-locked: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was locked. + operationId: discussion/locked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-locked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-pinned: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was pinned. + operationId: discussion/pinned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-pinned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-reopened: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was reopened. + operationId: discussion/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: discussions + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-transferred: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was transferred to another repository. + operationId: discussion/transferred + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-transferred" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-unanswered: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A comment on the discussion was unmarked as the answer. + operationId: discussion/unanswered + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-unanswered" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-unlabeled: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A label was removed from a discussion. + operationId: discussion/unlabeled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-unlabeled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-unlocked: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was unlocked. + operationId: discussion/unlocked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-unlocked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + discussion-unpinned: + post: + summary: |- + This event occurs when there is activity relating to a discussion. For more information about discussions, see "[GitHub Discussions](https://docs.github.com/discussions)." For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion). + + For activity relating to a comment on a discussion, use the `discussion_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Discussions" repository permission. + + > [!NOTE] + > Webhook events for GitHub Discussions are currently in public preview and subject to change. + description: A discussion was unpinned. + operationId: discussion/unpinned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#discussion + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-discussion-unpinned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: discussion + supported-webhook-types: + - repository + - organization + - app + fork: + post: + summary: |- + This event occurs when someone forks a repository. For more information, see "[Fork a repo](https://docs.github.com/get-started/quickstart/fork-a-repo)." For information about the API to manage forks, see "[Forks](https://docs.github.com/rest/repos/forks)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + operationId: fork + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#fork + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-fork" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: fork + supported-webhook-types: + - business + - repository + - organization + - app + github-app-authorization-revoked: + post: + summary: |- + This event occurs when a user revokes their authorization of a GitHub App. For more information, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the API to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + + A GitHub App receives this webhook by default and cannot unsubscribe from this event. + + Anyone can revoke their authorization of a GitHub App from their [GitHub account settings page](https://github.com/settings/apps/authorizations). Revoking the authorization of a GitHub App does not uninstall the GitHub App. You should program your GitHub App so that when it receives this webhook, it stops calling the API on behalf of the person who revoked the token. If your GitHub App continues to use a revoked access token, it will receive the `401 Bad Credentials` error. For details about requests with a user access token, which require GitHub App authorization, see "[Authenticating with a GitHub App on behalf of a user](https://docs.github.com/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user)." + description: Someone revoked their authorization of a GitHub App. + operationId: github-app-authorization/revoked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#github_app_authorization + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-github-app-authorization-revoked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: github_app_authorization + supported-webhook-types: + - app + gollum: + post: + summary: |- + This event occurs when someone creates or updates a wiki page. For more information, see "[About wikis](https://docs.github.com/communities/documenting-your-project-with-wikis/about-wikis)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + operationId: gollum + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#gollum + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-gollum" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: gollum + supported-webhook-types: + - repository + - organization + - app + installation-created: + post: + summary: |- + This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event. + + For more information about GitHub Apps, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + description: Someone installed a GitHub App on a user or organization account. + operationId: installation/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation + supported-webhook-types: + - app + installation-deleted: + post: + summary: |- + This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event. + + For more information about GitHub Apps, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + description: Someone uninstalled a GitHub App from their user or organization + account. + operationId: installation/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation + supported-webhook-types: + - app + installation-new-permissions-accepted: + post: + summary: |- + This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event. + + For more information about GitHub Apps, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + description: Someone granted new permissions to a GitHub App. + operationId: installation/new-permissions-accepted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-new-permissions-accepted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation + supported-webhook-types: + - app + installation-repositories-added: + post: + summary: |- + This event occurs when there is activity relating to which repositories a GitHub App installation can access. All GitHub Apps receive this event by default. You cannot manually subscribe to this event. + + For more information about GitHub Apps, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + description: A GitHub App installation was granted access to one or more repositories. + operationId: installation-repositories/added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-repositories-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation_repositories + supported-webhook-types: + - app + installation-repositories-removed: + post: + summary: |- + This event occurs when there is activity relating to which repositories a GitHub App installation can access. All GitHub Apps receive this event by default. You cannot manually subscribe to this event. + + For more information about GitHub Apps, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + description: Access to one or more repositories was revoked for a GitHub App + installation. + operationId: installation-repositories/removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-repositories-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation_repositories + supported-webhook-types: + - app + installation-suspend: + post: + summary: |- + This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event. + + For more information about GitHub Apps, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + description: Someone blocked access by a GitHub App to their user or organization + account. + operationId: installation/suspend + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-suspend" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation + supported-webhook-types: + - app + installation-target-renamed: + post: + summary: This event occurs when there is activity relating to the user or organization + account that a GitHub App is installed on. For more information, see "[About + apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." + For information about the APIs to manage GitHub Apps, see [the GraphQL API + documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" + in the REST API documentation. + description: Somebody renamed the user or organization account that a GitHub + App is installed on. + operationId: installation-target/renamed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation_target + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-target-renamed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation_target + supported-webhook-types: + - app + installation-unsuspend: + post: + summary: |- + This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event. + + For more information about GitHub Apps, see "[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps)." For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or "[Apps](https://docs.github.com/rest/apps)" in the REST API documentation. + description: A GitHub App that was blocked from accessing a user or organization + account was given access the account again. + operationId: installation/unsuspend + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#installation + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-installation-unsuspend" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: installation + supported-webhook-types: + - app + issue-comment-created: + post: + summary: |- + This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)" and "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or "[Issue comments](https://docs.github.com/rest/issues/comments)" in the REST API documentation. + + For activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see "[Working with comments](https://docs.github.com/rest/guides/working-with-comments)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: A comment on an issue or pull request was created. + operationId: issue-comment/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issue-comment-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issue_comment + supported-webhook-types: + - repository + - organization + - app + issue-comment-deleted: + post: + summary: |- + This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)" and "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or "[Issue comments](https://docs.github.com/rest/issues/comments)" in the REST API documentation. + + For activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see "[Working with comments](https://docs.github.com/rest/guides/working-with-comments)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: A comment on an issue or pull request was deleted. + operationId: issue-comment/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issue-comment-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issue_comment + supported-webhook-types: + - repository + - organization + - app + issue-comment-edited: + post: + summary: |- + This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)" and "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or "[Issue comments](https://docs.github.com/rest/issues/comments)" in the REST API documentation. + + For activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see "[Working with comments](https://docs.github.com/rest/guides/working-with-comments)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: A comment on an issue or pull request was edited. + operationId: issue-comment/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issue-comment-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issue_comment + supported-webhook-types: + - repository + - organization + - app + issue-dependencies-blocked-by-added: + post: + summary: |- + This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: An issue was marked as blocked by another issue. + operationId: issue-dependencies/blocked-by-added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issue-dependencies-blocked-by-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issue-dependencies + supported-webhook-types: + - repository + - organization + - app + issue-dependencies-blocked-by-removed: + post: + summary: |- + This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: The blocked by relationship between an issue and another issue + was removed. + operationId: issue-dependencies/blocked-by-removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issue-dependencies-blocked-by-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issue-dependencies + supported-webhook-types: + - repository + - organization + - app + issue-dependencies-blocking-added: + post: + summary: |- + This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: An issue was marked as blocking another issue. + operationId: issue-dependencies/blocking-added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issue-dependencies-blocking-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issue-dependencies + supported-webhook-types: + - repository + - organization + - app + issue-dependencies-blocking-removed: + post: + summary: |- + This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: The blocking relationship between an issue and another issue was + removed. + operationId: issue-dependencies/blocking-removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issue-dependencies-blocking-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issue-dependencies + supported-webhook-types: + - repository + - organization + - app + issues-assigned: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was assigned to a user. + operationId: issues/assigned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-assigned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-closed: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was closed. + operationId: issues/closed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-closed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-deleted: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was deleted. + operationId: issues/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-demilestoned: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was removed from a milestone. + operationId: issues/demilestoned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-demilestoned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-edited: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: The title or body on an issue was edited. + operationId: issues/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-labeled: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: A label was added to an issue. + operationId: issues/labeled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-labeled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-locked: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: Conversation on an issue was locked. For more information, see + "[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations)." + operationId: issues/locked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-locked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-milestoned: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was added to a milestone. + operationId: issues/milestoned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-milestoned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-opened: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was created. When a closed issue is reopened, the action + will be `reopened` instead. + operationId: issues/opened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-opened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-pinned: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was pinned to a repository. For more information, see + "[Pinning an issue to your repository](https://docs.github.com/issues/tracking-your-work-with-issues/pinning-an-issue-to-your-repository)." + operationId: issues/pinned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-pinned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-reopened: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: A closed issue was reopened. + operationId: issues/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-transferred: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was transferred to another repository. For more information, + see "[Transferring an issue to another repository](https://docs.github.com/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository)." + operationId: issues/transferred + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-transferred" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-typed: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue type was added to an issue. + operationId: issues/typed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-typed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-unassigned: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: A user was unassigned from an issue. + operationId: issues/unassigned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-unassigned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-unlabeled: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: A label was removed from an issue. + operationId: issues/unlabeled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-unlabeled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-unlocked: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: Conversation on an issue was locked. For more information, see + "[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations)." + operationId: issues/unlocked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-unlocked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-unpinned: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue was unpinned from a repository. For more information, + see "[Pinning an issue to your repository](https://docs.github.com/issues/tracking-your-work-with-issues/pinning-an-issue-to-your-repository)." + operationId: issues/unpinned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-unpinned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + issues-untyped: + post: + summary: |- + This event occurs when there is activity relating to an issue. For more information about issues, see "[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)." For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or "[Issues](https://docs.github.com/rest/issues)" in the REST API documentation. + + For activity relating to a comment on an issue, use the `issue_comment` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permission. + description: An issue type was removed from an issue. + operationId: issues/untyped + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-issues-untyped" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: issues + supported-webhook-types: + - repository + - organization + - app + label-created: + post: + summary: |- + This event occurs when there is activity relating to labels. For more information, see "[Managing labels](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/managing-labels)." For information about the APIs to manage labels, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#label) or "[Labels](https://docs.github.com/rest/issues/labels)" in the REST API documentation. + + If you want to receive an event when a label is added to or removed from an issue, pull request, or discussion, use the `labeled` or `unlabeled` action type for the `issues`, `pull_request`, or `discussion` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: A label was created. + operationId: label/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#label + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-label-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: label + supported-webhook-types: + - repository + - organization + - app + label-deleted: + post: + summary: |- + This event occurs when there is activity relating to labels. For more information, see "[Managing labels](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/managing-labels)." For information about the APIs to manage labels, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#label) or "[Labels](https://docs.github.com/rest/issues/labels)" in the REST API documentation. + + If you want to receive an event when a label is added to or removed from an issue, pull request, or discussion, use the `labeled` or `unlabeled` action type for the `issues`, `pull_request`, or `discussion` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: A label was deleted. + operationId: label/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#label + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-label-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: label + supported-webhook-types: + - repository + - organization + - app + label-edited: + post: + summary: |- + This event occurs when there is activity relating to labels. For more information, see "[Managing labels](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/managing-labels)." For information about the APIs to manage labels, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#label) or "[Labels](https://docs.github.com/rest/issues/labels)" in the REST API documentation. + + If you want to receive an event when a label is added to or removed from an issue, pull request, or discussion, use the `labeled` or `unlabeled` action type for the `issues`, `pull_request`, or `discussion` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: A label's name, description, or color was changed. + operationId: label/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#label + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-label-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: label + supported-webhook-types: + - repository + - organization + - app + marketplace-purchase-cancelled: + post: + summary: This event occurs when there is activity relating to a GitHub Marketplace + purchase. For more information, see "[GitHub Marketplace](https://docs.github.com/marketplace)." + For information about the APIs to manage GitHub Marketplace listings, see + [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) + or "[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)" in + the REST API documentation. + description: Someone cancelled a GitHub Marketplace plan, and the last billing + cycle has ended. The change will take effect on the account immediately. + operationId: marketplace-purchase/cancelled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-marketplace-purchase-cancelled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: marketplace_purchase + supported-webhook-types: + - marketplace + marketplace-purchase-changed: + post: + summary: This event occurs when there is activity relating to a GitHub Marketplace + purchase. For more information, see "[GitHub Marketplace](https://docs.github.com/marketplace)." + For information about the APIs to manage GitHub Marketplace listings, see + [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) + or "[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)" in + the REST API documentation. + description: Someone upgraded or downgraded a GitHub Marketplace plan, and the + last billing cycle has ended. The change will take effect on the account immediately. + operationId: marketplace-purchase/changed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-marketplace-purchase-changed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: marketplace_purchase + supported-webhook-types: + - marketplace + marketplace-purchase-pending-change: + post: + summary: This event occurs when there is activity relating to a GitHub Marketplace + purchase. For more information, see "[GitHub Marketplace](https://docs.github.com/marketplace)." + For information about the APIs to manage GitHub Marketplace listings, see + [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) + or "[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)" in + the REST API documentation. + description: Someone downgraded or cancelled a GitHub Marketplace plan. The + new plan or cancellation will take effect at the end of the current billing + cycle. When the change takes effect, the `changed` or `cancelled` event will + be sent. + operationId: marketplace-purchase/pending-change + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: marketplace_purchase + supported-webhook-types: + - marketplace + marketplace-purchase-pending-change-cancelled: + post: + summary: This event occurs when there is activity relating to a GitHub Marketplace + purchase. For more information, see "[GitHub Marketplace](https://docs.github.com/marketplace)." + For information about the APIs to manage GitHub Marketplace listings, see + [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) + or "[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)" in + the REST API documentation. + description: Someone cancelled a pending change to a GitHub Marketplace plan. + Pending changes include plan cancellations and downgrades that will take effect + at the end of a billing cycle. + operationId: marketplace-purchase/pending-change-cancelled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change-cancelled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: marketplace_purchase + supported-webhook-types: + - marketplace + marketplace-purchase-purchased: + post: + summary: This event occurs when there is activity relating to a GitHub Marketplace + purchase. For more information, see "[GitHub Marketplace](https://docs.github.com/marketplace)." + For information about the APIs to manage GitHub Marketplace listings, see + [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) + or "[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)" in + the REST API documentation. + description: Someone purchased a GitHub Marketplace plan. The change will take + effect on the account immediately. + operationId: marketplace-purchase/purchased + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-marketplace-purchase-purchased" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: marketplace_purchase + supported-webhook-types: + - marketplace + member-added: + post: + summary: |- + This event occurs when there is activity relating to collaborators in a repository. For more information, see "[Adding outside collaborators to repositories in your organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization)." For more information about the API to manage repository collaborators, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#repositorycollaboratorconnection) or "[Collaborators](https://docs.github.com/rest/collaborators/collaborators)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A GitHub user accepted an invitation to a repository. + operationId: member/added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#member + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-member-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: member + supported-webhook-types: + - business + - repository + - organization + - app + member-edited: + post: + summary: |- + This event occurs when there is activity relating to collaborators in a repository. For more information, see "[Adding outside collaborators to repositories in your organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization)." For more information about the API to manage repository collaborators, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#repositorycollaboratorconnection) or "[Collaborators](https://docs.github.com/rest/collaborators/collaborators)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: Permissions were changed for a collaborator on a repository. + operationId: member/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#member + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-member-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: member + supported-webhook-types: + - business + - repository + - organization + - app + member-removed: + post: + summary: |- + This event occurs when there is activity relating to collaborators in a repository. For more information, see "[Adding outside collaborators to repositories in your organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization)." For more information about the API to manage repository collaborators, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#repositorycollaboratorconnection) or "[Collaborators](https://docs.github.com/rest/collaborators/collaborators)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A collaborator was removed from a repository. + operationId: member/removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#member + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-member-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: member + supported-webhook-types: + - business + - repository + - organization + - app + membership-added: + post: + summary: |- + This event occurs when there is activity relating to team membership. For more information, see "[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams)." For more information about the APIs to manage team memberships, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#team) or "[Team members](https://docs.github.com/rest/teams/members)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: An organization member was added to a team. + operationId: membership/added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#membership + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-membership-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: membership + supported-webhook-types: + - organization + - business + - app + membership-removed: + post: + summary: |- + This event occurs when there is activity relating to team membership. For more information, see "[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams)." For more information about the APIs to manage team memberships, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#team) or "[Team members](https://docs.github.com/rest/teams/members)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: An organization member was removed from a team. + operationId: membership/removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#membership + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-membership-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: membership + supported-webhook-types: + - organization + - business + - app + merge-group-checks-requested: + post: + summary: |- + This event occurs when there is activity relating to a merge group in a merge queue. For more information, see "[Managing a merge queue](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Merge queues" repository permission. + description: |- + Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued. + + When you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses. + operationId: merge-group/checks-requested + tags: + - merge-queue + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#merge_group + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-merge-group-checks-requested" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: merge_group + supported-webhook-types: + - app + merge-group-destroyed: + post: + summary: |- + This event occurs when there is activity relating to a merge group in a merge queue. For more information, see "[Managing a merge queue](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Merge queues" repository permission. + description: |- + The merge queue groups pull requests together to be merged. This event indicates that one of those merge groups was destroyed. This happens when a pull request is removed from the queue: any group containing that pull request is also destroyed. + + When you receive this event, you may want to cancel any checks that are running on the head SHA to avoid wasting computing resources on a merge group that will not be used. + operationId: merge-group/destroyed + tags: + - merge-queue + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#merge_group + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-merge-group-destroyed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: merge_group + supported-webhook-types: + - app + meta-deleted: + post: + summary: |- + This event occurs when there is activity relating to a webhook itself. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Meta" app permission. + description: The webhook was deleted. + operationId: meta/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#meta + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-meta-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: meta + supported-webhook-types: + - marketplace + - business + - repository + - organization + - app + milestone-closed: + post: + summary: |- + This event occurs when there is activity relating to milestones. For more information, see "[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones)." For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or "[Milestones](https://docs.github.com/rest/issues/milestones)" in the REST API documentation. + + If you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" or "Pull requests" repository permissions. + description: A milestone was closed. + operationId: milestone/closed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#milestone + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-milestone-closed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: milestone + supported-webhook-types: + - repository + - organization + - app + milestone-created: + post: + summary: |- + This event occurs when there is activity relating to milestones. For more information, see "[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones)." For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or "[Milestones](https://docs.github.com/rest/issues/milestones)" in the REST API documentation. + + If you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" or "Pull requests" repository permissions. + description: A milestone was created. + operationId: milestone/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#milestone + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-milestone-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: milestone + supported-webhook-types: + - repository + - organization + - app + milestone-deleted: + post: + summary: |- + This event occurs when there is activity relating to milestones. For more information, see "[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones)." For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or "[Milestones](https://docs.github.com/rest/issues/milestones)" in the REST API documentation. + + If you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" or "Pull requests" repository permissions. + description: A milestone was deleted. + operationId: milestone/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#milestone + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-milestone-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: milestone + supported-webhook-types: + - repository + - organization + - app + milestone-edited: + post: + summary: |- + This event occurs when there is activity relating to milestones. For more information, see "[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones)." For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or "[Milestones](https://docs.github.com/rest/issues/milestones)" in the REST API documentation. + + If you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" or "Pull requests" repository permissions. + description: A milestone was edited. + operationId: milestone/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#milestone + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-milestone-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: milestone + supported-webhook-types: + - repository + - organization + - app + milestone-opened: + post: + summary: |- + This event occurs when there is activity relating to milestones. For more information, see "[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones)." For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or "[Milestones](https://docs.github.com/rest/issues/milestones)" in the REST API documentation. + + If you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" or "Pull requests" repository permissions. + description: A milestone was opened. + operationId: milestone/opened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#milestone + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-milestone-opened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: milestone + supported-webhook-types: + - repository + - organization + - app + org-block-blocked: + post: + summary: |- + This event occurs when organization owners or moderators block or unblock a non-member from collaborating on the organization's repositories. For more information, see "[Blocking a user from your organization](https://docs.github.com/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization)." For information about the APIs to manage blocked users, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#userblockedevent) or "[Blocking users](https://docs.github.com/rest/orgs/blocking)" in the REST API documentation. + + If you want to receive an event when members are added or removed from an organization, use the `organization` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" organization permission. + description: A user was blocked from the organization. + operationId: org-block/blocked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#org_block + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-org-block-blocked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: org_block + supported-webhook-types: + - organization + - business + - app + org-block-unblocked: + post: + summary: |- + This event occurs when organization owners or moderators block or unblock a non-member from collaborating on the organization's repositories. For more information, see "[Blocking a user from your organization](https://docs.github.com/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization)." For information about the APIs to manage blocked users, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#userblockedevent) or "[Blocking users](https://docs.github.com/rest/orgs/blocking)" in the REST API documentation. + + If you want to receive an event when members are added or removed from an organization, use the `organization` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" organization permission. + description: A previously blocked user was unblocked from the organization. + operationId: org-block/unblocked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#org_block + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-org-block-unblocked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: org_block + supported-webhook-types: + - organization + - business + - app + organization-deleted: + post: + summary: |- + This event occurs when there is activity relating to an organization and its members. For more information, see "[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations)." For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or "[Organizations](https://docs.github.com/rest/orgs)" in the REST API documentation. + + If you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: An organization was deleted. + operationId: organization/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#organization + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-organization-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: organization + supported-webhook-types: + - organization + - business + - app + organization-member-added: + post: + summary: |- + This event occurs when there is activity relating to an organization and its members. For more information, see "[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations)." For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or "[Organizations](https://docs.github.com/rest/orgs)" in the REST API documentation. + + If you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A member accepted an invitation to join an organization. + operationId: organization/member-added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#organization + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-organization-member-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: organization + supported-webhook-types: + - organization + - business + - app + organization-member-invited: + post: + summary: |- + This event occurs when there is activity relating to an organization and its members. For more information, see "[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations)." For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or "[Organizations](https://docs.github.com/rest/orgs)" in the REST API documentation. + + If you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A member was invited to join the organization. + operationId: organization/member-invited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#organization + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-organization-member-invited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: organization + supported-webhook-types: + - organization + - business + - app + organization-member-removed: + post: + summary: |- + This event occurs when there is activity relating to an organization and its members. For more information, see "[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations)." For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or "[Organizations](https://docs.github.com/rest/orgs)" in the REST API documentation. + + If you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A member was removed from the organization. + operationId: organization/member-removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#organization + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-organization-member-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: organization + supported-webhook-types: + - organization + - business + - app + organization-renamed: + post: + summary: |- + This event occurs when there is activity relating to an organization and its members. For more information, see "[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations)." For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or "[Organizations](https://docs.github.com/rest/orgs)" in the REST API documentation. + + If you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: The name of an organization was changed. + operationId: organization/renamed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#organization + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-organization-renamed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: organization + supported-webhook-types: + - organization + - business + - app + package-published: + post: + summary: This event occurs when there is activity relating to GitHub Packages. + For more information, see "[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages)." + For information about the APIs to manage GitHub Packages, see [the GraphQL + API documentation](https://docs.github.com/graphql/reference/objects#package) + or "[Packages](https://docs.github.com/rest/packages)" in the REST API documentation. + description: A package was published to a registry. + operationId: package/published + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#package + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-package-published" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: package + supported-webhook-types: + - repository + - organization + package-updated: + post: + summary: This event occurs when there is activity relating to GitHub Packages. + For more information, see "[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages)." + For information about the APIs to manage GitHub Packages, see [the GraphQL + API documentation](https://docs.github.com/graphql/reference/objects#package) + or "[Packages](https://docs.github.com/rest/packages)" in the REST API documentation. + description: A previously published package was updated. + operationId: package/updated + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#package + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-package-updated" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: package + supported-webhook-types: + - repository + - organization + page-build: + post: + summary: |- + This event occurs when there is an attempted build of a GitHub Pages site. This event occurs regardless of whether the build is successful. For more information, see "[Configuring a publishing source for your GitHub Pages site](https://docs.github.com/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site)." For information about the API to manage GitHub Pages, see "[Pages](https://docs.github.com/rest/pages)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pages" repository permission. + operationId: page-build + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#page_build + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-page-build" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: page_build + supported-webhook-types: + - repository + - organization + - app + personal-access-token-request-approved: + post: + summary: |- + This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see "[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Personal access token requests" organization permission. + description: A fine-grained personal access token request was approved. + operationId: personal-access-token-request/approved + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Github-Event + in: header + example: personal_access_token_request + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: integration + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-personal-access-token-request-approved" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: personal_access_token_request + supported-webhook-types: + - app + - organization + personal-access-token-request-cancelled: + post: + summary: |- + This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see "[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Personal access token requests" organization permission. + description: A fine-grained personal access token request was cancelled by the + requester. + operationId: personal-access-token-request/cancelled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Github-Event + in: header + example: personal_access_token_request + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: integration + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-personal-access-token-request-cancelled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: personal_access_token_request + supported-webhook-types: + - app + - organization + personal-access-token-request-created: + post: + summary: |- + This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see "[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Personal access token requests" organization permission. + description: A fine-grained personal access token request was created. + operationId: personal-access-token-request/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Github-Event + in: header + example: personal_access_token_request + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: integration + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-personal-access-token-request-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: personal_access_token_request + supported-webhook-types: + - app + - organization + personal-access-token-request-denied: + post: + summary: |- + This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see "[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Personal access token requests" organization permission. + description: A fine-grained personal access token request was denied. + operationId: personal-access-token-request/denied + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Github-Event + in: header + example: personal_access_token_request + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: integration + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-personal-access-token-request-denied" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: personal_access_token_request + supported-webhook-types: + - app + - organization + ping: + post: + summary: This event occurs when you create a new webhook. The ping event is + a confirmation from GitHub that you configured the webhook correctly. + operationId: ping + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#ping + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-ping" + examples: + default: + "$ref": "#/components/examples/ping" + application/x-www-form-urlencoded: + schema: + "$ref": "#/components/schemas/webhook-ping-form-encoded" + examples: + default: + "$ref": "#/components/examples/ping-form-encoded" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: ping + supported-webhook-types: + - repository + - organization + - app + - business + - marketplace + project-card-converted: + post: + summary: |- + This event occurs when there is activity relating to a card on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A note in a project (classic) was converted to an issue. + operationId: project-card/converted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_card + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-card-converted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_card + supported-webhook-types: + - repository + - organization + - app + project-card-created: + post: + summary: |- + This event occurs when there is activity relating to a card on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A card was added to a project (classic). + operationId: project-card/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_card + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-card-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_card + supported-webhook-types: + - repository + - organization + - app + project-card-deleted: + post: + summary: |- + This event occurs when there is activity relating to a card on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A card on a project (classic) was deleted. + operationId: project-card/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_card + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-card-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_card + supported-webhook-types: + - repository + - organization + - app + project-card-edited: + post: + summary: |- + This event occurs when there is activity relating to a card on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A note on a project (classic) was edited. + operationId: project-card/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_card + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-card-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_card + supported-webhook-types: + - repository + - organization + - app + project-card-moved: + post: + summary: |- + This event occurs when there is activity relating to a card on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A card on a project (classic) was moved to another column or to + another position in its column. + operationId: project-card/moved + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_card + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-card-moved" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_card + supported-webhook-types: + - repository + - organization + - app + project-closed: + post: + summary: |- + This event occurs when there is activity relating to a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A project (classic) was closed. + operationId: project/closed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-closed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project + supported-webhook-types: + - repository + - organization + - app + project-column-created: + post: + summary: |- + This event occurs when there is activity relating to a column on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A column was added to a project (classic). + operationId: project-column/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_column + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-column-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_column + supported-webhook-types: + - repository + - organization + - app + project-column-deleted: + post: + summary: |- + This event occurs when there is activity relating to a column on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A column was deleted from a project (classic). + operationId: project-column/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_column + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-column-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_column + supported-webhook-types: + - repository + - organization + - app + project-column-edited: + post: + summary: |- + This event occurs when there is activity relating to a column on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: The name of a column on a project (classic) was changed. + operationId: project-column/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_column + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-column-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_column + supported-webhook-types: + - repository + - organization + - app + project-column-moved: + post: + summary: |- + This event occurs when there is activity relating to a column on a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A column was moved to a new position on a project (classic). + operationId: project-column/moved + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project_column + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-column-moved" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project_column + supported-webhook-types: + - repository + - organization + - app + project-created: + post: + summary: |- + This event occurs when there is activity relating to a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A project (classic) was created. + operationId: project/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project + supported-webhook-types: + - repository + - organization + - app + project-deleted: + post: + summary: |- + This event occurs when there is activity relating to a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A project (classic) was deleted. + operationId: project/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project + supported-webhook-types: + - repository + - organization + - app + project-edited: + post: + summary: |- + This event occurs when there is activity relating to a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: The name or description of a project (classic) was changed. + operationId: project/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project + supported-webhook-types: + - repository + - organization + - app + project-reopened: + post: + summary: |- + This event occurs when there is activity relating to a project (classic). For more information, see "[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or "[Projects (classic)](https://docs.github.com/rest/projects)" in the REST API documentation. + + For activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event. + + This event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" repository or organization permission. + description: A project (classic) was closed. + operationId: project/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#project + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-project-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: project + supported-webhook-types: + - repository + - organization + - app + projects-v2-closed: + post: + summary: |- + This event occurs when there is activity relating to an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2). + + For activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A project in the organization was closed. + operationId: projects-v2/closed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2 + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-project-closed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2 + supported-webhook-types: + - organization + projects-v2-created: + post: + summary: |- + This event occurs when there is activity relating to an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2). + + For activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A project in the organization was created. + operationId: projects-v2/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2 + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-project-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2 + supported-webhook-types: + - organization + projects-v2-deleted: + post: + summary: |- + This event occurs when there is activity relating to an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2). + + For activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A project in the organization was deleted. + operationId: projects-v2/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2 + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-project-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2 + supported-webhook-types: + - organization + projects-v2-edited: + post: + summary: |- + This event occurs when there is activity relating to an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2). + + For activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: The title, description, or README of a project in the organization + was changed. + operationId: projects-v2/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2 + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-project-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2 + supported-webhook-types: + - organization + projects-v2-item-archived: + post: + summary: |- + This event occurs when there is activity relating to an item on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item). + + For activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: An item on an organization project was archived. For more information, + see "[Archiving items from your project](https://docs.github.com/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project)." + operationId: projects-v2-item/archived + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-item + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-item-archived" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_item + supported-webhook-types: + - organization + projects-v2-item-converted: + post: + summary: |- + This event occurs when there is activity relating to an item on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item). + + For activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A draft issue in an organization project was converted to an issue. + operationId: projects-v2-item/converted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-item + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-item-converted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_item + supported-webhook-types: + - organization + projects-v2-item-created: + post: + summary: |- + This event occurs when there is activity relating to an item on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item). + + For activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: An item was added to a project in the organization. + operationId: projects-v2-item/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-item + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-item-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_item + supported-webhook-types: + - organization + projects-v2-item-deleted: + post: + summary: |- + This event occurs when there is activity relating to an item on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item). + + For activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: An item was deleted from a project in the organization. + operationId: projects-v2-item/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-item + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-item-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_item + supported-webhook-types: + - organization + projects-v2-item-edited: + post: + summary: |- + This event occurs when there is activity relating to an item on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item). + + For activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: The values or state of an item in an organization project were + changed. For example, the value of a field was updated, the body of a draft + issue was changed, or a draft issue was converted to an issue. + operationId: projects-v2-item/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-item + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-item-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_item + supported-webhook-types: + - organization + projects-v2-item-reordered: + post: + summary: |- + This event occurs when there is activity relating to an item on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item). + + For activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: The position of an item in an organization project was changed. + For example, an item was moved above or below another item in the table or + board layout. + operationId: projects-v2-item/reordered + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-item + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-item-reordered" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_item + supported-webhook-types: + - organization + projects-v2-item-restored: + post: + summary: |- + This event occurs when there is activity relating to an item on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item). + + For activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: An archived item on an organization project was restored from the + archive. For more information, see "[Archiving items from your project](https://docs.github.com/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project)." + operationId: projects-v2-item/restored + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-item + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-item-restored" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_item + supported-webhook-types: + - organization + projects-v2-reopened: + post: + summary: |- + This event occurs when there is activity relating to an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2). + + For activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A project in the organization was reopened. + operationId: projects-v2/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2 + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-project-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2 + supported-webhook-types: + - organization + projects-v2-status-update-created: + post: + summary: |- + This event occurs when there is activity relating to a status update on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." + + For activity relating to a project, use the `projects_v2` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A status update was added to a project in the organization. + operationId: projects-v2-status-update/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-status-update + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-status-update-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_status_update + supported-webhook-types: + - organization + projects-v2-status-update-deleted: + post: + summary: |- + This event occurs when there is activity relating to a status update on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." + + For activity relating to a project, use the `projects_v2` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A status update was removed from a project in the organization. + operationId: projects-v2-status-update/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-status-update + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-status-update-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_status_update + supported-webhook-types: + - organization + projects-v2-status-update-edited: + post: + summary: |- + This event occurs when there is activity relating to a status update on an organization-level project. For more information, see "[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)." + + For activity relating to a project, use the `projects_v2` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Projects" organization permission. + + > [!NOTE] + > To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405). + description: A status update was edited on a project in the organization. + operationId: projects-v2-status-update/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: project-v2-status-update + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-projects-v2-status-update-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: projects_v2_status_update + supported-webhook-types: + - organization + public: + post: + summary: |- + This event occurs when repository visibility changes from private to public. For more information, see "[Setting repository visibility](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + operationId: public + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#public + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-public" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: public + supported-webhook-types: + - repository + - organization + - app + pull-request-assigned: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was assigned to a user. + operationId: pull-request/assigned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-assigned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-auto-merge-disabled: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: Auto merge was disabled for a pull request. For more information, + see "[Automatically merging a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request)." + operationId: pull-request/auto-merge-disabled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-auto-merge-disabled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-auto-merge-enabled: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: Auto merge was enabled for a pull request. For more information, + see "[Automatically merging a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request)." + operationId: pull-request/auto-merge-enabled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-auto-merge-enabled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-closed: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was closed. If `merged` is false in the webhook + payload, the pull request was closed with unmerged commits. If `merged` is + true in the webhook payload, the pull request was merged. + operationId: pull-request/closed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-closed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-converted-to-draft: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was converted to a draft. For more information, + see "[Changing the stage of a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request)." + operationId: pull-request/converted-to-draft + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-converted-to-draft" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-demilestoned: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was removed from a milestone. + operationId: pull-request/demilestoned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-demilestoned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-dequeued: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was removed from the merge queue. + operationId: pull-request/dequeued + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-dequeued" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-edited: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: The title or body of a pull request was edited, or the base branch + of a pull request was changed. + operationId: pull-request/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-enqueued: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was added to the merge queue. + operationId: pull-request/enqueued + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-enqueued" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-labeled: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A label was added to a pull request. + operationId: pull-request/labeled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-labeled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-locked: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: Conversation on a pull request was locked. For more information, + see "[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations)." + operationId: pull-request/locked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-locked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-milestoned: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was added to a milestone. + operationId: pull-request/milestoned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-milestoned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-opened: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request was created + operationId: pull-request/opened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-opened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-ready-for-review: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A draft pull request was marked as ready for review. For more information, + see "[Changing the stage of a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request)." + operationId: pull-request/ready-for-review + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-ready-for-review" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-reopened: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A previously closed pull request was reopened. + operationId: pull-request/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-review-comment-created: + post: + summary: |- + This event occurs when there is activity relating to a pull request review comment. A pull request review comment is a comment on a pull request's diff. For more information, see "[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)." For information about the APIs to manage pull request review comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewcomment) or "[Pull request review comments](https://docs.github.com/rest/pulls/comments)" in the REST API documentation. + + For activity related to pull request reviews, pull request comments, or pull request review threads, use the `pull_request_review`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A comment on a pull request diff was created. + operationId: pull-request-review-comment/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-comment-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review_comment + supported-webhook-types: + - repository + - organization + - app + pull-request-review-comment-deleted: + post: + summary: |- + This event occurs when there is activity relating to a pull request review comment. A pull request review comment is a comment on a pull request's diff. For more information, see "[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)." For information about the APIs to manage pull request review comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewcomment) or "[Pull request review comments](https://docs.github.com/rest/pulls/comments)" in the REST API documentation. + + For activity related to pull request reviews, pull request comments, or pull request review threads, use the `pull_request_review`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A comment on a pull request diff was deleted. + operationId: pull-request-review-comment/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-comment-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review_comment + supported-webhook-types: + - repository + - organization + - app + pull-request-review-comment-edited: + post: + summary: |- + This event occurs when there is activity relating to a pull request review comment. A pull request review comment is a comment on a pull request's diff. For more information, see "[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)." For information about the APIs to manage pull request review comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewcomment) or "[Pull request review comments](https://docs.github.com/rest/pulls/comments)" in the REST API documentation. + + For activity related to pull request reviews, pull request comments, or pull request review threads, use the `pull_request_review`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: The content of a comment on a pull request diff was changed. + operationId: pull-request-review-comment/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_comment + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-comment-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review_comment + supported-webhook-types: + - repository + - organization + - app + pull-request-review-dismissed: + post: + summary: |- + This event occurs when there is activity relating to a pull request review. A pull request review is a group of pull request review comments in addition to a body comment and a state. For more information, see "[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews)." For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreview) or "[Pull request reviews](https://docs.github.com/rest/pulls/reviews)" in the REST API documentation. + + For activity related to pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A review on a pull request was dismissed. + operationId: pull-request-review/dismissed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-dismissed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review + supported-webhook-types: + - repository + - organization + - app + pull-request-review-edited: + post: + summary: |- + This event occurs when there is activity relating to a pull request review. A pull request review is a group of pull request review comments in addition to a body comment and a state. For more information, see "[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews)." For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreview) or "[Pull request reviews](https://docs.github.com/rest/pulls/reviews)" in the REST API documentation. + + For activity related to pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: The body comment on a pull request review was edited. + operationId: pull-request-review/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review + supported-webhook-types: + - repository + - organization + - app + pull-request-review-request-removed: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A request for review by a person or team was removed from a pull + request. + operationId: pull-request/review-request-removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-request-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-review-requested: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: Review by a person or team was requested for a pull request. For + more information, see "[Requesting a pull request review](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review)." + operationId: pull-request/review-requested + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-requested" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-review-submitted: + post: + summary: |- + This event occurs when there is activity relating to a pull request review. A pull request review is a group of pull request review comments in addition to a body comment and a state. For more information, see "[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews)." For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreview) or "[Pull request reviews](https://docs.github.com/rest/pulls/reviews)" in the REST API documentation. + + For activity related to pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A review on a pull request was submitted. + operationId: pull-request-review/submitted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-submitted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review + supported-webhook-types: + - repository + - organization + - app + pull-request-review-thread-resolved: + post: + summary: |- + This event occurs when there is activity relating to a comment thread on a pull request. For more information, see "[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews)." For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewthread) or "[Pull request review comments](https://docs.github.com/rest/pulls/comments)" in the REST API documentation. + + For activity related to pull request review comments, pull request comments, or pull request reviews, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A comment thread on a pull request was marked as resolved. + operationId: pull-request-review-thread/resolved + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_thread + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-thread-resolved" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review_thread + supported-webhook-types: + - repository + - organization + - app + pull-request-review-thread-unresolved: + post: + summary: |- + This event occurs when there is activity relating to a comment thread on a pull request. For more information, see "[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews)." For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewthread) or "[Pull request review comments](https://docs.github.com/rest/pulls/comments)" in the REST API documentation. + + For activity related to pull request review comments, pull request comments, or pull request reviews, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A previously resolved comment thread on a pull request was marked + as unresolved. + operationId: pull-request-review-thread/unresolved + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_thread + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-review-thread-unresolved" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request_review_thread + supported-webhook-types: + - repository + - organization + - app + pull-request-synchronize: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A pull request's head branch was updated. For example, the head + branch was updated from the base branch or new commits were pushed to the + head branch. + operationId: pull-request/synchronize + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-synchronize" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-unassigned: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A user was unassigned from a pull request. + operationId: pull-request/unassigned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-unassigned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-unlabeled: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: A label was removed from a pull request. + operationId: pull-request/unlabeled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-unlabeled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + pull-request-unlocked: + post: + summary: |- + This event occurs when there is activity on a pull request. For more information, see "[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or "[Pulls](https://docs.github.com/rest/pulls/pulls)" in the REST API documentation. + + For activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Pull requests" repository permission. + description: Conversation on a pull request was unlocked. For more information, + see "[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations)." + operationId: pull-request/unlocked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-pull-request-unlocked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: pull_request + supported-webhook-types: + - repository + - organization + - app + push: + post: + summary: |- + This event occurs when there is a push to a repository branch. This includes when a commit is pushed, when a commit tag is pushed, + when a branch is deleted, when a tag is deleted, or when a repository is created from a template. To subscribe to only branch + and tag deletions, use the [`delete`](#delete) webhook event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + + > [!NOTE] + > Events will not be created if more than 5000 branches are pushed at once. Events will not be created for tags when more than three tags are pushed at once. + operationId: push + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#push + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-push" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: push + supported-webhook-types: + - repository + - organization + - app + registry-package-published: + post: + summary: |- + This event occurs when there is activity relating to GitHub Packages. For more information, see "[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages)." For information about the APIs to manage GitHub Packages, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#package) or "[Packages](https://docs.github.com/rest/packages)" in the REST API documentation. + + To install this event on a GitHub App, the app must have at least read-level access for the "Packages" repository permission. + + > [!NOTE] + > GitHub recommends that you use the newer `package` event instead. + description: A package was published to a registry. + operationId: registry-package/published + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#registry_package + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-registry-package-published" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: registry_package + supported-webhook-types: + - repository + - organization + - app + registry-package-updated: + post: + summary: |- + This event occurs when there is activity relating to GitHub Packages. For more information, see "[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages)." For information about the APIs to manage GitHub Packages, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#package) or "[Packages](https://docs.github.com/rest/packages)" in the REST API documentation. + + To install this event on a GitHub App, the app must have at least read-level access for the "Packages" repository permission. + + > [!NOTE] + > GitHub recommends that you use the newer `package` event instead. + description: A package that was previously published to a registry was updated. + operationId: registry-package/updated + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#registry_package + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-registry-package-updated" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: registry_package + supported-webhook-types: + - repository + - organization + - app + release-created: + post: + summary: |- + This event occurs when there is activity relating to releases. For more information, see "[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases)." For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or "[Releases](https://docs.github.com/rest/releases)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: A draft was saved, or a release or pre-release was published without + previously being saved as a draft. + operationId: release/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#release + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-release-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: release + supported-webhook-types: + - repository + - organization + - app + release-deleted: + post: + summary: |- + This event occurs when there is activity relating to releases. For more information, see "[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases)." For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or "[Releases](https://docs.github.com/rest/releases)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: A release, pre-release, or draft release was deleted. + operationId: release/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#release + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-release-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: release + supported-webhook-types: + - repository + - organization + - app + release-edited: + post: + summary: |- + This event occurs when there is activity relating to releases. For more information, see "[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases)." For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or "[Releases](https://docs.github.com/rest/releases)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: The details of a release, pre-release, or draft release were edited. + For more information, see "[Managing releases in a repository](https://docs.github.com/repositories/releasing-projects-on-github/managing-releases-in-a-repository#editing-a-release)." + operationId: release/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#release + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-release-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: release + supported-webhook-types: + - repository + - organization + - app + release-prereleased: + post: + summary: |- + This event occurs when there is activity relating to releases. For more information, see "[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases)." For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or "[Releases](https://docs.github.com/rest/releases)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: A release was created and identified as a pre-release. A pre-release + is a release that is not ready for production and may be unstable. + operationId: release/prereleased + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#release + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-release-prereleased" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: release + supported-webhook-types: + - repository + - organization + - app + release-published: + post: + summary: |- + This event occurs when there is activity relating to releases. For more information, see "[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases)." For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or "[Releases](https://docs.github.com/rest/releases)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: A release, pre-release, or draft of a release was published. + operationId: release/published + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#release + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-release-published" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: release + supported-webhook-types: + - repository + - organization + - app + release-released: + post: + summary: |- + This event occurs when there is activity relating to releases. For more information, see "[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases)." For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or "[Releases](https://docs.github.com/rest/releases)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: A release was published, or a pre-release was changed to a release. + operationId: release/released + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#release + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-release-released" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: release + supported-webhook-types: + - repository + - organization + - app + release-unpublished: + post: + summary: |- + This event occurs when there is activity relating to releases. For more information, see "[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases)." For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or "[Releases](https://docs.github.com/rest/releases)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + description: A release or pre-release was unpublished. + operationId: release/unpublished + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#release + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-release-unpublished" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: release + supported-webhook-types: + - repository + - organization + - app + repository-advisory-published: + post: + summary: |- + This event occurs when there is activity relating to a repository security advisory. For more information about repository security advisories, see "[About GitHub Security Advisories for repositories](https://docs.github.com/code-security/repository-security-advisories/about-github-security-advisories-for-repositories)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Repository security advisories" permission. + description: A repository security advisory was published. + operationId: repository-advisory/published + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_advisory + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-advisory-published" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_advisory + supported-webhook-types: + - repository + - organization + - app + repository-advisory-reported: + post: + summary: |- + This event occurs when there is activity relating to a repository security advisory. For more information about repository security advisories, see "[About GitHub Security Advisories for repositories](https://docs.github.com/code-security/repository-security-advisories/about-github-security-advisories-for-repositories)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Repository security advisories" permission. + description: A private vulnerability report was submitted. + operationId: repository-advisory/reported + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_advisory + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-advisory-reported" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_advisory + supported-webhook-types: + - repository + - organization + - app + repository-archived: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: A repository was archived. + operationId: repository/archived + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-archived" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-created: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: A repository was created. + operationId: repository/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-deleted: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: A repository was deleted. GitHub Apps and repository webhooks will + not receive this event. + operationId: repository/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-dispatch-sample.collected: + post: + summary: |- + This event occurs when a GitHub App sends a `POST` request to `/repos/{owner}/{repo}/dispatches`. For more information, see [the REST API documentation for creating a repository dispatch event](https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event). In the payload, the `action` will be the `event_type` that was specified in the `POST /repos/{owner}/{repo}/dispatches` request body. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + operationId: repository-dispatch/sample.collected + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_dispatch + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-dispatch-sample" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_dispatch + supported-webhook-types: + - app + repository-edited: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: The topics, default branch, description, or homepage of a repository + was changed. + operationId: repository/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-import: + post: + summary: This event occurs when a repository is imported to GitHub. For more + information, see "[Importing a repository with GitHub Importer](https://docs.github.com/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer)." + For more information about the API to manage imports, see [the REST API documentation](https://docs.github.com/rest/migrations/source-imports). + operationId: repository-import + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_import + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-import" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_import + supported-webhook-types: + - repository + - organization + repository-privatized: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: The visibility of a repository was changed to `private`. + operationId: repository/privatized + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-privatized" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-publicized: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: The visibility of a repository was changed to `public`. + operationId: repository/publicized + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-publicized" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-renamed: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: The name of a repository was changed. + operationId: repository/renamed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-renamed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-ruleset-created: + post: + summary: |- + This event occurs when there is activity relating to repository rulesets. + For more information about repository rulesets, see "[Managing rulesets](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets)." + For more information on managing rulesets via the APIs, see [Repository ruleset](https://docs.github.com/graphql/reference/objects#repositoryruleset) in the GraphQL documentation or "[Repository rules](https://docs.github.com/rest/repos/rules)" and "[Organization rules](https://docs.github.com/rest/orgs/rules) in the REST API documentation." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository or organization permission. + description: A repository ruleset was created. + operationId: repository-ruleset/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_ruleset + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-ruleset-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_ruleset + supported-webhook-types: + - repository + - organization + - app + repository-ruleset-deleted: + post: + summary: |- + This event occurs when there is activity relating to repository rulesets. + For more information about repository rulesets, see "[Managing rulesets](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets)." + For more information on managing rulesets via the APIs, see [Repository ruleset](https://docs.github.com/graphql/reference/objects#repositoryruleset) in the GraphQL documentation or "[Repository rules](https://docs.github.com/rest/repos/rules)" and "[Organization rules](https://docs.github.com/rest/orgs/rules) in the REST API documentation." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository or organization permission. + description: A repository ruleset was deleted. + operationId: repository-ruleset/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_ruleset + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-ruleset-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_ruleset + supported-webhook-types: + - repository + - organization + - app + repository-ruleset-edited: + post: + summary: |- + This event occurs when there is activity relating to repository rulesets. + For more information about repository rulesets, see "[Managing rulesets](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets)." + For more information on managing rulesets via the APIs, see [Repository ruleset](https://docs.github.com/graphql/reference/objects#repositoryruleset) in the GraphQL documentation or "[Repository rules](https://docs.github.com/rest/repos/rules)" and "[Organization rules](https://docs.github.com/rest/orgs/rules) in the REST API documentation." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository or organization permission. + description: A repository ruleset was edited. + operationId: repository-ruleset/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_ruleset + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-ruleset-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_ruleset + supported-webhook-types: + - repository + - organization + - app + repository-transferred: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: Ownership of the repository was transferred to a user or organization + account. This event is only sent to the account where the ownership is transferred. + To receive the `repository.transferred` event, the new owner account must + have the GitHub App installed, and the App must be subscribed to "Repository" + events. + operationId: repository/transferred + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-transferred" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-unarchived: + post: + summary: |- + This event occurs when there is activity relating to repositories. For more information, see "[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories)." For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or "[Repositories](https://docs.github.com/rest/repos)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: A previously archived repository was unarchived. + operationId: repository/unarchived + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-unarchived" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository + supported-webhook-types: + - business + - repository + - organization + - app + repository-vulnerability-alert-create: + post: + summary: |- + This event occurs when there is activity relating to a security vulnerability alert in a repository. + + > [!WARNING] + > **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead. + description: A repository vulnerability alert was created. + operationId: repository-vulnerability-alert/create + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-create" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_vulnerability_alert + supported-webhook-types: + - repository + - organization + repository-vulnerability-alert-dismiss: + post: + summary: |- + This event occurs when there is activity relating to a security vulnerability alert in a repository. + + > [!WARNING] + > **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead. + description: A repository vulnerability alert was dismissed. + operationId: repository-vulnerability-alert/dismiss + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-dismiss" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_vulnerability_alert + supported-webhook-types: + - repository + - organization + repository-vulnerability-alert-reopen: + post: + summary: |- + This event occurs when there is activity relating to a security vulnerability alert in a repository. + + > [!WARNING] + > **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead. + description: A previously dismissed or resolved repository vulnerability alert + was reopened. + operationId: repository-vulnerability-alert/reopen + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-reopen" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_vulnerability_alert + supported-webhook-types: + - repository + - organization + repository-vulnerability-alert-resolve: + post: + summary: |- + This event occurs when there is activity relating to a security vulnerability alert in a repository. + + > [!WARNING] + > **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead. + description: A repository vulnerability alert was marked as resolved. + operationId: repository-vulnerability-alert/resolve + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-resolve" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: repository_vulnerability_alert + supported-webhook-types: + - repository + - organization + secret-scanning-alert-assigned: + post: + summary: |- + This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A secret scanning alert was assigned. + operationId: secret-scanning-alert/assigned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-assigned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_alert + supported-webhook-types: + - repository + - organization + - app + secret-scanning-alert-created: + post: + summary: |- + This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A secret scanning alert was created. + operationId: secret-scanning-alert/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_alert + supported-webhook-types: + - repository + - organization + - app + secret-scanning-alert-location-created: + post: + summary: |- + This event occurs when there is activity relating to the locations of a secret in a secret scanning alert. + + For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alerts, use the `secret_scanning_alert` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A new instance of a previously detected secret was detected in + a repository, and the location of the secret was added to the existing alert. + operationId: secret-scanning-alert-location/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert_location + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-location-created" + examples: + default: + "$ref": "#/components/examples/secret-scanning-alert-location-created" + application/x-www-form-urlencoded: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-location-created-form-encoded" + examples: + default: + "$ref": "#/components/examples/secret-scanning-alert-location-created-form-encoded" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: webhooks + subcategory: secret_scanning_alert_location + supported-webhook-types: + - repository + - organization + - app + secret-scanning-alert-publicly-leaked: + post: + summary: |- + This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A secret scanning alert was detected in a public repo. + operationId: secret-scanning-alert/publicly-leaked + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-publicly-leaked" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_alert + supported-webhook-types: + - repository + - organization + - app + secret-scanning-alert-reopened: + post: + summary: |- + This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A previously closed secret scanning alert was reopened. + operationId: secret-scanning-alert/reopened + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-reopened" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_alert + supported-webhook-types: + - repository + - organization + - app + secret-scanning-alert-resolved: + post: + summary: |- + This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A secret scanning alert was closed. + operationId: secret-scanning-alert/resolved + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-resolved" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_alert + supported-webhook-types: + - repository + - organization + - app + secret-scanning-alert-unassigned: + post: + summary: |- + This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A secret scanning alert was unassigned. + operationId: secret-scanning-alert/unassigned + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-unassigned" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_alert + supported-webhook-types: + - repository + - organization + - app + secret-scanning-alert-validated: + post: + summary: |- + This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." For information about the API to manage secret scanning alerts, see "[Secret scanning](https://docs.github.com/rest/secret-scanning)" in the REST API documentation. + + For activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A secret scanning alert was validated. + operationId: secret-scanning-alert/validated + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-alert-validated" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_alert + supported-webhook-types: + - repository + - organization + - app + secret-scanning-scan-completed: + post: + summary: |- + This event occurs when secret scanning completes certain scans on a repository. For more information about secret scanning, see "[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)." + + Scans can originate from multiple events such as updates to a custom pattern, a push to a repository, or updates + to patterns from partners. For more information on custom patterns, see "[About custom patterns](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Secret scanning alerts" repository permission. + description: A secret scanning scan was completed. + operationId: secret-scanning-scan/completed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_scan + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-secret-scanning-scan-completed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: secret_scanning_scan + supported-webhook-types: + - repository + - organization + - app + security-advisory-published: + post: + summary: |- + This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see "[About global security advisories](https://docs.github.com/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-global-security-advisories)." For information about the API to manage security advisories, see [the REST API documentation](https://docs.github.com/rest/security-advisories/global-advisories) or [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#securityadvisory). + + GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." + description: A security advisory was published to the GitHub community. + operationId: security-advisory/published + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#security_advisory + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-security-advisory-published" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: security_advisory + supported-webhook-types: + - app + security-advisory-updated: + post: + summary: |- + This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see "[About global security advisories](https://docs.github.com/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-global-security-advisories)." For information about the API to manage security advisories, see [the REST API documentation](https://docs.github.com/rest/security-advisories/global-advisories) or [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#securityadvisory). + + GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." + description: The metadata or description of a security advisory was changed. + operationId: security-advisory/updated + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#security_advisory + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-security-advisory-updated" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: security_advisory + supported-webhook-types: + - app + security-advisory-withdrawn: + post: + summary: |- + This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see "[About global security advisories](https://docs.github.com/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-global-security-advisories)." For information about the API to manage security advisories, see [the REST API documentation](https://docs.github.com/rest/security-advisories/global-advisories) or [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#securityadvisory). + + GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see "[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." + description: A previously published security advisory was withdrawn. + operationId: security-advisory/withdrawn + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#security_advisory + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-security-advisory-withdrawn" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: security_advisory + supported-webhook-types: + - app + security-and-analysis: + post: + summary: |- + This event occurs when code security and analysis features are enabled or disabled for a repository. For more information, see "[GitHub security features](https://docs.github.com/code-security/getting-started/github-security-features)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Administration" repository permission. + operationId: security-and-analysis + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#security_and_analysis + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-security-and-analysis" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: security_and_analysis + supported-webhook-types: + - repository + - organization + - app + sponsorship-cancelled: + post: + summary: |- + This event occurs when there is activity relating to a sponsorship listing. For more information, see "[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors)." For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship). + + You can only create a sponsorship webhook on GitHub.com. For more information, see "[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account)." + description: |- + A sponsorship was cancelled and the last billing cycle has ended. + + This event is only sent when a recurring (monthly) sponsorship is cancelled; it is not sent for one-time sponsorships. + operationId: sponsorship/cancelled + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sponsorship-cancelled" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sponsorship + supported-webhook-types: + - sponsors_listing + sponsorship-created: + post: + summary: |- + This event occurs when there is activity relating to a sponsorship listing. For more information, see "[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors)." For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship). + + You can only create a sponsorship webhook on GitHub.com. For more information, see "[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account)." + description: A sponsor created a sponsorship for a sponsored account. This event + occurs once the payment is successfully processed. + operationId: sponsorship/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sponsorship-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sponsorship + supported-webhook-types: + - sponsors_listing + sponsorship-edited: + post: + summary: |- + This event occurs when there is activity relating to a sponsorship listing. For more information, see "[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors)." For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship). + + You can only create a sponsorship webhook on GitHub.com. For more information, see "[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account)." + description: A monthly sponsor changed who can see their sponsorship. If you + recognize your sponsors publicly, you may want to update your sponsor recognition + to reflect the change when this event occurs. + operationId: sponsorship/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sponsorship-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sponsorship + supported-webhook-types: + - sponsors_listing + sponsorship-pending-cancellation: + post: + summary: |- + This event occurs when there is activity relating to a sponsorship listing. For more information, see "[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors)." For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship). + + You can only create a sponsorship webhook on GitHub.com. For more information, see "[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account)." + description: |- + A sponsor scheduled a cancellation for their sponsorship. The cancellation will become effective on their next billing date. + + This event is only sent when a recurring (monthly) sponsorship is cancelled; it is not sent for one-time sponsorships. + operationId: sponsorship/pending-cancellation + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sponsorship-pending-cancellation" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sponsorship + supported-webhook-types: + - sponsors_listing + sponsorship-pending-tier-change: + post: + summary: |- + This event occurs when there is activity relating to a sponsorship listing. For more information, see "[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors)." For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship). + + You can only create a sponsorship webhook on GitHub.com. For more information, see "[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account)." + description: A sponsor scheduled a downgrade to a lower sponsorship tier. The + new tier will become effective on their next billing date. + operationId: sponsorship/pending-tier-change + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sponsorship-pending-tier-change" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sponsorship + supported-webhook-types: + - sponsors_listing + sponsorship-tier-changed: + post: + summary: |- + This event occurs when there is activity relating to a sponsorship listing. For more information, see "[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors)." For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship). + + You can only create a sponsorship webhook on GitHub.com. For more information, see "[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account)." + description: A sponsor changed the tier of their sponsorship and the change + has taken effect. If a sponsor upgraded their tier, the change took effect + immediately. If a sponsor downgraded their tier, the change took effect at + the beginning of the sponsor's next billing cycle. + operationId: sponsorship/tier-changed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sponsorship-tier-changed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sponsorship + supported-webhook-types: + - sponsors_listing + star-created: + post: + summary: |- + This event occurs when there is activity relating to repository stars. For more information about stars, see "[Saving repositories with stars](https://docs.github.com/get-started/exploring-projects-on-github/saving-repositories-with-stars)." For information about the APIs to manage stars, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#starredrepositoryconnection) or "[Starring](https://docs.github.com/rest/activity/starring)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: Someone starred a repository. + operationId: star/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#star + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-star-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: star + supported-webhook-types: + - repository + - organization + - app + star-deleted: + post: + summary: |- + This event occurs when there is activity relating to repository stars. For more information about stars, see "[Saving repositories with stars](https://docs.github.com/get-started/exploring-projects-on-github/saving-repositories-with-stars)." For information about the APIs to manage stars, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#starredrepositoryconnection) or "[Starring](https://docs.github.com/rest/activity/starring)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: Someone unstarred the repository. + operationId: star/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#star + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-star-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: star + supported-webhook-types: + - repository + - organization + - app + status: + post: + summary: |- + This event occurs when the status of a Git commit changes. For example, commits can be marked as `error`, `failure`, `pending`, or `success`. For more information, see "[About status checks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks)." For information about the APIs to manage commit statuses, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#status) or "[Commit statuses](https://docs.github.com/rest/commits/statuses)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Commit statuses" repository permission. + operationId: status + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#status + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-status" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: status + supported-webhook-types: + - repository + - organization + - app + sub-issues-parent-issue-added: + post: + summary: |- + This event occurs when there is activity relating to sub-issues. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: A parent issue was added to an issue. + operationId: sub-issues/parent-issue-added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sub-issues-parent-issue-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sub-issues + supported-webhook-types: + - repository + - organization + - app + sub-issues-parent-issue-removed: + post: + summary: |- + This event occurs when there is activity relating to sub-issues. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: A parent issue was removed from an issue. + operationId: sub-issues/parent-issue-removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sub-issues-parent-issue-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sub-issues + supported-webhook-types: + - repository + - organization + - app + sub-issues-sub-issue-added: + post: + summary: |- + This event occurs when there is activity relating to sub-issues. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: A sub-issue was added to an issue. + operationId: sub-issues/sub-issue-added + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sub-issues-sub-issue-added" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sub-issues + supported-webhook-types: + - repository + - organization + - app + sub-issues-sub-issue-removed: + post: + summary: |- + This event occurs when there is activity relating to sub-issues. + + For activity relating to issues more generally, use the `issues` event instead. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Issues" repository permissions. + description: A sub-issue was removed from an issue. + operationId: sub-issues/sub-issue-removed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-sub-issues-sub-issue-removed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: sub-issues + supported-webhook-types: + - repository + - organization + - app + team-add: + post: + summary: |- + This event occurs when a team is added to a repository. + For more information, see "[Managing teams and people with access to your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)." + + For activity relating to teams, see the `teams` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + operationId: team-add + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#team_add + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-team-add" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: team_add + supported-webhook-types: + - repository + - organization + - app + team-added-to-repository: + post: + summary: |- + This event occurs when there is activity relating to teams in an organization. + For more information, see "[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A team was granted access to a repository. + operationId: team/added-to-repository + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#team + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-team-added-to-repository" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: team + supported-webhook-types: + - organization + - business + - app + team-created: + post: + summary: |- + This event occurs when there is activity relating to teams in an organization. + For more information, see "[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A team was created. + operationId: team/created + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#team + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-team-created" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: team + supported-webhook-types: + - organization + - business + - app + team-deleted: + post: + summary: |- + This event occurs when there is activity relating to teams in an organization. + For more information, see "[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A team was deleted. + operationId: team/deleted + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#team + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-team-deleted" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: team + supported-webhook-types: + - organization + - business + - app + team-edited: + post: + summary: |- + This event occurs when there is activity relating to teams in an organization. + For more information, see "[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: The name, description, or visibility of a team was changed. + operationId: team/edited + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#team + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-team-edited" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: team + supported-webhook-types: + - organization + - business + - app + team-removed-from-repository: + post: + summary: |- + This event occurs when there is activity relating to teams in an organization. + For more information, see "[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams)." + + To subscribe to this event, a GitHub App must have at least read-level access for the "Members" organization permission. + description: A team's access to a repository was removed. + operationId: team/removed-from-repository + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#team + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-team-removed-from-repository" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: team + supported-webhook-types: + - organization + - business + - app + watch-started: + post: + summary: |- + This event occurs when there is activity relating to watching, or subscribing to, a repository. For more information about watching, see "[Managing your subscriptions](https://docs.github.com/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/managing-your-subscriptions)." For information about the APIs to manage watching, see "[Watching](https://docs.github.com/rest/activity/watching)" in the REST API documentation. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Metadata" repository permission. + description: Someone started watching the repository. + operationId: watch/started + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#watch + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-watch-started" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: watch + supported-webhook-types: + - repository + - organization + - app + workflow-dispatch: + post: + summary: |- + This event occurs when a GitHub Actions workflow is manually triggered. For more information, see "[Manually running a workflow](https://docs.github.com/actions/managing-workflow-runs/manually-running-a-workflow)." + + For activity relating to workflow runs, use the `workflow_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Contents" repository permission. + operationId: workflow-dispatch + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_dispatch + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-dispatch" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_dispatch + supported-webhook-types: + - app + workflow-job-completed: + post: + summary: |- + This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see "[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow)." For information about the API to manage workflow jobs, see "[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)" in the REST API documentation. + + For activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Actions" repository permission. + description: A job in a workflow run finished. This event occurs when a job + in a workflow is completed, regardless of whether the job was successful or + unsuccessful. + operationId: workflow-job/completed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-job-completed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_job + supported-webhook-types: + - business + - repository + - organization + - app + workflow-job-in-progress: + post: + summary: |- + This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see "[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow)." For information about the API to manage workflow jobs, see "[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)" in the REST API documentation. + + For activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Actions" repository permission. + description: A job in a workflow run started processing on a runner. + operationId: workflow-job/in-progress + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-job-in-progress" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_job + supported-webhook-types: + - business + - repository + - organization + - app + workflow-job-queued: + post: + summary: |- + This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see "[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow)." For information about the API to manage workflow jobs, see "[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)" in the REST API documentation. + + For activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Actions" repository permission. + description: A job in a workflow run was created. + operationId: workflow-job/queued + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-job-queued" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_job + supported-webhook-types: + - business + - repository + - organization + - app + workflow-job-waiting: + post: + summary: |- + This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see "[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow)." For information about the API to manage workflow jobs, see "[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)" in the REST API documentation. + + For activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Actions" repository permission. + description: A job in a workflow run was created and is waiting for approvals. + operationId: workflow-job/waiting + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-job-waiting" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_job + supported-webhook-types: + - business + - repository + - organization + - app + workflow-run-completed: + post: + summary: |- + This event occurs when there is activity relating to a run of a GitHub Actions workflow. For more information, see "[About workflows](https://docs.github.com/actions/using-workflows/about-workflows)." For information about the APIs to manage workflow runs, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#workflowrun) or "[Workflow runs](https://docs.github.com/rest/actions/workflow-runs)" in the REST API documentation. + + For activity relating to a job in a workflow run, use the `workflow_job` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Actions" repository permission. + description: A workflow run finished. This event occurs when a workflow run + is completed, regardless of whether the workflow was successful or unsuccessful. + operationId: workflow-run/completed + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_run + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-run-completed" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_run + supported-webhook-types: + - business + - repository + - organization + - app + workflow-run-in-progress: + post: + summary: |- + This event occurs when there is activity relating to a run of a GitHub Actions workflow. For more information, see "[About workflows](https://docs.github.com/actions/using-workflows/about-workflows)." For information about the APIs to manage workflow runs, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#workflowrun) or "[Workflow runs](https://docs.github.com/rest/actions/workflow-runs)" in the REST API documentation. + + For activity relating to a job in a workflow run, use the `workflow_job` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Actions" repository permission. + description: A workflow run started processing on a runner. + operationId: workflow-run/in-progress + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_run + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-run-in-progress" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_run + supported-webhook-types: + - business + - repository + - organization + - app + workflow-run-requested: + post: + summary: |- + This event occurs when there is activity relating to a run of a GitHub Actions workflow. For more information, see "[About workflows](https://docs.github.com/actions/using-workflows/about-workflows)." For information about the APIs to manage workflow runs, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#workflowrun) or "[Workflow runs](https://docs.github.com/rest/actions/workflow-runs)" in the REST API documentation. + + For activity relating to a job in a workflow run, use the `workflow_job` event. + + To subscribe to this event, a GitHub App must have at least read-level access for the "Actions" repository permission. + description: A workflow run was triggered. + operationId: workflow-run/requested + externalDocs: + url: https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_run + parameters: + - name: User-Agent + in: header + example: GitHub-Hookshot/123abc + schema: + type: string + - name: X-Github-Hook-Id + in: header + example: 12312312 + schema: + type: string + - name: X-Github-Event + in: header + example: issues + schema: + type: string + - name: X-Github-Hook-Installation-Target-Id + in: header + example: 123123 + schema: + type: string + - name: X-Github-Hook-Installation-Target-Type + in: header + example: repository + schema: + type: string + - name: X-GitHub-Delivery + in: header + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + schema: + type: string + - name: X-Hub-Signature-256 + in: header + example: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/webhook-workflow-run-requested" + responses: + '200': + description: Return a 200 status to indicate that the data was received + successfully + x-github: + githubCloudOnly: false + category: webhooks + subcategory: workflow_run + supported-webhook-types: + - business + - repository + - organization + - app +components: + schemas: + root: + type: object + properties: + current_user_url: + type: string + format: uri-template + current_user_authorizations_html_url: + type: string + format: uri-template + authorizations_url: + type: string + format: uri-template + code_search_url: + type: string + format: uri-template + commit_search_url: + type: string + format: uri-template + emails_url: + type: string + format: uri-template + emojis_url: + type: string + format: uri-template + events_url: + type: string + format: uri-template + feeds_url: + type: string + format: uri-template + followers_url: + type: string + format: uri-template + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + hub_url: + type: string + format: uri-template + deprecated: true + issue_search_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + label_search_url: + type: string + format: uri-template + notifications_url: + type: string + format: uri-template + organization_url: + type: string + format: uri-template + organization_repositories_url: + type: string + format: uri-template + organization_teams_url: + type: string + format: uri-template + public_gists_url: + type: string + format: uri-template + rate_limit_url: + type: string + format: uri-template + repository_url: + type: string + format: uri-template + repository_search_url: + type: string + format: uri-template + current_user_repositories_url: + type: string + format: uri-template + starred_url: + type: string + format: uri-template + starred_gists_url: + type: string + format: uri-template + topic_search_url: + type: string + format: uri-template + user_url: + type: string + format: uri-template + user_organizations_url: + type: string + format: uri-template + user_repositories_url: + type: string + format: uri-template + user_search_url: + type: string + format: uri-template + required: + - current_user_url + - current_user_authorizations_html_url + - authorizations_url + - code_search_url + - commit_search_url + - emails_url + - emojis_url + - events_url + - feeds_url + - followers_url + - following_url + - gists_url + - issue_search_url + - issues_url + - keys_url + - label_search_url + - notifications_url + - organization_url + - organization_repositories_url + - organization_teams_url + - public_gists_url + - rate_limit_url + - repository_url + - repository_search_url + - current_user_repositories_url + - starred_url + - starred_gists_url + - user_url + - user_organizations_url + - user_repositories_url + - user_search_url + security-advisory-ecosystems: + type: string + description: The package's language or package management ecosystem. + enum: + - rubygems + - npm + - pip + - maven + - nuget + - composer + - go + - rust + - erlang + - actions + - pub + - other + - swift + vulnerability: + description: A vulnerability describing the product and its affected versions + within a GitHub Security Advisory. + type: object + properties: + package: + description: The name of the package affected by the vulnerability. + type: object + nullable: true + properties: + ecosystem: + "$ref": "#/components/schemas/security-advisory-ecosystems" + name: + type: string + description: The unique package name within its ecosystem. + nullable: true + required: + - ecosystem + - name + vulnerable_version_range: + type: string + description: The range of the package versions affected by the vulnerability. + nullable: true + first_patched_version: + type: string + description: The package version that resolves the vulnerability. + nullable: true + vulnerable_functions: + type: array + description: The functions in the package that are affected by the vulnerability. + nullable: true + readOnly: true + items: + type: string + required: + - package + - vulnerable_version_range + - first_patched_version + - vulnerable_functions + cvss-severities: + type: object + nullable: true + properties: + cvss_v3: + type: object + nullable: true + properties: + vector_string: + type: string + description: The CVSS 3 vector string. + nullable: true + score: + type: number + description: The CVSS 3 score. + minimum: 0 + maximum: 10 + nullable: true + readOnly: true + required: + - vector_string + - score + cvss_v4: + type: object + nullable: true + properties: + vector_string: + type: string + description: The CVSS 4 vector string. + nullable: true + score: + type: number + description: The CVSS 4 score. + minimum: 0 + maximum: 10 + nullable: true + readOnly: true + required: + - vector_string + - score + security-advisory-epss: + type: object + nullable: true + readOnly: true + description: The EPSS scores as calculated by the [Exploit Prediction Scoring + System](https://www.first.org/epss). + properties: + percentage: + type: number + minimum: 0 + maximum: 100 + percentile: + type: number + minimum: 0 + maximum: 100 + simple-user: + title: Simple User + description: A GitHub user. + type: object + properties: + name: + nullable: true + type: string + email: + nullable: true + type: string + login: + type: string + example: octocat + id: + type: integer + format: int64 + example: 1 + node_id: + type: string + example: MDQ6VXNlcjE= + avatar_url: + type: string + format: uri + example: https://github.com/images/error/octocat_happy.gif + gravatar_id: + type: string + example: 41d064eb2195891e12d0413f63227ea7 + nullable: true + url: + type: string + format: uri + example: https://api.github.com/users/octocat + html_url: + type: string + format: uri + example: https://github.com/octocat + followers_url: + type: string + format: uri + example: https://api.github.com/users/octocat/followers + following_url: + type: string + example: https://api.github.com/users/octocat/following{/other_user} + gists_url: + type: string + example: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: + type: string + example: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: + type: string + format: uri + example: https://api.github.com/users/octocat/subscriptions + organizations_url: + type: string + format: uri + example: https://api.github.com/users/octocat/orgs + repos_url: + type: string + format: uri + example: https://api.github.com/users/octocat/repos + events_url: + type: string + example: https://api.github.com/users/octocat/events{/privacy} + received_events_url: + type: string + format: uri + example: https://api.github.com/users/octocat/received_events + type: + type: string + example: User + site_admin: + type: boolean + starred_at: + type: string + example: '"2020-07-09T00:17:55Z"' + user_view_type: + type: string + example: public + 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 + security-advisory-credit-types: + type: string + description: The type of credit the user is receiving. + enum: + - analyst + - finder + - reporter + - coordinator + - remediation_developer + - remediation_reviewer + - remediation_verifier + - tool + - sponsor + - other + global-advisory: + description: A GitHub Security Advisory. + type: object + properties: + ghsa_id: + type: string + description: The GitHub Security Advisory ID. + readOnly: true + cve_id: + type: string + description: The Common Vulnerabilities and Exposures (CVE) ID. + nullable: true + readOnly: true + url: + type: string + description: The API URL for the advisory. + readOnly: true + html_url: + type: string + format: uri + description: The URL for the advisory. + readOnly: true + repository_advisory_url: + type: string + format: uri + description: The API URL for the repository advisory. + readOnly: true + nullable: true + summary: + type: string + description: A short summary of the advisory. + maxLength: 1024 + description: + type: string + description: A detailed description of what the advisory entails. + maxLength: 65535 + nullable: true + type: + type: string + description: The type of advisory. + readOnly: true + enum: + - reviewed + - unreviewed + - malware + severity: + type: string + description: The severity of the advisory. + enum: + - critical + - high + - medium + - low + - unknown + source_code_location: + type: string + format: uri + description: The URL of the advisory's source code. + nullable: true + identifiers: + type: array + nullable: true + readOnly: true + items: + type: object + properties: + type: + type: string + description: The type of identifier. + enum: + - CVE + - GHSA + value: + type: string + description: The identifier value. + required: + - type + - value + references: + type: array + nullable: true + items: + type: string + description: URLs with more information regarding the advisory. + published_at: + type: string + format: date-time + description: The date and time of when the advisory was published, in ISO + 8601 format. + readOnly: true + updated_at: + type: string + format: date-time + description: The date and time of when the advisory was last updated, in + ISO 8601 format. + readOnly: true + github_reviewed_at: + type: string + format: date-time + description: The date and time of when the advisory was reviewed by GitHub, + in ISO 8601 format. + readOnly: true + nullable: true + nvd_published_at: + type: string + format: date-time + description: |- + The date and time when the advisory was published in the National Vulnerability Database, in ISO 8601 format. + This field is only populated when the advisory is imported from the National Vulnerability Database. + readOnly: true + nullable: true + withdrawn_at: + type: string + format: date-time + description: The date and time of when the advisory was withdrawn, in ISO + 8601 format. + readOnly: true + nullable: true + vulnerabilities: + type: array + description: The products and respective version ranges affected by the + advisory. + nullable: true + items: + "$ref": "#/components/schemas/vulnerability" + cvss: + type: object + nullable: true + properties: + vector_string: + type: string + description: The CVSS vector. + nullable: true + score: + type: number + description: The CVSS score. + minimum: 0 + maximum: 10 + nullable: true + readOnly: true + required: + - vector_string + - score + cvss_severities: + "$ref": "#/components/schemas/cvss-severities" + epss: + "$ref": "#/components/schemas/security-advisory-epss" + cwes: + type: array + nullable: true + items: + type: object + properties: + cwe_id: + type: string + description: The Common Weakness Enumeration (CWE) identifier. + name: + type: string + description: The name of the CWE. + readOnly: true + required: + - cwe_id + - name + credits: + type: array + description: The users who contributed to the advisory. + nullable: true + readOnly: true + items: + type: object + properties: + user: + "$ref": "#/components/schemas/simple-user" + type: + "$ref": "#/components/schemas/security-advisory-credit-types" + required: + - user + - type + required: + - ghsa_id + - cve_id + - url + - html_url + - repository_advisory_url + - summary + - description + - type + - severity + - source_code_location + - identifiers + - references + - published_at + - updated_at + - github_reviewed_at + - nvd_published_at + - withdrawn_at + - vulnerabilities + - cvss + - cwes + - credits + additionalProperties: false + basic-error: + title: Basic Error + description: Basic Error + type: object + properties: + message: + type: string + documentation_url: + type: string + url: + type: string + status: + type: string + validation-error-simple: + title: Validation Error Simple + description: Validation Error Simple + type: object + required: + - message + - documentation_url + properties: + message: + type: string + documentation_url: + type: string + errors: + type: array + items: + type: string + enterprise: + title: Enterprise + description: An enterprise on GitHub. + type: object + properties: + description: + description: A short description of the enterprise. + type: string + nullable: true + html_url: + type: string + format: uri + example: https://github.com/enterprises/octo-business + website_url: + description: The enterprise's website URL. + type: string + nullable: true + format: uri + id: + description: Unique identifier of the enterprise + example: 42 + type: integer + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + description: The name of the enterprise. + type: string + example: Octo Business + slug: + description: The slug url identifier for the enterprise. + type: string + example: octo-business + created_at: + type: string + nullable: true + format: date-time + example: '2019-01-26T19:01:12Z' + updated_at: + type: string + nullable: true + format: date-time + example: '2019-01-26T19:14:43Z' + avatar_url: + type: string + format: uri + required: + - id + - node_id + - name + - slug + - html_url + - created_at + - updated_at + - avatar_url + integration: + title: GitHub app + description: GitHub apps are a new way to extend GitHub. They can be installed + directly on organizations and user accounts and granted access to specific + repositories. They come with granular permissions and built-in webhooks. GitHub + apps are first class actors within GitHub. + type: object + nullable: true + properties: + id: + description: Unique identifier of the GitHub app + example: 37 + type: integer + slug: + description: The slug name of the GitHub app + example: probot-owners + type: string + node_id: + type: string + example: MDExOkludGVncmF0aW9uMQ== + client_id: + type: string + example: '"Iv1.25b5d1e65ffc4022"' + owner: + oneOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/enterprise" + name: + description: The name of the GitHub app + example: Probot Owners + type: string + description: + type: string + example: The description of the app. + nullable: true + external_url: + type: string + format: uri + example: https://example.com + html_url: + type: string + format: uri + example: https://github.com/apps/super-ci + created_at: + type: string + format: date-time + example: '2017-07-08T16:18:44-04:00' + updated_at: + type: string + format: date-time + example: '2017-07-08T16:18:44-04:00' + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + issues: + type: string + checks: + type: string + metadata: + type: string + contents: + type: string + deployments: + type: string + additionalProperties: + type: string + example: + issues: read + deployments: write + events: + description: The list of events for the GitHub app. Note that the `installation_target`, + `security_advisory`, and `meta` events are not included because they are + global events and not specific to an installation. + example: + - label + - deployment + type: array + items: + type: string + installations_count: + description: The number of installations associated with the GitHub app. + Only returned when the integration is requesting details about itself. + example: 5 + type: integer + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + - permissions + - events + webhook-config-url: + type: string + description: The URL to which the payloads will be delivered. + example: https://example.com/webhook + format: uri + webhook-config-content-type: + type: string + description: The media type used to serialize the payloads. Supported values + include `json` and `form`. The default is `form`. + example: '"json"' + webhook-config-secret: + type: string + description: If provided, the `secret` will be used as the `key` to generate + the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers). + example: '"********"' + webhook-config-insecure-ssl: + oneOf: + - type: string + description: Determines whether the SSL certificate of the host for `url` + will be verified when delivering payloads. Supported values include `0` + (verification is performed) and `1` (verification is not performed). The + default is `0`. **We strongly recommend not setting this to `1` as you are + subject to man-in-the-middle and other attacks.** + example: '"0"' + - type: number + webhook-config: + title: Webhook Configuration + description: Configuration object of the webhook + type: object + properties: + url: + "$ref": "#/components/schemas/webhook-config-url" + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + hook-delivery-item: + title: Simple webhook delivery + description: Delivery made by a webhook, without request and response information. + type: object + properties: + id: + description: Unique identifier of the webhook delivery. + type: integer + format: int64 + example: 42 + guid: + description: Unique identifier for the event (shared with all deliveries + for all webhooks that subscribe to this event). + type: string + example: 58474f00-b361-11eb-836d-0e4f3503ccbe + delivered_at: + description: Time when the webhook delivery occurred. + type: string + format: date-time + example: '2021-05-12T20:33:44Z' + redelivery: + description: Whether the webhook delivery is a redelivery. + type: boolean + example: false + duration: + description: Time spent delivering. + type: number + example: 0.03 + status: + description: Describes the response returned after attempting the delivery. + type: string + example: failed to connect + status_code: + description: Status code received when delivery was made. + type: integer + example: 502 + event: + description: The event that triggered the delivery. + type: string + example: issues + action: + description: The type of activity for the event that triggered the delivery. + type: string + example: opened + nullable: true + installation_id: + description: The id of the GitHub App installation associated with this + event. + type: integer + format: int64 + example: 123 + nullable: true + repository_id: + description: The id of the repository associated with this event. + type: integer + format: int64 + example: 123 + nullable: true + throttled_at: + description: Time when the webhook delivery was throttled. + type: string + format: date-time + example: '2021-05-12T20:33:44Z' + nullable: true + required: + - id + - guid + - delivered_at + - redelivery + - duration + - status + - status_code + - event + - action + - installation_id + - repository_id + scim-error: + title: Scim Error + description: Scim Error + type: object + properties: + message: + type: string + nullable: true + documentation_url: + type: string + nullable: true + detail: + type: string + nullable: true + status: + type: integer + scimType: + type: string + nullable: true + schemas: + type: array + items: + type: string + validation-error: + title: Validation Error + description: Validation Error + type: object + required: + - message + - documentation_url + properties: + message: + type: string + documentation_url: + type: string + errors: + type: array + items: + type: object + required: + - code + properties: + resource: + type: string + field: + type: string + message: + type: string + code: + type: string + index: + type: integer + value: + oneOf: + - type: string + nullable: true + - type: integer + nullable: true + - type: array + nullable: true + items: + type: string + hook-delivery: + title: Webhook delivery + description: Delivery made by a webhook. + type: object + properties: + id: + description: Unique identifier of the delivery. + type: integer + example: 42 + guid: + description: Unique identifier for the event (shared with all deliveries + for all webhooks that subscribe to this event). + type: string + example: 58474f00-b361-11eb-836d-0e4f3503ccbe + delivered_at: + description: Time when the delivery was delivered. + type: string + format: date-time + example: '2021-05-12T20:33:44Z' + redelivery: + description: Whether the delivery is a redelivery. + type: boolean + example: false + duration: + description: Time spent delivering. + type: number + example: 0.03 + status: + description: Description of the status of the attempted delivery + type: string + example: failed to connect + status_code: + description: Status code received when delivery was made. + type: integer + example: 502 + event: + description: The event that triggered the delivery. + type: string + example: issues + action: + description: The type of activity for the event that triggered the delivery. + type: string + example: opened + nullable: true + installation_id: + description: The id of the GitHub App installation associated with this + event. + type: integer + example: 123 + nullable: true + repository_id: + description: The id of the repository associated with this event. + type: integer + example: 123 + nullable: true + throttled_at: + description: Time when the webhook delivery was throttled. + type: string + format: date-time + example: '2021-05-12T20:33:44Z' + nullable: true + url: + description: The URL target of the delivery. + type: string + example: https://www.example.com + request: + type: object + properties: + headers: + description: The request headers sent with the webhook delivery. + type: object + nullable: true + additionalProperties: true + payload: + description: The webhook payload. + type: object + nullable: true + additionalProperties: true + required: + - headers + - payload + response: + type: object + properties: + headers: + description: The response headers received when the delivery was made. + type: object + nullable: true + additionalProperties: true + payload: + description: The response payload received. + type: string + nullable: true + additionalProperties: true + required: + - headers + - payload + required: + - id + - guid + - delivered_at + - redelivery + - duration + - status + - status_code + - event + - action + - installation_id + - repository_id + - request + - response + integration-installation-request: + title: Integration Installation Request + description: Request to install an integration on a target + type: object + properties: + id: + description: Unique identifier of the request installation. + type: integer + example: 42 + node_id: + type: string + example: MDExOkludGVncmF0aW9uMQ== + account: + anyOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/enterprise" + requester: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2022-07-08T16:18:44-04:00' + required: + - id + - account + - requester + - created_at + app-permissions: + title: App Permissions + type: object + description: The permissions granted to the user access token. + properties: + actions: + type: string + description: The level of permission to grant the access token for GitHub + Actions workflows, workflow runs, and artifacts. + enum: + - read + - write + administration: + type: string + description: The level of permission to grant the access token for repository + creation, deletion, settings, teams, and collaborators creation. + enum: + - read + - write + artifact_metadata: + type: string + description: The level of permission to grant the access token to create + and retrieve build artifact metadata records. + enum: + - read + - write + attestations: + type: string + description: The level of permission to create and retrieve the access token + for repository attestations. + enum: + - read + - write + checks: + type: string + description: The level of permission to grant the access token for checks + on code. + enum: + - read + - write + codespaces: + type: string + description: The level of permission to grant the access token to create, + edit, delete, and list Codespaces. + enum: + - read + - write + contents: + type: string + description: The level of permission to grant the access token for repository + contents, commits, branches, downloads, releases, and merges. + enum: + - read + - write + dependabot_secrets: + type: string + description: The level of permission to grant the access token to manage + Dependabot secrets. + enum: + - read + - write + deployments: + type: string + description: The level of permission to grant the access token for deployments + and deployment statuses. + enum: + - read + - write + discussions: + type: string + description: The level of permission to grant the access token for discussions + and related comments and labels. + enum: + - read + - write + environments: + type: string + description: The level of permission to grant the access token for managing + repository environments. + enum: + - read + - write + issues: + type: string + description: The level of permission to grant the access token for issues + and related comments, assignees, labels, and milestones. + enum: + - read + - write + merge_queues: + type: string + description: The level of permission to grant the access token to manage + the merge queues for a repository. + enum: + - read + - write + metadata: + type: string + description: The level of permission to grant the access token to search + repositories, list collaborators, and access repository metadata. + enum: + - read + - write + packages: + type: string + description: The level of permission to grant the access token for packages + published to GitHub Packages. + enum: + - read + - write + pages: + type: string + description: The level of permission to grant the access token to retrieve + Pages statuses, configuration, and builds, as well as create new builds. + enum: + - read + - write + pull_requests: + type: string + description: The level of permission to grant the access token for pull + requests and related comments, assignees, labels, milestones, and merges. + enum: + - read + - write + repository_custom_properties: + type: string + description: The level of permission to grant the access token to view and + edit custom properties for a repository, when allowed by the property. + enum: + - read + - write + repository_hooks: + type: string + description: The level of permission to grant the access token to manage + the post-receive hooks for a repository. + enum: + - read + - write + repository_projects: + type: string + description: The level of permission to grant the access token to manage + repository projects, columns, and cards. + enum: + - read + - write + - admin + secret_scanning_alerts: + type: string + description: The level of permission to grant the access token to view and + manage secret scanning alerts. + enum: + - read + - write + secrets: + type: string + description: The level of permission to grant the access token to manage + repository secrets. + enum: + - read + - write + security_events: + type: string + description: The level of permission to grant the access token to view and + manage security events like code scanning alerts. + enum: + - read + - write + single_file: + type: string + description: The level of permission to grant the access token to manage + just a single file. + enum: + - read + - write + statuses: + type: string + description: The level of permission to grant the access token for commit + statuses. + enum: + - read + - write + vulnerability_alerts: + type: string + description: The level of permission to grant the access token to manage + Dependabot alerts. + enum: + - read + - write + workflows: + type: string + description: The level of permission to grant the access token to update + GitHub Actions workflow files. + enum: + - write + custom_properties_for_organizations: + type: string + description: The level of permission to grant the access token to view and + edit custom properties for an organization, when allowed by the property. + enum: + - read + - write + members: + type: string + description: The level of permission to grant the access token for organization + teams and members. + enum: + - read + - write + organization_administration: + type: string + description: The level of permission to grant the access token to manage + access to an organization. + enum: + - read + - write + organization_custom_roles: + type: string + description: The level of permission to grant the access token for custom + repository roles management. + enum: + - read + - write + organization_custom_org_roles: + type: string + description: The level of permission to grant the access token for custom + organization roles management. + enum: + - read + - write + organization_custom_properties: + type: string + description: The level of permission to grant the access token for repository + custom properties management at the organization level. + enum: + - read + - write + - admin + organization_copilot_seat_management: + type: string + description: The level of permission to grant the access token for managing + access to GitHub Copilot for members of an organization with a Copilot + Business subscription. This property is in public preview and is subject + to change. + enum: + - write + organization_announcement_banners: + type: string + description: The level of permission to grant the access token to view and + manage announcement banners for an organization. + enum: + - read + - write + organization_events: + type: string + description: The level of permission to grant the access token to view events + triggered by an activity in an organization. + enum: + - read + organization_hooks: + type: string + description: The level of permission to grant the access token to manage + the post-receive hooks for an organization. + enum: + - read + - write + organization_personal_access_tokens: + type: string + description: The level of permission to grant the access token for viewing + and managing fine-grained personal access token requests to an organization. + enum: + - read + - write + organization_personal_access_token_requests: + type: string + description: The level of permission to grant the access token for viewing + and managing fine-grained personal access tokens that have been approved + by an organization. + enum: + - read + - write + organization_plan: + type: string + description: The level of permission to grant the access token for viewing + an organization's plan. + enum: + - read + organization_projects: + type: string + description: The level of permission to grant the access token to manage + organization projects and projects public preview (where available). + enum: + - read + - write + - admin + organization_packages: + type: string + description: The level of permission to grant the access token for organization + packages published to GitHub Packages. + enum: + - read + - write + organization_secrets: + type: string + description: The level of permission to grant the access token to manage + organization secrets. + enum: + - read + - write + organization_self_hosted_runners: + type: string + description: The level of permission to grant the access token to view and + manage GitHub Actions self-hosted runners available to an organization. + enum: + - read + - write + organization_user_blocking: + type: string + description: The level of permission to grant the access token to view and + manage users blocked by the organization. + enum: + - read + - write + team_discussions: + type: string + description: The level of permission to grant the access token to manage + team discussions and related comments. + enum: + - read + - write + email_addresses: + type: string + description: The level of permission to grant the access token to manage + the email addresses belonging to a user. + enum: + - read + - write + followers: + type: string + description: The level of permission to grant the access token to manage + the followers belonging to a user. + enum: + - read + - write + git_ssh_keys: + type: string + description: The level of permission to grant the access token to manage + git SSH keys. + enum: + - read + - write + gpg_keys: + type: string + description: The level of permission to grant the access token to view and + manage GPG keys belonging to a user. + enum: + - read + - write + interaction_limits: + type: string + description: The level of permission to grant the access token to view and + manage interaction limits on a repository. + enum: + - read + - write + profile: + type: string + description: The level of permission to grant the access token to manage + the profile settings belonging to a user. + enum: + - write + starring: + type: string + description: The level of permission to grant the access token to list and + manage repositories a user is starring. + enum: + - read + - write + enterprise_custom_properties_for_organizations: + type: string + description: The level of permission to grant the access token for organization + custom properties management at the enterprise level. + enum: + - read + - write + - admin + example: + contents: read + issues: read + deployments: write + single_file: read + nullable-simple-user: + title: Simple User + description: A GitHub user. + type: object + properties: + name: + nullable: true + type: string + email: + nullable: true + type: string + login: + type: string + example: octocat + id: + type: integer + format: int64 + example: 1 + node_id: + type: string + example: MDQ6VXNlcjE= + avatar_url: + type: string + format: uri + example: https://github.com/images/error/octocat_happy.gif + gravatar_id: + type: string + example: 41d064eb2195891e12d0413f63227ea7 + nullable: true + url: + type: string + format: uri + example: https://api.github.com/users/octocat + html_url: + type: string + format: uri + example: https://github.com/octocat + followers_url: + type: string + format: uri + example: https://api.github.com/users/octocat/followers + following_url: + type: string + example: https://api.github.com/users/octocat/following{/other_user} + gists_url: + type: string + example: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: + type: string + example: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: + type: string + format: uri + example: https://api.github.com/users/octocat/subscriptions + organizations_url: + type: string + format: uri + example: https://api.github.com/users/octocat/orgs + repos_url: + type: string + format: uri + example: https://api.github.com/users/octocat/repos + events_url: + type: string + example: https://api.github.com/users/octocat/events{/privacy} + received_events_url: + type: string + format: uri + example: https://api.github.com/users/octocat/received_events + type: + type: string + example: User + site_admin: + type: boolean + starred_at: + type: string + example: '"2020-07-09T00:17:55Z"' + user_view_type: + type: string + example: public + 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 + nullable: true + installation: + title: Installation + description: Installation + type: object + properties: + id: + description: The ID of the installation. + type: integer + example: 1 + account: + nullable: true + anyOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/enterprise" + repository_selection: + description: Describe whether all repositories have been selected or there's + a selection involved + type: string + enum: + - all + - selected + access_tokens_url: + type: string + format: uri + example: https://api.github.com/app/installations/1/access_tokens + repositories_url: + type: string + format: uri + example: https://api.github.com/installation/repositories + html_url: + type: string + format: uri + example: https://github.com/organizations/github/settings/installations/1 + app_id: + type: integer + example: 1 + client_id: + type: string + example: Iv1.ab1112223334445c + target_id: + description: The ID of the user or organization this token is being scoped + to. + type: integer + target_type: + type: string + example: Organization + permissions: + "$ref": "#/components/schemas/app-permissions" + events: + type: array + items: + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + single_file_name: + type: string + example: config.yaml + nullable: true + has_multiple_single_files: + type: boolean + example: true + single_file_paths: + type: array + items: + type: string + example: + - config.yml + - ".github/issue_TEMPLATE.md" + app_slug: + type: string + example: github-actions + suspended_by: + "$ref": "#/components/schemas/nullable-simple-user" + suspended_at: + type: string + format: date-time + nullable: true + contact_email: + type: string + example: '"test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com"' + nullable: true + required: + - id + - app_id + - app_slug + - target_id + - target_type + - single_file_name + - repository_selection + - access_tokens_url + - html_url + - repositories_url + - events + - account + - permissions + - created_at + - updated_at + - suspended_by + - suspended_at + nullable-license-simple: + title: License Simple + description: License Simple + type: object + properties: + key: + type: string + example: mit + name: + type: string + example: MIT License + url: + type: string + nullable: true + format: uri + example: https://api.github.com/licenses/mit + spdx_id: + type: string + nullable: true + example: MIT + node_id: + type: string + example: MDc6TGljZW5zZW1pdA== + html_url: + type: string + format: uri + required: + - key + - name + - url + - spdx_id + - node_id + nullable: true + repository: + title: Repository + description: A repository on GitHub. + type: object + properties: + id: + description: Unique identifier of the repository + example: 42 + type: integer + format: int64 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + description: The name of the repository. + type: string + example: Team Environment + full_name: + type: string + example: octocat/Hello-World + license: + "$ref": "#/components/schemas/nullable-license-simple" + 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: + "$ref": "#/components/schemas/simple-user" + private: + description: Whether the repository is private or public. + default: false + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + example: git:github.com/octocat/Hello-World.git + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + example: git@github.com:octocat/Hello-World.git + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + example: https://github.com/octocat/Hello-World.git + mirror_url: + type: string + format: uri + example: git:git.example.com/octocat/Hello-World + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + format: uri + example: https://svn.github.com/octocat/Hello-World + homepage: + type: string + format: uri + example: https://github.com + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + example: 9 + stargazers_count: + type: integer + example: 80 + watchers_count: + type: integer + example: 80 + size: + description: The size of the repository, in kilobytes. Size is calculated + hourly. When a repository is initially created, the size is 0. + type: integer + example: 108 + default_branch: + description: The default branch of the repository. + type: string + example: master + open_issues_count: + type: integer + example: 0 + is_template: + description: Whether this repository acts as a template that can be used + to generate new repositories. + default: false + type: boolean + example: true + topics: + type: array + items: + type: string + has_issues: + description: Whether issues are enabled. + default: true + type: boolean + example: true + has_projects: + description: Whether projects are enabled. + default: true + type: boolean + example: true + has_wiki: + description: Whether the wiki is enabled. + default: true + type: boolean + example: true + has_pages: + type: boolean + has_downloads: + description: Whether downloads are enabled. + default: true + type: boolean + example: true + deprecated: true + has_discussions: + description: Whether discussions are enabled. + default: false + type: boolean + example: 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 + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + default: true + type: boolean + example: true + temp_clone_token: + type: string + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + default: true + type: boolean + example: true + allow_auto_merge: + description: Whether to allow Auto-merge to be used on pull requests. + default: false + type: boolean + example: false + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are merged + default: false + type: boolean + example: 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 + example: false + use_squash_pr_title_as_default: + type: boolean + 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. + default: false + deprecated: true + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + default: true + type: boolean + example: true + allow_forking: + description: Whether to allow forking this repo + type: boolean + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based commits + default: false + type: boolean + open_issues: + type: integer + watchers: + type: integer + master_branch: + type: string + starred_at: + type: string + example: '"2020-07-09T00:17:42Z"' + anonymous_access_enabled: + type: boolean + description: Whether anonymous git access is enabled for this repository + code_search_index_status: + type: object + description: The status of the code search index for this repository + properties: + lexical_search_ok: + type: boolean + lexical_commit_sha: + type: string + 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 + installation-token: + title: Installation Token + description: Authentication token for a GitHub App installed on a user or org. + type: object + properties: + token: + type: string + expires_at: + type: string + permissions: + "$ref": "#/components/schemas/app-permissions" + repository_selection: + type: string + enum: + - all + - selected + repositories: + type: array + items: + "$ref": "#/components/schemas/repository" + single_file: + type: string + example: README.md + has_multiple_single_files: + type: boolean + example: true + single_file_paths: + type: array + items: + type: string + example: + - config.yml + - ".github/issue_TEMPLATE.md" + required: + - token + - expires_at + nullable-scoped-installation: + title: Scoped Installation + type: object + properties: + permissions: + "$ref": "#/components/schemas/app-permissions" + repository_selection: + description: Describe whether all repositories have been selected or there's + a selection involved + type: string + enum: + - all + - selected + single_file_name: + type: string + example: config.yaml + nullable: true + has_multiple_single_files: + type: boolean + example: true + single_file_paths: + type: array + items: + type: string + example: + - config.yml + - ".github/issue_TEMPLATE.md" + repositories_url: + type: string + format: uri + example: https://api.github.com/users/octocat/repos + account: + "$ref": "#/components/schemas/simple-user" + required: + - permissions + - repository_selection + - single_file_name + - repositories_url + - account + nullable: true + authorization: + title: Authorization + description: The authorization for an OAuth app, GitHub App, or a Personal Access + Token. + type: object + properties: + id: + type: integer + format: int64 + url: + type: string + format: uri + scopes: + description: A list of scopes that this authorization is in. + type: array + items: + type: string + nullable: true + token: + type: string + token_last_eight: + type: string + nullable: true + hashed_token: + type: string + nullable: true + app: + type: object + properties: + client_id: + type: string + name: + type: string + url: + type: string + format: uri + required: + - client_id + - name + - url + note: + type: string + nullable: true + note_url: + type: string + format: uri + nullable: true + updated_at: + type: string + format: date-time + created_at: + type: string + format: date-time + fingerprint: + type: string + nullable: true + user: + "$ref": "#/components/schemas/nullable-simple-user" + installation: + "$ref": "#/components/schemas/nullable-scoped-installation" + expires_at: + type: string + format: date-time + nullable: true + required: + - app + - id + - note + - note_url + - scopes + - token + - hashed_token + - token_last_eight + - fingerprint + - url + - created_at + - updated_at + - expires_at + simple-classroom-repository: + title: Simple Classroom Repository + description: A GitHub repository view for Classroom + type: object + properties: + id: + type: integer + example: 1296269 + description: A unique identifier of the repository. + full_name: + type: string + example: octocat/Hello-World + description: The full, globally unique name of the repository. + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: The URL to view the repository on GitHub.com. + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + description: The GraphQL identifier of the repository. + private: + type: boolean + description: Whether the repository is private. + default_branch: + type: string + example: main + description: The default branch for the repository. + required: + - id + - full_name + - html_url + - node_id + - private + - default_branch + simple-classroom-organization: + title: Organization Simple for Classroom + description: A GitHub organization. + type: object + properties: + id: + type: integer + example: 1 + login: + type: string + example: github + node_id: + type: string + example: MDEyOk9yZ2FuaXphdGlvbjE= + html_url: + type: string + format: uri + example: https://github.com/github + name: + type: string + example: Github - Code thigns happen here + nullable: true + avatar_url: + type: string + example: https://github.com/images/error/octocat_happy.gif + required: + - id + - login + - node_id + - html_url + - name + - avatar_url + classroom: + title: Classroom + description: A GitHub Classroom classroom + type: object + properties: + id: + description: Unique identifier of the classroom. + example: 42 + type: integer + name: + description: The name of the classroom. + type: string + example: Programming Elixir + archived: + description: Whether classroom is archived. + type: boolean + example: false + organization: + "$ref": "#/components/schemas/simple-classroom-organization" + url: + description: The URL of the classroom on GitHub Classroom. + type: string + example: https://classroom.github.com/classrooms/1-programming-elixir + required: + - id + - name + - archived + - organization + - url + classroom-assignment: + title: Classroom Assignment + description: A GitHub Classroom assignment + type: object + properties: + id: + description: Unique identifier of the repository. + type: integer + example: 42 + public_repo: + description: Whether an accepted assignment creates a public repository. + type: boolean + example: true + title: + description: Assignment title. + type: string + example: Intro to Binaries + type: + description: Whether it's a group assignment or individual assignment. + type: string + example: individual + enum: + - individual + - group + invite_link: + description: The link that a student can use to accept the assignment. + type: string + example: https://classroom.github.com/a/Lx7jiUgx + invitations_enabled: + description: Whether the invitation link is enabled. Visiting an enabled + invitation link will accept the assignment. + type: boolean + example: true + slug: + description: Sluggified name of the assignment. + type: string + example: intro-to-binaries + students_are_repo_admins: + description: Whether students are admins on created repository when a student + accepts the assignment. + type: boolean + example: true + feedback_pull_requests_enabled: + description: Whether feedback pull request will be created when a student + accepts the assignment. + type: boolean + example: true + max_teams: + description: The maximum allowable teams for the assignment. + nullable: true + type: integer + example: 0 + max_members: + description: The maximum allowable members per team. + nullable: true + type: integer + example: 0 + editor: + description: The selected editor for the assignment. + type: string + example: codespaces + accepted: + description: The number of students that have accepted the assignment. + type: integer + example: 25 + submitted: + description: The number of students that have submitted the assignment. + type: integer + example: 10 + passing: + description: The number of students that have passed the assignment. + type: integer + example: 10 + language: + description: The programming language used in the assignment. + type: string + example: elixir + deadline: + description: The time at which the assignment is due. + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + starter_code_repository: + "$ref": "#/components/schemas/simple-classroom-repository" + classroom: + "$ref": "#/components/schemas/classroom" + required: + - id + - public_repo + - title + - type + - invite_link + - invitations_enabled + - slug + - students_are_repo_admins + - feedback_pull_requests_enabled + - max_teams + - max_members + - editor + - accepted + - submitted + - passing + - language + - deadline + - starter_code_repository + - classroom + simple-classroom-user: + title: Simple Classroom User + description: A GitHub user simplified for Classroom. + type: object + properties: + id: + type: integer + example: 1 + login: + type: string + example: octocat + avatar_url: + type: string + format: uri + example: https://github.com/images/error/octocat_happy.gif + html_url: + type: string + format: uri + example: https://github.com/octocat + required: + - id + - login + - avatar_url + - html_url + simple-classroom: + title: Simple Classroom + description: A GitHub Classroom classroom + type: object + properties: + id: + description: Unique identifier of the classroom. + example: 42 + type: integer + name: + description: The name of the classroom. + type: string + example: Programming Elixir + archived: + description: Returns whether classroom is archived or not. + type: boolean + example: false + url: + description: The url of the classroom on GitHub Classroom. + type: string + example: https://classroom.github.com/classrooms/1-programming-elixir + required: + - id + - name + - archived + - url + simple-classroom-assignment: + title: Simple Classroom Assignment + description: A GitHub Classroom assignment + type: object + properties: + id: + description: Unique identifier of the repository. + type: integer + example: 42 + public_repo: + description: Whether an accepted assignment creates a public repository. + type: boolean + example: true + title: + description: Assignment title. + type: string + example: Intro to Binaries + type: + description: Whether it's a Group Assignment or Individual Assignment. + type: string + example: individual + enum: + - individual + - group + invite_link: + description: The link that a student can use to accept the assignment. + type: string + example: https://classroom.github.com/a/Lx7jiUgx + invitations_enabled: + description: Whether the invitation link is enabled. Visiting an enabled + invitation link will accept the assignment. + type: boolean + example: true + slug: + description: Sluggified name of the assignment. + type: string + example: intro-to-binaries + students_are_repo_admins: + description: Whether students are admins on created repository on accepted + assignment. + type: boolean + example: true + feedback_pull_requests_enabled: + description: Whether feedback pull request will be created on assignment + acceptance. + type: boolean + example: true + max_teams: + description: The maximum allowable teams for the assignment. + nullable: true + type: integer + example: 0 + max_members: + description: The maximum allowable members per team. + nullable: true + type: integer + example: 0 + editor: + description: The selected editor for the assignment. + type: string + example: codespaces + accepted: + description: The number of students that have accepted the assignment. + type: integer + example: 25 + submitted: + description: The number of students that have submitted the assignment. + type: integer + example: 10 + passing: + description: The number of students that have passed the assignment. + type: integer + example: 10 + language: + description: The programming language used in the assignment. + type: string + example: elixir + deadline: + description: The time at which the assignment is due. + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + classroom: + "$ref": "#/components/schemas/simple-classroom" + required: + - id + - public_repo + - title + - type + - invite_link + - invitations_enabled + - slug + - students_are_repo_admins + - feedback_pull_requests_enabled + - editor + - accepted + - submitted + - passing + - language + - deadline + - classroom + classroom-accepted-assignment: + title: Classroom Accepted Assignment + description: A GitHub Classroom accepted assignment + type: object + properties: + id: + description: Unique identifier of the repository. + type: integer + example: 42 + submitted: + description: Whether an accepted assignment has been submitted. + type: boolean + example: true + passing: + description: Whether a submission passed. + type: boolean + example: true + commit_count: + description: Count of student commits. + type: integer + example: 5 + grade: + description: Most recent grade. + type: string + example: 10/10 + students: + type: array + items: + "$ref": "#/components/schemas/simple-classroom-user" + repository: + "$ref": "#/components/schemas/simple-classroom-repository" + assignment: + "$ref": "#/components/schemas/simple-classroom-assignment" + required: + - id + - submitted + - passing + - commit_count + - grade + - students + - repository + - assignment + classroom-assignment-grade: + title: Classroom Assignment Grade + description: Grade for a student or groups GitHub Classroom assignment + type: object + properties: + assignment_name: + description: Name of the assignment + type: string + assignment_url: + description: URL of the assignment + type: string + starter_code_url: + description: URL of the starter code for the assignment + type: string + github_username: + description: GitHub username of the student + type: string + roster_identifier: + description: Roster identifier of the student + type: string + student_repository_name: + description: Name of the student's assignment repository + type: string + student_repository_url: + description: URL of the student's assignment repository + type: string + submission_timestamp: + description: Timestamp of the student's assignment submission + type: string + points_awarded: + description: Number of points awarded to the student + type: integer + points_available: + description: Number of points available for the assignment + type: integer + group_name: + description: If a group assignment, name of the group the student is in + type: string + required: + - assignment_name + - assignment_url + - starter_code_url + - github_username + - roster_identifier + - student_repository_name + - student_repository_url + - submission_timestamp + - points_awarded + - points_available + code-of-conduct: + title: Code Of Conduct + description: Code Of Conduct + type: object + properties: + key: + type: string + example: contributor_covenant + name: + type: string + example: Contributor Covenant + url: + type: string + format: uri + example: https://api.github.com/codes_of_conduct/contributor_covenant + body: + type: string + example: | + # Contributor Covenant Code of Conduct + + ## Our Pledge + + In 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. + + ## Our Standards + + Examples of behavior that contributes to creating a positive environment include: + + * Using welcoming and inclusive language + * Being respectful of differing viewpoints and experiences + * Gracefully accepting constructive criticism + * Focusing on what is best for the community + * Showing empathy towards other community members + + Examples of unacceptable behavior by participants include: + + * The use of sexualized language or imagery and unwelcome sexual attention or advances + * Trolling, insulting/derogatory comments, and personal or political attacks + * Public or private harassment + * Publishing others' private information, such as a physical or electronic address, without explicit permission + * Other conduct which could reasonably be considered inappropriate in a professional setting + + ## Our Responsibilities + + Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response + to any instances of unacceptable behavior. + + Project 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. + + ## Scope + + This 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, + 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. + + ## Enforcement + + Instances 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. + + Project 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. + + ## Attribution + + This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/). + html_url: + type: string + format: uri + nullable: true + required: + - url + - html_url + - key + - name + actions-cache-retention-limit-for-enterprise: + title: Actions cache retention limit for an enterprise + description: GitHub Actions cache retention policy for an enterprise. + type: object + properties: + max_cache_retention_days: + description: For repositories & organizations in an enterprise, the maximum + duration, in days, for which caches in a repository may be retained. + type: integer + example: 14 + actions-cache-storage-limit-for-enterprise: + title: Actions cache storage limit for an enterprise + description: GitHub Actions cache storage policy for an enterprise. + type: object + properties: + max_cache_size_gb: + description: For repositories & organizations in an enterprise, the maximum + size limit for the sum of all caches in a repository, in gigabytes. + type: integer + example: 10 + code-security-configuration: + type: object + description: A code security configuration + properties: + id: + type: integer + description: The ID of the code security configuration + name: + type: string + description: The name of the code security configuration. Must be unique + within the organization. + target_type: + type: string + description: The type of the code security configuration. + enum: + - global + - organization + - enterprise + description: + type: string + description: A description of the code security configuration + advanced_security: + type: string + description: The enablement status of GitHub Advanced Security + enum: + - enabled + - disabled + - code_security + - secret_protection + dependency_graph: + type: string + description: The enablement status of Dependency Graph + enum: + - enabled + - disabled + - not_set + dependency_graph_autosubmit_action: + type: string + description: The enablement status of Automatic dependency submission + enum: + - enabled + - disabled + - not_set + dependency_graph_autosubmit_action_options: + type: object + description: Feature options for Automatic dependency submission + properties: + labeled_runners: + type: boolean + description: Whether to use runners labeled with 'dependency-submission' + or standard GitHub runners. + dependabot_alerts: + type: string + description: The enablement status of Dependabot alerts + enum: + - enabled + - disabled + - not_set + dependabot_security_updates: + type: string + description: The enablement status of Dependabot security updates + enum: + - enabled + - disabled + - not_set + dependabot_delegated_alert_dismissal: + type: string + nullable: true + description: The enablement status of Dependabot delegated alert dismissal + enum: + - enabled + - disabled + - not_set + code_scanning_options: + type: object + description: Feature options for code scanning + nullable: true + properties: + allow_advanced: + nullable: true + type: boolean + description: Whether to allow repos which use advanced setup + code_scanning_default_setup: + type: string + description: The enablement status of code scanning default setup + enum: + - enabled + - disabled + - not_set + code_scanning_default_setup_options: + type: object + description: Feature options for code scanning default setup + nullable: true + properties: + runner_type: + nullable: true + type: string + enum: + - standard + - labeled + - not_set + description: Whether to use labeled runners or standard GitHub runners. + runner_label: + nullable: true + type: string + description: The label of the runner to use for code scanning when runner_type + is 'labeled'. + code_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of code scanning delegated alert dismissal + enum: + - enabled + - disabled + - not_set + secret_scanning: + type: string + description: The enablement status of secret scanning + enum: + - enabled + - disabled + - not_set + secret_scanning_push_protection: + type: string + description: The enablement status of secret scanning push protection + enum: + - enabled + - disabled + - not_set + secret_scanning_delegated_bypass: + type: string + description: The enablement status of secret scanning delegated bypass + enum: + - enabled + - disabled + - not_set + secret_scanning_delegated_bypass_options: + type: object + description: Feature options for secret scanning delegated bypass + properties: + reviewers: + type: array + description: The bypass reviewers for secret scanning delegated bypass + 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 + secret_scanning_validity_checks: + type: string + description: The enablement status of secret scanning validity checks + enum: + - enabled + - disabled + - not_set + secret_scanning_non_provider_patterns: + type: string + description: The enablement status of secret scanning non-provider patterns + enum: + - enabled + - disabled + - not_set + secret_scanning_generic_secrets: + type: string + description: The enablement status of Copilot secret scanning + enum: + - enabled + - disabled + - not_set + secret_scanning_delegated_alert_dismissal: + type: string + description: The enablement status of secret scanning delegated alert dismissal + enum: + - enabled + - disabled + - not_set + private_vulnerability_reporting: + type: string + description: The enablement status of private vulnerability reporting + enum: + - enabled + - disabled + - not_set + enforcement: + type: string + description: The enforcement status for a security configuration + enum: + - enforced + - unenforced + url: + type: string + format: uri + description: The URL of the configuration + html_url: + type: string + format: uri + description: The URL of the configuration + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + code-scanning-options: + type: object + description: Security Configuration feature options for code scanning + nullable: true + properties: + allow_advanced: + nullable: true + type: boolean + description: Whether to allow repos which use advanced setup + code-scanning-default-setup-options: + type: object + description: Feature options for code scanning default setup + nullable: true + properties: + runner_type: + type: string + enum: + - standard + - labeled + - not_set + description: Whether to use labeled runners or standard GitHub runners. + runner_label: + nullable: true + type: string + description: The label of the runner to use for code scanning default setup + when runner_type is 'labeled'. + code-security-default-configurations: + type: array + description: A list of default code security configurations + items: + type: object + properties: + default_for_new_repos: + enum: + - public + - private_and_internal + - all + description: The visibility of newly created repositories for which the + code security configuration will be applied to by default + configuration: + "$ref": "#/components/schemas/code-security-configuration" + simple-repository: + title: Simple Repository + description: A GitHub repository. + type: object + properties: + id: + type: integer + format: int64 + example: 1296269 + description: A unique identifier of the repository. + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + description: The GraphQL identifier of the repository. + name: + type: string + example: Hello-World + description: The name of the repository. + full_name: + type: string + example: octocat/Hello-World + description: The full, globally unique, name of the repository. + owner: + "$ref": "#/components/schemas/simple-user" + private: + type: boolean + description: Whether the repository is private. + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: The URL to view the repository on GitHub.com. + description: + type: string + example: This your first repo! + nullable: true + description: The repository description. + fork: + type: boolean + description: Whether the repository is a fork. + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + description: The URL to get more information about the repository from the + GitHub API. + archive_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + description: A template for the API URL to download the repository as an + archive. + assignees_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + description: A template for the API URL to list the available assignees + for issues in the repository. + blobs_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + description: A template for the API URL to create or retrieve a raw Git + blob in the repository. + branches_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + description: A template for the API URL to get information about branches + in the repository. + collaborators_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + description: A template for the API URL to get information about collaborators + of the repository. + comments_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/comments{/number} + description: A template for the API URL to get information about comments + on the repository. + commits_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + description: A template for the API URL to get information about commits + on the repository. + compare_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + description: A template for the API URL to compare two commits or refs. + contents_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + description: A template for the API URL to get the contents of the repository. + contributors_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/contributors + description: A template for the API URL to list the contributors to the + repository. + deployments_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/deployments + description: The API URL to list the deployments of the repository. + downloads_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/downloads + description: The API URL to list the downloads on the repository. + events_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/events + description: The API URL to list the events of the repository. + forks_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/forks + description: The API URL to list the forks of the repository. + git_commits_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + description: A template for the API URL to get information about Git commits + of the repository. + git_refs_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + description: A template for the API URL to get information about Git refs + of the repository. + git_tags_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + description: A template for the API URL to get information about Git tags + of the repository. + issue_comment_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + description: A template for the API URL to get information about issue comments + on the repository. + issue_events_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + description: A template for the API URL to get information about issue events + on the repository. + issues_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/issues{/number} + description: A template for the API URL to get information about issues + on the repository. + keys_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + description: A template for the API URL to get information about deploy + keys on the repository. + labels_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/labels{/name} + description: A template for the API URL to get information about labels + of the repository. + languages_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/languages + description: The API URL to get information about the languages of the repository. + merges_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/merges + description: The API URL to merge branches in the repository. + milestones_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + description: A template for the API URL to get information about milestones + of the repository. + notifications_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + description: A template for the API URL to get information about notifications + on the repository. + pulls_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + description: A template for the API URL to get information about pull requests + on the repository. + releases_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/releases{/id} + description: A template for the API URL to get information about releases + on the repository. + stargazers_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/stargazers + description: The API URL to list the stargazers on the repository. + statuses_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + description: A template for the API URL to get information about statuses + of a commit. + subscribers_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/subscribers + description: The API URL to list the subscribers on the repository. + subscription_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/subscription + description: The API URL to subscribe to notifications for this repository. + tags_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/tags + description: The API URL to get information about tags on the repository. + teams_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/teams + description: The API URL to list the teams on the repository. + trees_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + description: A template for the API URL to create or retrieve a raw Git + tree of the repository. + hooks_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/hooks + description: The API URL to list the hooks on the repository. + 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 + code-security-configuration-repositories: + type: object + description: Repositories associated with a code security configuration and + attachment status + properties: + status: + type: string + description: The attachment status of the code security configuration on + the repository. + enum: + - attached + - attaching + - detached + - removed + - enforced + - failed + - updating + - removed_by_enterprise + repository: + "$ref": "#/components/schemas/simple-repository" + alert-number: + type: integer + description: The security alert number. + readOnly: true + dependabot-alert-package: + type: object + description: Details for the vulnerable package. + readOnly: true + properties: + ecosystem: + type: string + description: The package's language or package management ecosystem. + readOnly: true + name: + type: string + description: The unique package name within its ecosystem. + readOnly: true + required: + - ecosystem + - name + additionalProperties: false + dependabot-alert-security-vulnerability: + type: object + description: Details pertaining to one vulnerable version range for the advisory. + readOnly: true + properties: + package: + "$ref": "#/components/schemas/dependabot-alert-package" + severity: + type: string + description: The severity of the vulnerability. + readOnly: true + enum: + - low + - medium + - high + - critical + vulnerable_version_range: + type: string + description: Conditions that identify vulnerable versions of this vulnerability's + package. + readOnly: true + first_patched_version: + type: object + description: Details pertaining to the package version that patches this + vulnerability. + readOnly: true + nullable: true + properties: + identifier: + type: string + description: The package version that patches this vulnerability. + readOnly: true + required: + - identifier + additionalProperties: false + required: + - package + - severity + - vulnerable_version_range + - first_patched_version + additionalProperties: false + dependabot-alert-security-advisory: + type: object + description: Details for the GitHub Security Advisory. + readOnly: true + properties: + ghsa_id: + type: string + description: The unique GitHub Security Advisory ID assigned to the advisory. + readOnly: true + cve_id: + type: string + description: The unique CVE ID assigned to the advisory. + readOnly: true + nullable: true + summary: + type: string + description: A short, plain text summary of the advisory. + readOnly: true + maxLength: 1024 + description: + type: string + description: A long-form Markdown-supported description of the advisory. + readOnly: true + vulnerabilities: + type: array + description: Vulnerable version range information for the advisory. + readOnly: true + items: + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" + severity: + type: string + description: The severity of the advisory. + readOnly: true + enum: + - low + - medium + - high + - critical + cvss: + type: object + description: Details for the advisory pertaining to the Common Vulnerability + Scoring System. + readOnly: true + properties: + score: + type: number + description: The overall CVSS score of the advisory. + minimum: 0 + maximum: 10 + readOnly: true + vector_string: + type: string + description: The full CVSS vector string for the advisory. + readOnly: true + nullable: true + required: + - score + - vector_string + additionalProperties: false + cvss_severities: + "$ref": "#/components/schemas/cvss-severities" + epss: + "$ref": "#/components/schemas/security-advisory-epss" + cwes: + type: array + description: Details for the advisory pertaining to Common Weakness Enumeration. + readOnly: true + items: + type: object + description: A CWE weakness assigned to the advisory. + readOnly: true + properties: + cwe_id: + type: string + description: The unique CWE ID. + readOnly: true + name: + type: string + description: The short, plain text name of the CWE. + readOnly: true + required: + - cwe_id + - name + additionalProperties: false + identifiers: + type: array + description: Values that identify this advisory among security information + sources. + readOnly: true + items: + type: object + description: An advisory identifier. + readOnly: true + properties: + type: + type: string + description: The type of advisory identifier. + readOnly: true + enum: + - CVE + - GHSA + value: + type: string + description: The value of the advisory identifer. + readOnly: true + required: + - value + - type + additionalProperties: false + references: + type: array + description: Links to additional advisory information. + readOnly: true + items: + type: object + description: A link to additional advisory information. + readOnly: true + properties: + url: + type: string + description: The URL of the reference. + format: uri + readOnly: true + required: + - url + additionalProperties: false + published_at: + type: string + description: 'The time that the advisory was published in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + updated_at: + type: string + description: 'The time that the advisory was last modified in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + withdrawn_at: + type: string + description: 'The time that the advisory was withdrawn in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + nullable: true + required: + - ghsa_id + - cve_id + - summary + - description + - vulnerabilities + - severity + - cvss + - cwes + - identifiers + - references + - published_at + - updated_at + - withdrawn_at + additionalProperties: false + alert-url: + type: string + description: The REST API URL of the alert resource. + format: uri + readOnly: true + alert-html-url: + type: string + description: The GitHub URL of the alert resource. + format: uri + readOnly: true + alert-created-at: + type: string + description: 'The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + alert-updated-at: + type: string + description: 'The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + alert-dismissed-at: + type: string + description: 'The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + nullable: true + alert-fixed-at: + type: string + description: 'The time that the alert was no longer detected and was considered + fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + nullable: true + alert-auto-dismissed-at: + type: string + description: 'The time that the alert was auto-dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + nullable: true + dependabot-alert-dismissal-request-simple: + title: Dependabot alert dismissal request + description: Information about an active dismissal request for this Dependabot + alert. + type: object + nullable: true + properties: + id: + type: integer + description: The unique identifier of the dismissal request. + status: + type: string + description: The current status of the dismissal request. + enum: + - pending + - approved + - rejected + - cancelled + requester: + type: object + description: The user who requested the dismissal. + properties: + id: + type: integer + description: The unique identifier of the user. + login: + type: string + description: The login name of the user. + created_at: + type: string + format: date-time + description: The date and time when the dismissal request was created. + url: + type: string + format: uri + description: The API URL to get more information about this dismissal request. + dependabot-alert-with-repository: + type: object + description: A Dependabot alert. + properties: + number: + "$ref": "#/components/schemas/alert-number" + state: + type: string + description: The state of the Dependabot alert. + readOnly: true + enum: + - auto_dismissed + - dismissed + - fixed + - open + dependency: + type: object + description: Details for the vulnerable dependency. + readOnly: true + properties: + package: + "$ref": "#/components/schemas/dependabot-alert-package" + manifest_path: + type: string + description: The full path to the dependency manifest file, relative + to the root of the repository. + readOnly: true + scope: + type: string + description: The execution scope of the vulnerable dependency. + readOnly: true + nullable: true + enum: + - development + - runtime + relationship: + type: string + description: | + The vulnerable dependency's relationship to your project. + + > [!NOTE] + > We are rolling out support for dependency relationship across ecosystems. This value will be "unknown" for all dependencies in unsupported ecosystems. + readOnly: true + nullable: true + enum: + - unknown + - direct + - transitive + security_advisory: + "$ref": "#/components/schemas/dependabot-alert-security-advisory" + security_vulnerability: + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/alert-updated-at" + dismissed_at: + "$ref": "#/components/schemas/alert-dismissed-at" + dismissed_by: + "$ref": "#/components/schemas/nullable-simple-user" + dismissed_reason: + type: string + description: The reason that the alert was dismissed. + nullable: true + enum: + - fix_started + - inaccurate + - no_bandwidth + - not_used + - tolerable_risk + dismissed_comment: + type: string + description: An optional comment associated with the alert's dismissal. + nullable: true + maxLength: 280 + fixed_at: + "$ref": "#/components/schemas/alert-fixed-at" + auto_dismissed_at: + "$ref": "#/components/schemas/alert-auto-dismissed-at" + dismissal_request: + "$ref": "#/components/schemas/dependabot-alert-dismissal-request-simple" + repository: + "$ref": "#/components/schemas/simple-repository" + required: + - number + - state + - dependency + - security_advisory + - security_vulnerability + - url + - html_url + - created_at + - updated_at + - dismissed_at + - dismissed_by + - dismissed_reason + - dismissed_comment + - fixed_at + - repository + additionalProperties: false + enterprise-team: + title: Enterprise Team + description: Group of enterprise owners and/or members + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + description: + type: string + slug: + type: string + url: + type: string + format: uri + sync_to_organizations: + type: string + description: 'Retired: this field will not be returned with GHEC enterprise + teams.' + example: disabled | all + organization_selection_type: + type: string + example: disabled | selected | all + group_id: + nullable: true + type: string + example: 62ab9291-fae2-468e-974b-7e45096d5021 + group_name: + nullable: true + type: string + description: 'Retired: this field will not be returned with GHEC enterprise + teams.' + example: Justice League + html_url: + type: string + format: uri + example: https://github.com/enterprises/dc/teams/justice-league + members_url: + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - id + - url + - members_url + - name + - html_url + - slug + - created_at + - updated_at + - group_id + organization-simple: + title: Organization Simple + description: A GitHub organization. + type: object + properties: + login: + type: string + example: github + id: + type: integer + example: 1 + node_id: + type: string + example: MDEyOk9yZ2FuaXphdGlvbjE= + url: + type: string + format: uri + example: https://api.github.com/orgs/github + repos_url: + type: string + format: uri + example: https://api.github.com/orgs/github/repos + events_url: + type: string + format: uri + example: https://api.github.com/orgs/github/events + hooks_url: + type: string + example: https://api.github.com/orgs/github/hooks + issues_url: + type: string + example: https://api.github.com/orgs/github/issues + members_url: + type: string + example: https://api.github.com/orgs/github/members{/member} + public_members_url: + type: string + example: https://api.github.com/orgs/github/public_members{/member} + avatar_url: + type: string + example: https://github.com/images/error/octocat_happy.gif + description: + type: string + example: A great organization + nullable: true + required: + - login + - url + - id + - node_id + - repos_url + - events_url + - hooks_url + - issues_url + - members_url + - public_members_url + - avatar_url + - description + actor: + title: Actor + description: Actor + type: object + properties: + id: + type: integer + login: + type: string + display_login: + type: string + gravatar_id: + type: string + nullable: true + url: + type: string + format: uri + avatar_url: + type: string + format: uri + required: + - id + - login + - gravatar_id + - url + - avatar_url + label: + title: Label + description: Color-coded labels help you categorize and filter your issues (just + like labels in Gmail). + type: object + properties: + id: + description: Unique identifier for the label. + type: integer + format: int64 + example: 208045946 + node_id: + type: string + example: MDU6TGFiZWwyMDgwNDU5NDY= + url: + description: URL for the label + example: https://api.github.com/repositories/42/labels/bug + type: string + format: uri + name: + description: The name of the label. + example: bug + type: string + description: + description: Optional description of the label, such as its purpose. + type: string + example: Something isn't working + nullable: true + color: + description: '6-character hex code, without the leading #, identifying the + color' + example: FFFFFF + type: string + default: + description: Whether this label comes by default in a new repository. + type: boolean + example: true + required: + - id + - node_id + - url + - name + - description + - color + - default + discussion: + title: Discussion + description: A Discussion in a repository. + type: object + properties: + active_lock_reason: + type: string + nullable: true + answer_chosen_at: + type: string + nullable: true + answer_chosen_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + answer_html_url: + type: string + nullable: true + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + type: string + category: + type: object + properties: + created_at: + type: string + format: date-time + description: + type: string + emoji: + type: string + id: + type: integer + is_answerable: + type: boolean + name: + type: string + node_id: + type: string + repository_id: + type: integer + slug: + type: string + updated_at: + type: string + required: + - id + - repository_id + - emoji + - name + - description + - created_at + - updated_at + - slug + - is_answerable + comments: + type: integer + created_at: + type: string + format: date-time + html_url: + type: string + id: + type: integer + locked: + type: boolean + node_id: + type: string + number: + type: integer + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + state: + type: string + description: |- + The current state of the discussion. + `converting` means that the discussion is being converted from an issue. + `transferring` means that the discussion is being transferred from another repository. + enum: + - open + - closed + - locked + - converting + - transferring + state_reason: + description: The reason for the current state + example: resolved + type: string + nullable: true + enum: + - resolved + - outdated + - duplicate + - reopened + timeline_url: + type: string + title: + type: string + updated_at: + type: string + format: date-time + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + labels: + type: array + items: + "$ref": "#/components/schemas/label" + required: + - repository_url + - category + - answer_html_url + - answer_chosen_at + - answer_chosen_by + - html_url + - id + - node_id + - number + - title + - user + - state + - state_reason + - locked + - comments + - created_at + - updated_at + - active_lock_reason + - body + nullable-milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: + type: integer + example: 1002604 + node_id: + type: string + example: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: + description: The number of the milestone. + type: integer + example: 42 + state: + description: The state of the milestone. + example: open + type: string + enum: + - open + - closed + default: open + title: + description: The title of the milestone. + example: v1.0 + type: string + description: + type: string + example: Tracking milestone for version 1.0 + nullable: true + creator: + "$ref": "#/components/schemas/nullable-simple-user" + open_issues: + type: integer + example: 4 + closed_issues: + type: integer + example: 8 + created_at: + type: string + format: date-time + example: '2011-04-10T20:09:31Z' + updated_at: + type: string + format: date-time + example: '2014-03-03T18:58:10Z' + closed_at: + type: string + format: date-time + example: '2013-02-12T13:22:01Z' + nullable: true + due_on: + type: string + format: date-time + example: '2012-10-09T23:39:01Z' + nullable: true + required: + - closed_issues + - creator + - description + - due_on + - closed_at + - id + - node_id + - labels_url + - html_url + - number + - open_issues + - state + - title + - url + - created_at + - updated_at + nullable: true + issue-type: + title: Issue Type + description: The type of issue. + type: object + nullable: true + properties: + id: + type: integer + description: The unique identifier of the issue type. + node_id: + type: string + description: The node identifier of the issue type. + name: + type: string + description: The name of the issue type. + description: + type: string + description: The description of the issue type. + nullable: true + color: + type: string + description: The color of the issue type. + enum: + - gray + - blue + - green + - yellow + - orange + - red + - pink + - purple + nullable: true + created_at: + type: string + description: The time the issue type created. + format: date-time + updated_at: + type: string + description: The time the issue type last updated. + format: date-time + is_enabled: + type: boolean + description: The enabled state of the issue type. + required: + - id + - node_id + - name + - description + nullable-integration: + title: GitHub app + description: GitHub apps are a new way to extend GitHub. They can be installed + directly on organizations and user accounts and granted access to specific + repositories. They come with granular permissions and built-in webhooks. GitHub + apps are first class actors within GitHub. + type: object + nullable: true + properties: + id: + description: Unique identifier of the GitHub app + example: 37 + type: integer + slug: + description: The slug name of the GitHub app + example: probot-owners + type: string + node_id: + type: string + example: MDExOkludGVncmF0aW9uMQ== + client_id: + type: string + example: '"Iv1.25b5d1e65ffc4022"' + owner: + oneOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/enterprise" + name: + description: The name of the GitHub app + example: Probot Owners + type: string + description: + type: string + example: The description of the app. + nullable: true + external_url: + type: string + format: uri + example: https://example.com + html_url: + type: string + format: uri + example: https://github.com/apps/super-ci + created_at: + type: string + format: date-time + example: '2017-07-08T16:18:44-04:00' + updated_at: + type: string + format: date-time + example: '2017-07-08T16:18:44-04:00' + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + issues: + type: string + checks: + type: string + metadata: + type: string + contents: + type: string + deployments: + type: string + additionalProperties: + type: string + example: + issues: read + deployments: write + events: + description: The list of events for the GitHub app. Note that the `installation_target`, + `security_advisory`, and `meta` events are not included because they are + global events and not specific to an installation. + example: + - label + - deployment + type: array + items: + type: string + installations_count: + description: The number of installations associated with the GitHub app. + Only returned when the integration is requesting details about itself. + example: 5 + type: integer + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + - permissions + - events + author-association: + title: author_association + type: string + example: OWNER + description: How the author is associated with the repository. + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + reaction-rollup: + title: Reaction Rollup + type: object + properties: + url: + type: string + format: uri + total_count: + type: integer + "+1": + type: integer + "-1": + type: integer + laugh: + type: integer + confused: + type: integer + heart: + type: integer + hooray: + type: integer + eyes: + type: integer + rocket: + type: integer + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + sub-issues-summary: + title: Sub-issues Summary + type: object + properties: + total: + type: integer + completed: + type: integer + percent_completed: + type: integer + required: + - total + - completed + - percent_completed + issue-dependencies-summary: + title: Issue Dependencies Summary + type: object + properties: + blocked_by: + type: integer + blocking: + type: integer + total_blocked_by: + type: integer + total_blocking: + type: integer + required: + - blocked_by + - blocking + - total_blocked_by + - total_blocking + issue-field-value: + title: Issue Field Value + description: A value assigned to an issue field + type: object + properties: + issue_field_id: + description: Unique identifier for the issue field. + type: integer + format: int64 + example: 1 + node_id: + type: string + example: IFT_GDKND + data_type: + description: The data type of the issue field + type: string + enum: + - text + - single_select + - number + - date + example: text + value: + description: The value of the issue field + anyOf: + - type: string + example: Sample text + - type: number + example: 42.5 + - type: integer + example: 1 + nullable: true + single_select_option: + description: Details about the selected option (only present for single_select + fields) + type: object + properties: + id: + description: Unique identifier for the option. + type: integer + format: int64 + example: 1 + name: + description: The name of the option + type: string + example: High + color: + description: The color of the option + type: string + example: red + required: + - id + - name + - color + nullable: true + required: + - issue_field_id + - node_id + - data_type + - value + issue: + title: Issue + description: Issues are a great way to keep track of tasks, enhancements, and + bugs for your projects. + type: object + properties: + id: + type: integer + format: int64 + node_id: + type: string + url: + description: URL for the issue + example: https://api.github.com/repositories/42/issues/1 + type: string + format: uri + repository_url: + type: string + format: uri + labels_url: + type: string + comments_url: + type: string + format: uri + events_url: + type: string + format: uri + html_url: + type: string + format: uri + number: + description: Number uniquely identifying the issue within its repository + example: 42 + type: integer + state: + description: State of the issue; either 'open' or 'closed' + example: open + type: string + state_reason: + description: The reason for the current state + example: not_planned + type: string + nullable: true + enum: + - completed + - reopened + - not_planned + - duplicate + title: + description: Title of the issue + example: Widget creation fails in Safari on OS X 10.8 + type: string + body: + description: Contents of the issue + example: It looks like the new widget form is broken on Safari. When I try + and create the widget, Safari crashes. This is reproducible on 10.8, but + not 10.9. Maybe a browser bug? + type: string + nullable: true + user: + "$ref": "#/components/schemas/nullable-simple-user" + labels: + description: Labels to associate with this issue; pass one or more label + names to replace the set of labels on this issue; send an empty array + to clear all labels from the issue; note that the labels are silently + dropped for users without push access to the repository + example: + - bug + - registration + type: array + items: + oneOf: + - type: string + - type: object + properties: + id: + type: integer + format: int64 + node_id: + type: string + url: + type: string + format: uri + name: + type: string + description: + type: string + nullable: true + color: + type: string + nullable: true + default: + type: boolean + assignee: + "$ref": "#/components/schemas/nullable-simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + nullable: true + milestone: + "$ref": "#/components/schemas/nullable-milestone" + locked: + type: boolean + active_lock_reason: + type: string + nullable: true + comments: + type: integer + pull_request: + type: object + properties: + merged_at: + type: string + format: date-time + nullable: true + diff_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + patch_url: + type: string + format: uri + nullable: true + url: + type: string + format: uri + nullable: true + required: + - diff_url + - html_url + - patch_url + - url + closed_at: + type: string + format: date-time + nullable: true + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + draft: + type: boolean + closed_by: + "$ref": "#/components/schemas/nullable-simple-user" + body_html: + type: string + body_text: + type: string + timeline_url: + type: string + format: uri + type: + "$ref": "#/components/schemas/issue-type" + repository: + "$ref": "#/components/schemas/repository" + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + author_association: + "$ref": "#/components/schemas/author-association" + reactions: + "$ref": "#/components/schemas/reaction-rollup" + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + parent_issue_url: + description: URL to get the parent issue of this issue, if it is a sub-issue + type: string + format: uri + nullable: true + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + required: + - assignee + - closed_at + - comments + - comments_url + - events_url + - html_url + - id + - node_id + - labels + - labels_url + - milestone + - number + - repository_url + - state + - locked + - title + - url + - user + - created_at + - updated_at + issue-comment: + title: Issue Comment + description: Comments provide a way for people to collaborate on an issue. + type: object + properties: + id: + description: Unique identifier of the issue comment + example: 42 + type: integer + format: int64 + node_id: + type: string + url: + description: URL for the issue comment + example: https://api.github.com/repositories/42/issues/comments/1 + type: string + format: uri + body: + description: Contents of the issue comment + example: What version of Safari were you using when you observed this bug? + type: string + body_text: + type: string + body_html: + type: string + html_url: + type: string + format: uri + user: + "$ref": "#/components/schemas/nullable-simple-user" + created_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + updated_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + issue_url: + type: string + format: uri + author_association: + "$ref": "#/components/schemas/author-association" + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + reactions: + "$ref": "#/components/schemas/reaction-rollup" + required: + - id + - node_id + - html_url + - issue_url + - user + - url + - created_at + - updated_at + pull-request-minimal: + title: Pull Request Minimal + type: object + properties: + id: + type: integer + format: int64 + number: + type: integer + url: + type: string + head: + type: object + properties: + ref: + type: string + sha: + type: string + repo: + type: object + properties: + id: + type: integer + format: int64 + url: + type: string + name: + type: string + required: + - id + - url + - name + required: + - ref + - sha + - repo + base: + type: object + properties: + ref: + type: string + sha: + type: string + repo: + type: object + properties: + id: + type: integer + format: int64 + url: + type: string + name: + type: string + required: + - id + - url + - name + required: + - ref + - sha + - repo + required: + - id + - number + - url + - head + - base + release-asset: + title: Release Asset + description: Data related to a release. + type: object + properties: + url: + type: string + format: uri + browser_download_url: + type: string + format: uri + id: + type: integer + node_id: + type: string + name: + description: The file name of the asset. + type: string + example: Team Environment + label: + type: string + nullable: true + state: + description: State of the release asset. + type: string + enum: + - uploaded + - open + content_type: + type: string + size: + type: integer + digest: + type: string + nullable: true + download_count: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + uploader: + "$ref": "#/components/schemas/nullable-simple-user" + required: + - id + - name + - content_type + - size + - digest + - state + - url + - node_id + - download_count + - label + - uploader + - browser_download_url + - created_at + - updated_at + release: + title: Release + description: A release. + type: object + properties: + url: + type: string + format: uri + html_url: + type: string + format: uri + assets_url: + type: string + format: uri + upload_url: + type: string + tarball_url: + type: string + format: uri + nullable: true + zipball_url: + type: string + format: uri + nullable: true + id: + type: integer + node_id: + type: string + tag_name: + description: The name of the tag. + example: v1.0.0 + type: string + target_commitish: + description: Specifies the commitish value that determines where the Git + tag is created from. + example: master + type: string + name: + type: string + nullable: true + body: + type: string + nullable: true + draft: + description: true to create a draft (unpublished) release, false to create + a published one. + example: false + type: boolean + prerelease: + description: Whether to identify the release as a prerelease or a full release. + example: false + type: boolean + immutable: + description: Whether or not the release is immutable. + example: false + type: boolean + created_at: + type: string + format: date-time + published_at: + type: string + format: date-time + nullable: true + updated_at: + type: string + nullable: true + format: date-time + author: + "$ref": "#/components/schemas/simple-user" + assets: + type: array + items: + "$ref": "#/components/schemas/release-asset" + body_html: + type: string + body_text: + type: string + mentions_count: + type: integer + discussion_url: + description: The URL of the release discussion. + type: string + format: uri + reactions: + "$ref": "#/components/schemas/reaction-rollup" + required: + - assets_url + - upload_url + - tarball_url + - zipball_url + - created_at + - published_at + - draft + - id + - node_id + - author + - html_url + - name + - prerelease + - tag_name + - target_commitish + - assets + - url + event: + title: Event + description: Event + type: object + properties: + id: + type: string + type: + type: string + nullable: true + actor: + "$ref": "#/components/schemas/actor" + repo: + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - name + - url + org: + "$ref": "#/components/schemas/actor" + payload: + oneOf: + - "$ref": "#/components/schemas/create-event" + - "$ref": "#/components/schemas/delete-event" + - "$ref": "#/components/schemas/discussion-event" + - "$ref": "#/components/schemas/issues-event" + - "$ref": "#/components/schemas/issue-comment-event" + - "$ref": "#/components/schemas/fork-event" + - "$ref": "#/components/schemas/gollum-event" + - "$ref": "#/components/schemas/member-event" + - "$ref": "#/components/schemas/public-event" + - "$ref": "#/components/schemas/push-event" + - "$ref": "#/components/schemas/pull-request-event" + - "$ref": "#/components/schemas/pull-request-review-comment-event" + - "$ref": "#/components/schemas/pull-request-review-event" + - "$ref": "#/components/schemas/commit-comment-event" + - "$ref": "#/components/schemas/release-event" + - "$ref": "#/components/schemas/watch-event" + public: + type: boolean + created_at: + type: string + format: date-time + nullable: true + required: + - id + - type + - actor + - repo + - payload + - public + - created_at + link-with-type: + title: Link With Type + description: Hypermedia Link with Type + type: object + properties: + href: + type: string + type: + type: string + required: + - href + - type + feed: + title: Feed + description: Feed + type: object + properties: + timeline_url: + type: string + example: https://github.com/timeline + user_url: + type: string + example: https://github.com/{user} + current_user_public_url: + type: string + example: https://github.com/octocat + current_user_url: + type: string + example: https://github.com/octocat.private?token=abc123 + current_user_actor_url: + type: string + example: https://github.com/octocat.private.actor?token=abc123 + current_user_organization_url: + type: string + example: https://github.com/octocat-org + current_user_organization_urls: + type: array + example: + - https://github.com/organizations/github/octocat.private.atom?token=abc123 + items: + type: string + format: uri + security_advisories_url: + type: string + example: https://github.com/security-advisories + repository_discussions_url: + type: string + example: https://github.com/{user}/{repo}/discussions + description: A feed of discussions for a given repository. + repository_discussions_category_url: + type: string + example: https://github.com/{user}/{repo}/discussions/categories/{category} + description: A feed of discussions for a given repository and category. + _links: + type: object + properties: + timeline: + "$ref": "#/components/schemas/link-with-type" + user: + "$ref": "#/components/schemas/link-with-type" + security_advisories: + "$ref": "#/components/schemas/link-with-type" + current_user: + "$ref": "#/components/schemas/link-with-type" + current_user_public: + "$ref": "#/components/schemas/link-with-type" + current_user_actor: + "$ref": "#/components/schemas/link-with-type" + current_user_organization: + "$ref": "#/components/schemas/link-with-type" + current_user_organizations: + type: array + items: + "$ref": "#/components/schemas/link-with-type" + repository_discussions: + "$ref": "#/components/schemas/link-with-type" + repository_discussions_category: + "$ref": "#/components/schemas/link-with-type" + required: + - timeline + - user + required: + - _links + - timeline_url + - user_url + base-gist: + title: Base Gist + description: Base Gist + type: object + properties: + url: + type: string + format: uri + forks_url: + type: string + format: uri + commits_url: + type: string + format: uri + id: + type: string + node_id: + type: string + git_pull_url: + type: string + format: uri + git_push_url: + type: string + format: uri + html_url: + type: string + format: uri + files: + type: object + additionalProperties: + type: object + properties: + filename: + type: string + type: + type: string + language: + type: string + raw_url: + type: string + size: + type: integer + encoding: + type: string + description: The encoding used for `content`. Currently, `"utf-8"` + and `"base64"` are supported. + default: utf-8 + public: + type: boolean + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + description: + type: string + nullable: true + comments: + type: integer + comments_enabled: + type: boolean + user: + "$ref": "#/components/schemas/nullable-simple-user" + comments_url: + type: string + format: uri + owner: + "$ref": "#/components/schemas/simple-user" + truncated: + type: boolean + forks: + type: array + items: {} + history: + type: array + items: {} + required: + - id + - node_id + - url + - forks_url + - commits_url + - git_pull_url + - git_push_url + - html_url + - comments_url + - public + - description + - comments + - user + - files + - created_at + - updated_at + public-user: + title: Public User + description: Public User + type: object + properties: + login: + type: string + id: + type: integer + format: int64 + user_view_type: + type: string + node_id: + type: string + avatar_url: + type: string + format: uri + gravatar_id: + type: string + nullable: true + url: + type: string + format: uri + html_url: + type: string + format: uri + followers_url: + type: string + format: uri + following_url: + type: string + gists_url: + type: string + starred_url: + type: string + subscriptions_url: + type: string + format: uri + organizations_url: + type: string + format: uri + repos_url: + type: string + format: uri + events_url: + type: string + received_events_url: + type: string + format: uri + type: + type: string + site_admin: + type: boolean + name: + type: string + nullable: true + company: + type: string + nullable: true + blog: + type: string + nullable: true + location: + type: string + nullable: true + email: + type: string + format: email + nullable: true + notification_email: + type: string + format: email + nullable: true + hireable: + type: boolean + nullable: true + bio: + type: string + nullable: true + twitter_username: + type: string + nullable: true + public_repos: + type: integer + public_gists: + type: integer + followers: + type: integer + following: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + plan: + type: object + properties: + collaborators: + type: integer + name: + type: string + space: + type: integer + private_repos: + type: integer + required: + - collaborators + - name + - space + - private_repos + private_gists: + type: integer + example: 1 + total_private_repos: + type: integer + example: 2 + owned_private_repos: + type: integer + example: 2 + disk_usage: + type: integer + example: 1 + collaborators: + type: integer + example: 3 + 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 + - bio + - blog + - company + - email + - followers + - following + - hireable + - location + - name + - public_gists + - public_repos + - created_at + - updated_at + additionalProperties: false + gist-history: + title: Gist History + description: Gist History + type: object + properties: + user: + "$ref": "#/components/schemas/nullable-simple-user" + version: + type: string + committed_at: + type: string + format: date-time + change_status: + type: object + properties: + total: + type: integer + additions: + type: integer + deletions: + type: integer + url: + type: string + format: uri + gist-simple: + title: Gist Simple + description: Gist Simple + type: object + properties: + forks: + deprecated: true + nullable: true + type: array + items: + type: object + properties: + id: + type: string + url: + type: string + format: uri + user: + "$ref": "#/components/schemas/public-user" + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + history: + deprecated: true + nullable: true + type: array + items: + "$ref": "#/components/schemas/gist-history" + fork_of: + nullable: true + title: Gist + description: Gist + type: object + properties: + url: + type: string + format: uri + forks_url: + type: string + format: uri + commits_url: + type: string + format: uri + id: + type: string + node_id: + type: string + git_pull_url: + type: string + format: uri + git_push_url: + type: string + format: uri + html_url: + type: string + format: uri + files: + type: object + additionalProperties: + type: object + properties: + filename: + type: string + type: + type: string + language: + type: string + raw_url: + type: string + size: + type: integer + public: + type: boolean + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + description: + type: string + nullable: true + comments: + type: integer + comments_enabled: + type: boolean + user: + "$ref": "#/components/schemas/nullable-simple-user" + comments_url: + type: string + format: uri + owner: + "$ref": "#/components/schemas/nullable-simple-user" + truncated: + type: boolean + forks: + type: array + items: {} + history: + type: array + items: {} + required: + - id + - node_id + - url + - forks_url + - commits_url + - git_pull_url + - git_push_url + - html_url + - comments_url + - public + - description + - comments + - user + - files + - created_at + - updated_at + url: + type: string + forks_url: + type: string + commits_url: + type: string + id: + type: string + node_id: + type: string + git_pull_url: + type: string + git_push_url: + type: string + html_url: + type: string + files: + type: object + additionalProperties: + nullable: true + type: object + properties: + filename: + type: string + type: + type: string + language: + type: string + raw_url: + type: string + size: + type: integer + truncated: + type: boolean + content: + type: string + encoding: + type: string + description: The encoding used for `content`. Currently, `"utf-8"` + and `"base64"` are supported. + default: utf-8 + public: + type: boolean + created_at: + type: string + updated_at: + type: string + description: + type: string + nullable: true + comments: + type: integer + comments_enabled: + type: boolean + user: + type: string + nullable: true + comments_url: + type: string + owner: + "$ref": "#/components/schemas/simple-user" + truncated: + type: boolean + gist-comment: + title: Gist Comment + description: A comment made to a gist. + type: object + properties: + id: + type: integer + example: 1 + node_id: + type: string + example: MDExOkdpc3RDb21tZW50MQ== + url: + type: string + format: uri + example: https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + body: + description: The comment text. + type: string + maxLength: 65535 + example: Body of the attachment + user: + "$ref": "#/components/schemas/nullable-simple-user" + created_at: + type: string + format: date-time + example: '2011-04-18T23:23:56Z' + updated_at: + type: string + format: date-time + example: '2011-04-18T23:23:56Z' + author_association: + "$ref": "#/components/schemas/author-association" + required: + - url + - id + - node_id + - user + - body + - author_association + - created_at + - updated_at + gist-commit: + title: Gist Commit + description: Gist Commit + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f + version: + type: string + example: 57a7f021a713b1c5a6a199b54cc514735d2d462f + user: + "$ref": "#/components/schemas/nullable-simple-user" + change_status: + type: object + properties: + total: + type: integer + additions: + type: integer + deletions: + type: integer + committed_at: + type: string + format: date-time + example: '2010-04-14T02:15:15Z' + required: + - url + - user + - version + - committed_at + - change_status + gitignore-template: + title: Gitignore Template + description: Gitignore Template + type: object + properties: + name: + type: string + example: C + source: + type: string + example: | + # Object files + *.o + + # Libraries + *.lib + *.a + + # Shared objects (inc. Windows DLLs) + *.dll + *.so + *.so.* + *.dylib + + # Executables + *.exe + *.out + *.app + required: + - name + - source + license-simple: + title: License Simple + description: License Simple + type: object + properties: + key: + type: string + example: mit + name: + type: string + example: MIT License + url: + type: string + nullable: true + format: uri + example: https://api.github.com/licenses/mit + spdx_id: + type: string + nullable: true + example: MIT + node_id: + type: string + example: MDc6TGljZW5zZW1pdA== + html_url: + type: string + format: uri + required: + - key + - name + - url + - spdx_id + - node_id + license: + title: License + description: License + type: object + properties: + key: + type: string + example: mit + name: + type: string + example: MIT License + spdx_id: + type: string + example: MIT + nullable: true + url: + type: string + format: uri + example: https://api.github.com/licenses/mit + nullable: true + node_id: + type: string + example: MDc6TGljZW5zZW1pdA== + html_url: + type: string + format: uri + example: http://choosealicense.com/licenses/mit/ + description: + type: string + example: A permissive license that is short and to the point. It lets people + do anything with your code with proper attribution and without warranty. + implementation: + type: string + example: Create a text file (typically named LICENSE or LICENSE.txt) in + the root of your source code and copy the text of the license into the + file. Replace [year] with the current year and [fullname] with the name + (or names) of the copyright holders. + permissions: + type: array + example: + - commercial-use + - modifications + - distribution + - sublicense + - private-use + items: + type: string + conditions: + type: array + example: + - include-copyright + items: + type: string + limitations: + type: array + example: + - no-liability + items: + type: string + body: + type: string + example: |2 + + + The MIT License (MIT) + + Copyright (c) [year] [fullname] + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + featured: + type: boolean + example: true + required: + - key + - name + - url + - spdx_id + - node_id + - html_url + - description + - implementation + - permissions + - conditions + - limitations + - body + - featured + marketplace-listing-plan: + title: Marketplace Listing Plan + description: Marketplace Listing Plan + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/marketplace_listing/plans/1313 + accounts_url: + type: string + format: uri + example: https://api.github.com/marketplace_listing/plans/1313/accounts + id: + type: integer + example: 1313 + number: + type: integer + example: 3 + name: + type: string + example: Pro + description: + type: string + example: A professional-grade CI solution + monthly_price_in_cents: + type: integer + example: 1099 + yearly_price_in_cents: + type: integer + example: 11870 + price_model: + type: string + enum: + - FREE + - FLAT_RATE + - PER_UNIT + example: FLAT_RATE + has_free_trial: + type: boolean + example: true + unit_name: + type: string + nullable: true + state: + type: string + example: published + bullets: + type: array + items: + type: string + example: + - Up to 25 private repositories + - 11 concurrent builds + required: + - url + - accounts_url + - id + - number + - name + - description + - has_free_trial + - price_model + - unit_name + - monthly_price_in_cents + - state + - yearly_price_in_cents + - bullets + marketplace-purchase: + title: Marketplace Purchase + description: Marketplace Purchase + type: object + properties: + url: + type: string + type: + type: string + id: + type: integer + login: + type: string + organization_billing_email: + type: string + email: + type: string + nullable: true + marketplace_pending_change: + type: object + properties: + is_installed: + type: boolean + effective_date: + type: string + unit_count: + type: integer + nullable: true + id: + type: integer + plan: + "$ref": "#/components/schemas/marketplace-listing-plan" + nullable: true + marketplace_purchase: + type: object + properties: + billing_cycle: + type: string + next_billing_date: + type: string + nullable: true + is_installed: + type: boolean + unit_count: + type: integer + nullable: true + on_free_trial: + type: boolean + free_trial_ends_on: + type: string + nullable: true + updated_at: + type: string + plan: + "$ref": "#/components/schemas/marketplace-listing-plan" + required: + - url + - id + - type + - login + - marketplace_purchase + api-overview: + title: Api Overview + description: Api Overview + type: object + properties: + verifiable_password_authentication: + type: boolean + example: true + ssh_key_fingerprints: + type: object + properties: + SHA256_RSA: + type: string + SHA256_DSA: + type: string + SHA256_ECDSA: + type: string + SHA256_ED25519: + type: string + ssh_keys: + type: array + items: + type: string + example: + - ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ + hooks: + type: array + items: + type: string + example: + - 192.0.2.1 + github_enterprise_importer: + type: array + items: + type: string + example: + - 192.0.2.1 + web: + type: array + items: + type: string + example: + - 192.0.2.1 + api: + type: array + items: + type: string + example: + - 192.0.2.1 + git: + type: array + items: + type: string + example: + - 192.0.2.1 + packages: + type: array + items: + type: string + example: + - 192.0.2.1 + pages: + type: array + items: + type: string + example: + - 192.0.2.1 + importer: + type: array + items: + type: string + example: + - 192.0.2.1 + actions: + type: array + items: + type: string + example: + - 192.0.2.1 + actions_macos: + type: array + items: + type: string + example: + - 192.0.2.1 + codespaces: + type: array + items: + type: string + example: + - 192.0.2.1 + dependabot: + type: array + items: + type: string + example: + - 192.0.2.1 + copilot: + type: array + items: + type: string + example: + - 192.0.2.1 + domains: + type: object + properties: + website: + type: array + items: + type: string + example: + - example.com + codespaces: + type: array + items: + type: string + example: + - example.com + copilot: + type: array + items: + type: string + example: + - example.com + packages: + type: array + items: + type: string + example: + - example.com + actions: + type: array + items: + type: string + example: + - example.com + actions_inbound: + type: object + properties: + full_domains: + type: array + items: + type: string + example: + - example.com + wildcard_domains: + type: array + items: + type: string + example: + - example.com + artifact_attestations: + type: object + properties: + trust_domain: + type: string + example: + - example + services: + type: array + items: + type: string + example: + - example.com + required: + - verifiable_password_authentication + security-and-analysis: + nullable: true + type: object + properties: + advanced_security: + description: | + Enable or disable GitHub Advanced Security for the repository. + + For standalone Code Scanning or Secret Protection products, this parameter cannot be used. + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + code_security: + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + dependabot_security_updates: + description: Enable or disable Dependabot security updates for the repository. + type: object + properties: + status: + description: The enablement status of Dependabot security updates for + the repository. + type: string + enum: + - enabled + - disabled + secret_scanning: + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + secret_scanning_push_protection: + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + secret_scanning_non_provider_patterns: + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + secret_scanning_ai_detection: + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + minimal-repository: + title: Minimal Repository + description: Minimal Repository + type: object + properties: + id: + type: integer + format: int64 + example: 1296269 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + type: string + example: Hello-World + full_name: + type: string + example: octocat/Hello-World + owner: + "$ref": "#/components/schemas/simple-user" + private: + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + mirror_url: + type: string + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + homepage: + type: string + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + stargazers_count: + type: integer + watchers_count: + type: integer + size: + description: The size of the repository, in kilobytes. Size is calculated + hourly. When a repository is initially created, the size is 0. + 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 + has_discussions: + type: boolean + archived: + type: boolean + disabled: + type: boolean + visibility: + type: string + pushed_at: + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + push: + type: boolean + triage: + type: boolean + pull: + type: boolean + role_name: + type: string + example: admin + temp_clone_token: + type: string + delete_branch_on_merge: + type: boolean + subscribers_count: + type: integer + network_count: + type: integer + code_of_conduct: + "$ref": "#/components/schemas/code-of-conduct" + license: + type: object + properties: + key: + type: string + name: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + node_id: + type: string + nullable: true + forks: + type: integer + example: 0 + open_issues: + type: integer + example: 0 + watchers: + type: integer + example: 0 + allow_forking: + type: boolean + web_commit_signoff_required: + type: boolean + example: false + security_and_analysis: + "$ref": "#/components/schemas/security-and-analysis" + custom_properties: + type: object + 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. + additionalProperties: true + 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 + thread: + title: Thread + description: Thread + type: object + properties: + id: + type: string + repository: + "$ref": "#/components/schemas/minimal-repository" + subject: + type: object + properties: + title: + type: string + url: + type: string + latest_comment_url: + type: string + type: + type: string + required: + - title + - url + - latest_comment_url + - type + reason: + type: string + unread: + type: boolean + updated_at: + type: string + last_read_at: + type: string + nullable: true + url: + type: string + subscription_url: + type: string + example: https://api.github.com/notifications/threads/2/subscription + required: + - id + - unread + - reason + - updated_at + - last_read_at + - subject + - repository + - url + - subscription_url + thread-subscription: + title: Thread Subscription + description: Thread Subscription + type: object + properties: + subscribed: + type: boolean + example: true + ignored: + type: boolean + reason: + type: string + nullable: true + created_at: + type: string + format: date-time + example: '2012-10-06T21:34:12Z' + nullable: true + url: + type: string + format: uri + example: https://api.github.com/notifications/threads/1/subscription + thread_url: + type: string + format: uri + example: https://api.github.com/notifications/threads/1 + repository_url: + type: string + format: uri + example: https://api.github.com/repos/1 + required: + - created_at + - ignored + - reason + - url + - subscribed + actions-cache-retention-limit-for-organization: + title: Actions cache retention limit for an organization + description: GitHub Actions cache retention policy for an organization. + type: object + properties: + max_cache_retention_days: + description: For repositories in this organization, the maximum duration, + in days, for which caches in a repository may be retained. + type: integer + example: 14 + actions-cache-storage-limit-for-organization: + title: Actions cache storage limit for an organization + description: GitHub Actions cache storage policy for an organization. + type: object + properties: + max_cache_size_gb: + description: For repositories in the organization, the maximum size limit + for the sum of all caches in a repository, in gigabytes. + type: integer + example: 10 + nullable-simple-repository: + title: Simple Repository + description: A GitHub repository. + type: object + properties: + id: + type: integer + format: int64 + example: 1296269 + description: A unique identifier of the repository. + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + description: The GraphQL identifier of the repository. + name: + type: string + example: Hello-World + description: The name of the repository. + full_name: + type: string + example: octocat/Hello-World + description: The full, globally unique, name of the repository. + owner: + "$ref": "#/components/schemas/simple-user" + private: + type: boolean + description: Whether the repository is private. + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: The URL to view the repository on GitHub.com. + description: + type: string + example: This your first repo! + nullable: true + description: The repository description. + fork: + type: boolean + description: Whether the repository is a fork. + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + description: The URL to get more information about the repository from the + GitHub API. + archive_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + description: A template for the API URL to download the repository as an + archive. + assignees_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + description: A template for the API URL to list the available assignees + for issues in the repository. + blobs_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + description: A template for the API URL to create or retrieve a raw Git + blob in the repository. + branches_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + description: A template for the API URL to get information about branches + in the repository. + collaborators_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + description: A template for the API URL to get information about collaborators + of the repository. + comments_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/comments{/number} + description: A template for the API URL to get information about comments + on the repository. + commits_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + description: A template for the API URL to get information about commits + on the repository. + compare_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + description: A template for the API URL to compare two commits or refs. + contents_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + description: A template for the API URL to get the contents of the repository. + contributors_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/contributors + description: A template for the API URL to list the contributors to the + repository. + deployments_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/deployments + description: The API URL to list the deployments of the repository. + downloads_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/downloads + description: The API URL to list the downloads on the repository. + events_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/events + description: The API URL to list the events of the repository. + forks_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/forks + description: The API URL to list the forks of the repository. + git_commits_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + description: A template for the API URL to get information about Git commits + of the repository. + git_refs_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + description: A template for the API URL to get information about Git refs + of the repository. + git_tags_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + description: A template for the API URL to get information about Git tags + of the repository. + issue_comment_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + description: A template for the API URL to get information about issue comments + on the repository. + issue_events_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + description: A template for the API URL to get information about issue events + on the repository. + issues_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/issues{/number} + description: A template for the API URL to get information about issues + on the repository. + keys_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + description: A template for the API URL to get information about deploy + keys on the repository. + labels_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/labels{/name} + description: A template for the API URL to get information about labels + of the repository. + languages_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/languages + description: The API URL to get information about the languages of the repository. + merges_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/merges + description: The API URL to merge branches in the repository. + milestones_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + description: A template for the API URL to get information about milestones + of the repository. + notifications_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + description: A template for the API URL to get information about notifications + on the repository. + pulls_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + description: A template for the API URL to get information about pull requests + on the repository. + releases_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/releases{/id} + description: A template for the API URL to get information about releases + on the repository. + stargazers_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/stargazers + description: The API URL to list the stargazers on the repository. + statuses_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + description: A template for the API URL to get information about statuses + of a commit. + subscribers_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/subscribers + description: The API URL to list the subscribers on the repository. + subscription_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/subscription + description: The API URL to subscribe to notifications for this repository. + tags_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/tags + description: The API URL to get information about tags on the repository. + teams_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/teams + description: The API URL to list the teams on the repository. + trees_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + description: A template for the API URL to create or retrieve a raw Git + tree of the repository. + hooks_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/hooks + description: The API URL to list the hooks on the repository. + 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 + nullable: true + dependabot-repository-access-details: + title: Dependabot Repository Access Details + description: Information about repositories that Dependabot is able to access + in an organization + type: object + properties: + default_level: + type: string + description: The default repository access level for Dependabot updates. + enum: + - public + - internal + example: internal + nullable: true + accessible_repositories: + type: array + items: + "$ref": "#/components/schemas/nullable-simple-repository" + additionalProperties: false + budget: + type: object + properties: + id: + type: string + description: The unique identifier for the budget + example: 2066deda-923f-43f9-88d2-62395a28c0cdd + budget_type: + type: string + description: The type of pricing for the budget + example: SkuPricing + enum: + - SkuPricing + - ProductPricing + budget_amount: + type: integer + description: The budget amount limit in whole dollars. For license-based + products, this represents the number of licenses. + prevent_further_usage: + type: boolean + description: The type of limit enforcement for the budget + example: true + budget_scope: + type: string + description: The scope of the budget (enterprise, organization, repository, + cost center) + example: enterprise + budget_entity_name: + type: string + description: The name of the entity for the budget (enterprise does not + require a name). + example: octocat/hello-world + budget_product_sku: + type: string + description: A single product or sku to apply the budget to. + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget + example: true + alert_recipients: + type: array + items: + type: string + description: Array of user login names who will receive alerts + example: + - mona + - lisa + required: + - will_alert + - alert_recipients + required: + - id + - budget_type + - budget_product_sku + - budget_scope + - budget_amount + - prevent_further_usage + - budget_alerting + get_all_budgets: + type: object + properties: + budgets: + type: array + items: + "$ref": "#/components/schemas/budget" + description: Array of budget objects for the enterprise + has_next_page: + type: boolean + description: Indicates if there are more pages of results available (maps + to hasNextPage from billing platform) + required: + - budgets + get-budget: + type: object + properties: + id: + type: string + description: ID of the budget. + budget_scope: + type: string + description: The type of scope for the budget + example: enterprise + enum: + - enterprise + - organization + - repository + - cost_center + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + example: octocat/hello-world + budget_amount: + type: integer + description: The budget amount in whole dollars. For license-based products, + this represents the number of licenses. + prevent_further_usage: + type: boolean + description: Whether to prevent additional spending once the budget is exceeded + example: true + budget_product_sku: + type: string + description: A single product or sku to apply the budget to. + example: actions_linux + budget_type: + type: string + description: The type of pricing for the budget + example: ProductPricing + enum: + - ProductPricing + - SkuPricing + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget + example: true + alert_recipients: + type: array + items: + type: string + description: Array of user login names who will receive alerts + example: + - mona + - lisa + required: + - id + - budget_amount + - prevent_further_usage + - budget_product_sku + - budget_type + - budget_alerting + - budget_scope + - budget_entity_name + delete-budget: + type: object + properties: + message: + type: string + description: A message indicating the result of the deletion operation + id: + type: string + description: The ID of the deleted budget + required: + - message + - id + billing-premium-request-usage-report-org: + type: object + properties: + timePeriod: + type: object + properties: + year: + type: integer + description: The year for the usage report. + month: + type: integer + description: The month for the usage report. + day: + type: integer + description: The day for the usage report. + required: + - year + organization: + type: string + description: The unique identifier of the organization. + user: + type: string + description: The name of the user for the usage report. + product: + type: string + description: The product for the usage report. + model: + type: string + description: The model for the usage report. + usageItems: + type: array + items: + type: object + properties: + product: + type: string + description: Product name. + sku: + type: string + description: SKU name. + model: + type: string + description: Model name. + unitType: + type: string + description: Unit type of the usage line item. + pricePerUnit: + type: number + description: Price per unit of the usage line item. + grossQuantity: + type: number + description: Gross quantity of the usage line item. + grossAmount: + type: number + description: Gross amount of the usage line item. + discountQuantity: + type: number + description: Discount quantity of the usage line item. + discountAmount: + type: number + description: Discount amount of the usage line item. + netQuantity: + type: number + description: Net quantity of the usage line item. + netAmount: + type: number + description: Net amount of the usage line item. + required: + - product + - sku + - model + - unitType + - pricePerUnit + - grossQuantity + - grossAmount + - discountQuantity + - discountAmount + - netQuantity + - netAmount + required: + - timePeriod + - organization + - usageItems + billing-usage-report: + type: object + properties: + usageItems: + type: array + items: + type: object + properties: + date: + type: string + description: Date of the usage line item. + product: + type: string + description: Product name. + sku: + type: string + description: SKU name. + quantity: + type: integer + description: Quantity of the usage line item. + unitType: + type: string + description: Unit type of the usage line item. + pricePerUnit: + type: number + description: Price per unit of the usage line item. + grossAmount: + type: number + description: Gross amount of the usage line item. + discountAmount: + type: number + description: Discount amount of the usage line item. + netAmount: + type: number + description: Net amount of the usage line item. + organizationName: + type: string + description: Name of the organization. + repositoryName: + type: string + description: Name of the repository. + required: + - date + - product + - sku + - quantity + - unitType + - pricePerUnit + - grossAmount + - discountAmount + - netAmount + - organizationName + billing-usage-summary-report-org: + type: object + properties: + timePeriod: + type: object + properties: + year: + type: integer + description: The year for the usage report. + month: + type: integer + description: The month for the usage report. + day: + type: integer + description: The day for the usage report. + required: + - year + organization: + type: string + description: The unique identifier of the organization. + repository: + type: string + description: The name of the repository for the usage report. + product: + type: string + description: The product for the usage report. + sku: + type: string + description: The SKU for the usage report. + usageItems: + type: array + items: + type: object + properties: + product: + type: string + description: Product name. + sku: + type: string + description: SKU name. + unitType: + type: string + description: Unit type of the usage line item. + pricePerUnit: + type: number + description: Price per unit of the usage line item. + grossQuantity: + type: number + description: Gross quantity of the usage line item. + grossAmount: + type: number + description: Gross amount of the usage line item. + discountQuantity: + type: number + description: Discount quantity of the usage line item. + discountAmount: + type: number + description: Discount amount of the usage line item. + netQuantity: + type: number + description: Net quantity of the usage line item. + netAmount: + type: number + description: Net amount of the usage line item. + required: + - product + - sku + - unitType + - pricePerUnit + - grossQuantity + - grossAmount + - discountQuantity + - discountAmount + - netQuantity + - netAmount + required: + - timePeriod + - organization + - usageItems + organization-full: + title: Organization Full + description: Organization Full + type: object + properties: + login: + type: string + example: github + id: + type: integer + example: 1 + node_id: + type: string + example: MDEyOk9yZ2FuaXphdGlvbjE= + url: + type: string + format: uri + example: https://api.github.com/orgs/github + repos_url: + type: string + format: uri + example: https://api.github.com/orgs/github/repos + events_url: + type: string + format: uri + example: https://api.github.com/orgs/github/events + hooks_url: + type: string + example: https://api.github.com/orgs/github/hooks + issues_url: + type: string + example: https://api.github.com/orgs/github/issues + members_url: + type: string + example: https://api.github.com/orgs/github/members{/member} + public_members_url: + type: string + example: https://api.github.com/orgs/github/public_members{/member} + avatar_url: + type: string + example: https://github.com/images/error/octocat_happy.gif + description: + type: string + example: A great organization + nullable: true + name: + type: string + example: github + company: + type: string + example: GitHub + blog: + type: string + format: uri + example: https://github.com/blog + location: + type: string + example: San Francisco + email: + type: string + format: email + example: octocat@github.com + twitter_username: + type: string + example: github + nullable: true + is_verified: + type: boolean + example: true + has_organization_projects: + type: boolean + example: true + has_repository_projects: + type: boolean + example: true + public_repos: + type: integer + example: 2 + public_gists: + type: integer + example: 1 + followers: + type: integer + example: 20 + following: + type: integer + example: 0 + html_url: + type: string + format: uri + example: https://github.com/octocat + type: + type: string + example: Organization + total_private_repos: + type: integer + example: 100 + owned_private_repos: + type: integer + example: 100 + private_gists: + type: integer + example: 81 + nullable: true + disk_usage: + type: integer + example: 10000 + nullable: true + collaborators: + type: integer + example: 8 + nullable: true + description: |- + The number of collaborators on private repositories. + + This field may be null if the number of private repositories is over 50,000. + billing_email: + type: string + format: email + example: org@example.com + nullable: true + plan: + type: object + properties: + name: + type: string + space: + type: integer + private_repos: + type: integer + filled_seats: + type: integer + seats: + type: integer + required: + - name + - space + - private_repos + default_repository_permission: + type: string + nullable: true + default_repository_branch: + type: string + example: main + nullable: true + description: The default branch for repositories created in this organization. + members_can_create_repositories: + type: boolean + example: true + nullable: true + two_factor_requirement_enabled: + type: boolean + example: true + nullable: true + members_allowed_repository_creation_type: + type: string + example: all + members_can_create_public_repositories: + type: boolean + example: true + members_can_create_private_repositories: + type: boolean + example: true + members_can_create_internal_repositories: + type: boolean + example: true + members_can_create_pages: + type: boolean + example: true + members_can_create_public_pages: + type: boolean + example: true + members_can_create_private_pages: + type: boolean + example: true + members_can_delete_repositories: + type: boolean + example: true + members_can_change_repo_visibility: + type: boolean + example: true + members_can_invite_outside_collaborators: + type: boolean + example: true + members_can_delete_issues: + type: boolean + example: true + display_commenter_full_name_setting_enabled: + type: boolean + example: true + readers_can_create_discussions: + type: boolean + example: true + members_can_create_teams: + type: boolean + example: true + members_can_view_dependency_insights: + type: boolean + example: true + members_can_fork_private_repositories: + type: boolean + example: false + nullable: true + web_commit_signoff_required: + type: boolean + example: false + advanced_security_enabled_for_new_repositories: + type: boolean + example: false + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization. + + This field is only visible to organization owners or members of a team with the security manager role. + deprecated: true + dependabot_alerts_enabled_for_new_repositories: + type: boolean + example: false + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization. + + This field is only visible to organization owners or members of a team with the security manager role. + deprecated: true + dependabot_security_updates_enabled_for_new_repositories: + type: boolean + example: false + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization. + + This field is only visible to organization owners or members of a team with the security manager role. + deprecated: true + dependency_graph_enabled_for_new_repositories: + type: boolean + example: false + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization. + + This field is only visible to organization owners or members of a team with the security manager role. + deprecated: true + secret_scanning_enabled_for_new_repositories: + type: boolean + example: false + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization. + + This field is only visible to organization owners or members of a team with the security manager role. + deprecated: true + secret_scanning_push_protection_enabled_for_new_repositories: + type: boolean + example: false + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + + Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization. + + This field is only visible to organization owners or members of a team with the security manager role. + deprecated: true + secret_scanning_push_protection_custom_link_enabled: + type: boolean + example: false + description: Whether a custom link is shown to contributors who are blocked + from pushing a secret by push protection. + secret_scanning_push_protection_custom_link: + type: string + example: https://github.com/test-org/test-repo/blob/main/README.md + nullable: true + description: An optional URL string to display to contributors who are blocked + from pushing a secret. + created_at: + type: string + format: date-time + example: '2008-01-14T04:33:35Z' + updated_at: + type: string + format: date-time + archived_at: + type: string + format: date-time + nullable: true + deploy_keys_enabled_for_repositories: + type: boolean + example: false + description: Controls whether or not deploy keys may be added and used for + repositories in the organization. + required: + - login + - url + - id + - node_id + - repos_url + - events_url + - hooks_url + - issues_url + - members_url + - public_members_url + - avatar_url + - description + - html_url + - has_organization_projects + - has_repository_projects + - public_repos + - public_gists + - followers + - following + - type + - created_at + - updated_at + - archived_at + actions-cache-usage-org-enterprise: + type: object + properties: + total_active_caches_count: + type: integer + description: The count of active caches across all repositories of an enterprise + or an organization. + total_active_caches_size_in_bytes: + type: integer + description: The total size in bytes of all active cache items across all + repositories of an enterprise or an organization. + required: + - total_active_caches_count + - total_active_caches_size_in_bytes + actions-cache-usage-by-repository: + title: Actions Cache Usage by repository + description: GitHub Actions Cache Usage by repository. + type: object + properties: + full_name: + description: The repository owner and name for the cache usage being shown. + type: string + example: octo-org/Hello-World + active_caches_size_in_bytes: + description: The sum of the size in bytes of all the active cache items + in the repository. + type: integer + example: 2322142 + active_caches_count: + description: The number of active caches in the repository. + type: integer + example: 3 + required: + - full_name + - active_caches_size_in_bytes + - active_caches_count + nullable-actions-hosted-runner-pool-image: + title: GitHub-hosted runner image details. + description: Provides details of a hosted runner image + type: object + properties: + id: + description: The ID of the image. Use this ID for the `image` parameter + when creating a new larger runner. + type: string + example: ubuntu-20.04 + size_gb: + description: Image size in GB. + type: integer + example: 86 + display_name: + description: Display name for this image. + type: string + example: 20.04 + source: + description: The image provider. + type: string + enum: + - github + - partner + - custom + version: + description: The image version of the hosted runner pool. + type: string + example: latest + required: + - id + - size_gb + - display_name + - source + nullable: true + actions-hosted-runner-machine-spec: + title: Github-owned VM details. + description: Provides details of a particular machine spec. + type: object + properties: + id: + description: The ID used for the `size` parameter when creating a new runner. + type: string + example: 8-core + cpu_cores: + description: The number of cores. + type: integer + example: 8 + memory_gb: + description: The available RAM for the machine spec. + type: integer + example: 32 + storage_gb: + description: The available SSD storage for the machine spec. + type: integer + example: 300 + required: + - id + - cpu_cores + - memory_gb + - storage_gb + public-ip: + title: Public IP for a GitHub-hosted larger runners. + description: Provides details of Public IP for a GitHub-hosted larger runners + type: object + properties: + enabled: + description: Whether public IP is enabled. + type: boolean + example: true + prefix: + description: The prefix for the public IP. + type: string + example: 20.80.208.150 + length: + description: The length of the IP prefix. + type: integer + example: 28 + actions-hosted-runner: + title: GitHub-hosted hosted runner + description: A Github-hosted hosted runner. + type: object + properties: + id: + description: The unique identifier of the hosted runner. + type: integer + example: 5 + name: + description: The name of the hosted runner. + type: string + example: my-github-hosted-runner + runner_group_id: + description: The unique identifier of the group that the hosted runner belongs + to. + type: integer + example: 2 + image_details: + "$ref": "#/components/schemas/nullable-actions-hosted-runner-pool-image" + machine_size_details: + "$ref": "#/components/schemas/actions-hosted-runner-machine-spec" + status: + description: The status of the runner. + type: string + example: Ready + enum: + - Ready + - Provisioning + - Shutdown + - Deleting + - Stuck + platform: + description: The operating system of the image. + type: string + example: linux-x64 + maximum_runners: + description: The maximum amount of hosted runners. Runners will not scale + automatically above this number. Use this setting to limit your cost. + type: integer + default: 10 + example: 5 + public_ip_enabled: + description: Whether public IP is enabled for the hosted runners. + type: boolean + example: true + public_ips: + description: The public IP ranges when public IP is enabled for the hosted + runners. + type: array + items: + "$ref": "#/components/schemas/public-ip" + last_active_on: + description: The time at which the runner was last used, in ISO 8601 format. + type: string + format: date-time + example: '2022-10-09T23:39:01Z' + nullable: true + image_gen: + type: boolean + description: Whether custom image generation is enabled for the hosted runners. + required: + - id + - name + - image_details + - machine_size_details + - status + - public_ip_enabled + - platform + actions-hosted-runner-custom-image: + title: GitHub-hosted runner custom image details + description: Provides details of a custom runner image + type: object + properties: + id: + description: The ID of the image. Use this ID for the `image` parameter + when creating a new larger runner. + type: integer + example: 1 + platform: + description: The operating system of the image. + type: string + example: linux-x64 + total_versions_size: + description: Total size of all the image versions in GB. + type: integer + example: 200 + name: + description: Display name for this image. + type: string + example: CustomImage + source: + description: The image provider. + type: string + example: custom + versions_count: + description: The number of image versions associated with the image. + type: integer + example: 4 + latest_version: + description: The latest image version associated with the image. + type: string + example: 1.3.0 + state: + description: The number of image versions associated with the image. + type: string + example: Ready + required: + - id + - platform + - name + - source + - versions_count + - total_versions_size + - latest_version + - state + actions-hosted-runner-custom-image-version: + title: GitHub-hosted runner custom image version details. + description: Provides details of a hosted runner custom image version + type: object + properties: + version: + description: The version of image. + type: string + example: 1.0.0 + state: + description: The state of image version. + type: string + example: Ready + size_gb: + description: Image version size in GB. + type: integer + example: 30 + created_on: + description: The creation date time of the image version. + type: string + example: '2024-11-09T23:39:01Z' + state_details: + description: The image version status details. + type: string + example: None + required: + - version + - state + - size_gb + - created_on + - state_details + actions-hosted-runner-curated-image: + title: GitHub-hosted runner image details. + description: Provides details of a hosted runner image + type: object + properties: + id: + description: The ID of the image. Use this ID for the `image` parameter + when creating a new larger runner. + type: string + example: ubuntu-20.04 + platform: + description: The operating system of the image. + type: string + example: linux-x64 + size_gb: + description: Image size in GB. + type: integer + example: 86 + display_name: + description: Display name for this image. + type: string + example: 20.04 + source: + description: The image provider. + type: string + enum: + - github + - partner + - custom + required: + - id + - platform + - size_gb + - display_name + - source + actions-hosted-runner-limits: + type: object + properties: + public_ips: + title: Static public IP Limits for GitHub-hosted Hosted Runners. + description: Provides details of static public IP limits for GitHub-hosted + Hosted Runners + type: object + properties: + maximum: + type: integer + description: The maximum number of static public IP addresses that can + be used for Hosted Runners. + example: 50 + current_usage: + type: integer + description: The current number of static public IP addresses in use + by Hosted Runners. + example: 17 + required: + - maximum + - current_usage + required: + - public_ips + oidc-custom-sub: + title: Actions OIDC Subject customization + description: Actions OIDC Subject customization + type: object + properties: + include_claim_keys: + description: Array of unique strings. Each claim key can only contain alphanumeric + characters and underscores. + type: array + items: + type: string + required: + - include_claim_keys + empty-object: + title: Empty Object + description: An object without any properties. + type: object + properties: {} + additionalProperties: false + enabled-repositories: + type: string + description: The policy that controls the repositories in the organization that + are allowed to run GitHub Actions. + enum: + - all + - none + - selected + allowed-actions: + type: string + description: The permissions policy that controls the actions and reusable workflows + that are allowed to run. + enum: + - all + - local_only + - selected + selected-actions-url: + type: string + description: The API URL to use to get or set the actions and reusable workflows + that are allowed to run, when `allowed_actions` is set to `selected`. + sha-pinning-required: + type: boolean + description: Whether actions must be pinned to a full-length commit SHA. + actions-organization-permissions: + type: object + properties: + enabled_repositories: + "$ref": "#/components/schemas/enabled-repositories" + selected_repositories_url: + type: string + description: The API URL to use to get or set the selected repositories + that are allowed to run GitHub Actions, when `enabled_repositories` is + set to `selected`. + allowed_actions: + "$ref": "#/components/schemas/allowed-actions" + selected_actions_url: + "$ref": "#/components/schemas/selected-actions-url" + sha_pinning_required: + "$ref": "#/components/schemas/sha-pinning-required" + required: + - enabled_repositories + actions-artifact-and-log-retention-response: + type: object + properties: + days: + type: integer + description: The number of days artifacts and logs are retained + maximum_allowed_days: + type: integer + description: The maximum number of days that can be configured + required: + - days + - maximum_allowed_days + actions-artifact-and-log-retention: + type: object + properties: + days: + type: integer + description: The number of days to retain artifacts and logs + required: + - days + actions-fork-pr-contributor-approval: + type: object + properties: + approval_policy: + type: string + enum: + - first_time_contributors_new_to_github + - first_time_contributors + - all_external_contributors + description: The policy that controls when fork PR workflows require approval + from a maintainer. + required: + - approval_policy + actions-fork-pr-workflows-private-repos: + type: object + required: + - run_workflows_from_fork_pull_requests + - send_write_tokens_to_workflows + - send_secrets_and_variables + - require_approval_for_fork_pr_workflows + properties: + run_workflows_from_fork_pull_requests: + type: boolean + description: Whether workflows triggered by pull requests from forks are + allowed to run on private repositories. + send_write_tokens_to_workflows: + type: boolean + description: Whether GitHub Actions can create pull requests or submit approving + pull request reviews from a workflow triggered by a fork pull request. + send_secrets_and_variables: + type: boolean + description: Whether to make secrets and variables available to workflows + triggered by pull requests from forks. + require_approval_for_fork_pr_workflows: + type: boolean + description: Whether workflows triggered by pull requests from forks require + approval from a repository administrator to run. + actions-fork-pr-workflows-private-repos-request: + type: object + required: + - run_workflows_from_fork_pull_requests + properties: + run_workflows_from_fork_pull_requests: + type: boolean + description: Whether workflows triggered by pull requests from forks are + allowed to run on private repositories. + send_write_tokens_to_workflows: + type: boolean + description: Whether GitHub Actions can create pull requests or submit approving + pull request reviews from a workflow triggered by a fork pull request. + send_secrets_and_variables: + type: boolean + description: Whether to make secrets and variables available to workflows + triggered by pull requests from forks. + require_approval_for_fork_pr_workflows: + type: boolean + description: Whether workflows triggered by pull requests from forks require + approval from a repository administrator to run. + selected-actions: + type: object + properties: + github_owned_allowed: + type: boolean + description: Whether GitHub-owned actions are allowed. For example, this + includes the actions in the `actions` organization. + verified_allowed: + type: boolean + description: Whether actions from GitHub Marketplace verified creators are + allowed. Set to `true` to allow all actions by GitHub Marketplace verified + creators. + patterns_allowed: + type: array + description: |- + Specifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`. + + > [!NOTE] + > The `patterns_allowed` setting only applies to public repositories. + items: + type: string + self-hosted-runners-settings: + type: object + required: + - enabled_repositories + properties: + enabled_repositories: + type: string + description: The policy that controls whether self-hosted runners can be + used by repositories in the organization + enum: + - all + - selected + - none + selected_repositories_url: + type: string + description: The URL to the endpoint for managing selected repositories + for self-hosted runners in the organization + actions-default-workflow-permissions: + type: string + description: The default workflow permissions granted to the GITHUB_TOKEN when + running workflows. + enum: + - read + - write + actions-can-approve-pull-request-reviews: + type: boolean + description: Whether GitHub Actions can approve pull requests. Enabling this + can be a security risk. + actions-get-default-workflow-permissions: + type: object + properties: + default_workflow_permissions: + "$ref": "#/components/schemas/actions-default-workflow-permissions" + can_approve_pull_request_reviews: + "$ref": "#/components/schemas/actions-can-approve-pull-request-reviews" + required: + - default_workflow_permissions + - can_approve_pull_request_reviews + actions-set-default-workflow-permissions: + type: object + properties: + default_workflow_permissions: + "$ref": "#/components/schemas/actions-default-workflow-permissions" + can_approve_pull_request_reviews: + "$ref": "#/components/schemas/actions-can-approve-pull-request-reviews" + runner-groups-org: + type: object + properties: + id: + type: number + name: + type: string + visibility: + type: string + default: + type: boolean + selected_repositories_url: + description: Link to the selected repositories resource for this runner + group. Not present unless visibility was set to `selected` + type: string + runners_url: + type: string + hosted_runners_url: + type: string + network_configuration_id: + description: The identifier of a hosted compute network configuration. + type: string + inherited: + type: boolean + inherited_allows_public_repositories: + type: boolean + allows_public_repositories: + type: boolean + workflow_restrictions_read_only: + description: If `true`, the `restricted_to_workflows` and `selected_workflows` + fields cannot be modified. + type: boolean + default: false + restricted_to_workflows: + description: If `true`, the runner group will be restricted to running only + the workflows specified in the `selected_workflows` array. + type: boolean + default: false + selected_workflows: + description: List of workflows the runner group should be allowed to run. + This setting will be ignored unless `restricted_to_workflows` is set to + `true`. + type: array + items: + type: string + description: Name of workflow the runner group should be allowed to run. + Note that a ref, tag, or long SHA is required. + example: octo-org/octo-repo/.github/workflows/deploy.yaml@main + required: + - id + - name + - visibility + - default + - runners_url + - inherited + - allows_public_repositories + runner-label: + title: Self hosted runner label + description: A label for a self hosted runner + type: object + properties: + id: + type: integer + description: Unique identifier of the label. + name: + type: string + description: Name of the label. + type: + type: string + description: The type of label. Read-only labels are applied automatically + when the runner is configured. + enum: + - read-only + - custom + required: + - name + runner: + title: Self hosted runners + description: A self hosted runner + type: object + properties: + id: + description: The ID of the runner. + type: integer + example: 5 + runner_group_id: + description: The ID of the runner group. + type: integer + example: 1 + name: + description: The name of the runner. + type: string + example: iMac + os: + description: The Operating System of the runner. + type: string + example: macos + status: + description: The status of the runner. + type: string + example: online + busy: + type: boolean + labels: + type: array + items: + "$ref": "#/components/schemas/runner-label" + ephemeral: + type: boolean + required: + - id + - name + - os + - status + - busy + - labels + runner-application: + title: Runner Application + description: Runner Application + type: object + properties: + os: + type: string + architecture: + type: string + download_url: + type: string + filename: + type: string + temp_download_token: + description: A short lived bearer token used to download the runner, if + needed. + type: string + sha256_checksum: + type: string + required: + - os + - architecture + - download_url + - filename + authentication-token: + title: Authentication Token + description: Authentication Token + type: object + properties: + token: + description: The token used for authentication + type: string + example: v1.1f699f1069f60xxx + expires_at: + description: The time this token expires + type: string + format: date-time + example: '2016-07-11T22:14:10Z' + permissions: + type: object + example: + issues: read + deployments: write + repositories: + description: The repositories this token has access to + type: array + items: + "$ref": "#/components/schemas/repository" + single_file: + type: string + example: config.yaml + nullable: true + repository_selection: + description: Describe whether all repositories have been selected or there's + a selection involved + type: string + enum: + - all + - selected + required: + - token + - expires_at + organization-actions-secret: + title: Actions Secret for an Organization + description: Secrets for GitHub Actions for an organization. + type: object + properties: + name: + description: The name of the secret. + example: SECRET_TOKEN + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + visibility: + description: Visibility of a secret + enum: + - all + - private + - selected + type: string + selected_repositories_url: + type: string + format: uri + example: https://api.github.com/organizations/org/secrets/my_secret/repositories + required: + - name + - created_at + - updated_at + - visibility + actions-public-key: + title: ActionsPublicKey + description: The public key used for setting Actions Secrets. + type: object + properties: + key_id: + description: The identifier for the key. + type: string + example: '1234567' + key: + description: The Base64 encoded public key. + type: string + example: hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + id: + type: integer + example: 2 + url: + type: string + example: https://api.github.com/user/keys/2 + title: + type: string + example: ssh-rsa AAAAB3NzaC1yc2EAAA + created_at: + type: string + example: '2011-01-26T19:01:12Z' + required: + - key_id + - key + organization-actions-variable: + title: Actions Variable for an Organization + description: Organization variable for GitHub Actions. + type: object + properties: + name: + description: The name of the variable. + example: USERNAME + type: string + value: + description: The value of the variable. + example: octocat + type: string + created_at: + description: The date and time at which the variable was created, in ISO + 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + example: '2019-01-24T22:45:36.000Z' + type: string + format: date-time + updated_at: + description: The date and time at which the variable was last updated, in + ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + example: '2019-01-24T22:45:36.000Z' + type: string + format: date-time + visibility: + description: Visibility of a variable + enum: + - all + - private + - selected + type: string + selected_repositories_url: + type: string + format: uri + example: https://api.github.com/organizations/org/variables/USERNAME/repositories + required: + - name + - value + - created_at + - updated_at + - visibility + artifact-deployment-record: + title: Artifact Deployment Record + description: Artifact Metadata Deployment Record + type: object + properties: + id: + type: integer + digest: + type: string + logical_environment: + type: string + physical_environment: + type: string + cluster: + type: string + deployment_name: + type: string + tags: + type: object + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + created_at: + type: string + updated_at: + type: string + attestation_id: + type: integer + description: The ID of the provenance attestation associated with the deployment + record. + nullable: true + campaign-state: + title: Campaign state + description: Indicates whether a campaign is open or closed + type: string + enum: + - open + - closed + campaign-alert-type: + title: Campaign alert type + description: Indicates the alert type of a campaign + type: string + enum: + - code_scanning + - secret_scanning + nullable-team-simple: + title: Team Simple + description: Groups of organization members that gives permissions on specified + repositories. + type: object + properties: + id: + description: Unique identifier of the team + type: integer + example: 1 + node_id: + type: string + example: MDQ6VGVhbTE= + url: + description: URL for the team + type: string + format: uri + example: https://api.github.com/organizations/1/team/1 + members_url: + type: string + example: https://api.github.com/organizations/1/team/1/members{/member} + name: + description: Name of the team + type: string + example: Justice League + description: + description: Description of the team + type: string + nullable: true + example: A great team. + permission: + description: Permission that the team will have for its repositories + type: string + example: admin + privacy: + description: The level of privacy this team should have + type: string + example: closed + notification_setting: + description: The notification setting the team has set + type: string + example: notifications_enabled + html_url: + type: string + format: uri + example: https://github.com/orgs/rails/teams/core + repositories_url: + type: string + format: uri + example: https://api.github.com/organizations/1/team/1/repos + slug: + type: string + example: justice-league + ldap_dn: + description: Distinguished Name (DN) that team maps to within LDAP environment + example: uid=example,ou=users,dc=github,dc=com + type: string + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team belongs + example: 42 + required: + - id + - node_id + - url + - members_url + - name + - description + - permission + - html_url + - repositories_url + - slug + - type + nullable: true + team: + title: Team + description: Groups of organization members that gives permissions on specified + repositories. + type: object + properties: + id: + type: integer + node_id: + type: string + name: + type: string + slug: + type: string + description: + type: string + nullable: true + privacy: + type: string + notification_setting: + type: string + permission: + type: string + permissions: + type: object + properties: + pull: + type: boolean + triage: + type: boolean + push: + type: boolean + maintain: + type: boolean + admin: + type: boolean + required: + - pull + - triage + - push + - maintain + - admin + url: + type: string + format: uri + html_url: + type: string + format: uri + example: https://github.com/orgs/rails/teams/core + members_url: + type: string + repositories_url: + type: string + format: uri + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team belongs + example: 42 + parent: + "$ref": "#/components/schemas/nullable-team-simple" + required: + - id + - node_id + - url + - members_url + - name + - description + - permission + - html_url + - repositories_url + - slug + - parent + - type + campaign-summary: + title: Campaign summary + description: The campaign metadata and alert stats. + type: object + properties: + number: + type: integer + description: The number of the newly created campaign + created_at: + type: string + format: date-time + description: The date and time the campaign was created, in ISO 8601 format':' + YYYY-MM-DDTHH:MM:SSZ. + updated_at: + type: string + format: date-time + description: The date and time the campaign was last updated, in ISO 8601 + format':' YYYY-MM-DDTHH:MM:SSZ. + name: + type: string + description: The campaign name + description: + type: string + description: The campaign description + managers: + description: The campaign managers + type: array + items: + "$ref": "#/components/schemas/simple-user" + team_managers: + description: The campaign team managers + type: array + items: + "$ref": "#/components/schemas/team" + published_at: + description: The date and time the campaign was published, in ISO 8601 format':' + YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + ends_at: + description: The date and time the campaign has ended, in ISO 8601 format':' + YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + closed_at: + description: The date and time the campaign was closed, in ISO 8601 format':' + YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open. + type: string + format: date-time + nullable: true + state: + "$ref": "#/components/schemas/campaign-state" + contact_link: + description: The contact link of the campaign. + type: string + format: uri + nullable: true + alert_stats: + type: object + additionalProperties: false + properties: + open_count: + type: integer + description: The number of open alerts + closed_count: + type: integer + description: The number of closed alerts + in_progress_count: + type: integer + description: The number of in-progress alerts + required: + - open_count + - closed_count + - in_progress_count + required: + - number + - created_at + - updated_at + - description + - managers + - ends_at + - state + - contact_link + code-scanning-analysis-tool-name: + type: string + description: The name of the tool used to generate the code scanning analysis. + code-scanning-analysis-tool-guid: + nullable: true + type: string + description: The GUID of the tool used to generate the code scanning analysis, + if provided in the uploaded SARIF data. + code-scanning-alert-state-query: + type: string + description: State of a code scanning alert. + enum: + - open + - closed + - dismissed + - fixed + code-scanning-alert-severity: + type: string + description: Severity of a code scanning alert. + enum: + - critical + - high + - medium + - low + - warning + - note + - error + alert-instances-url: + type: string + description: The REST API URL for fetching the list of instances for an alert. + format: uri + readOnly: true + code-scanning-alert-state: + type: string + description: State of a code scanning alert. + nullable: true + enum: + - open + - dismissed + - fixed + code-scanning-alert-dismissed-reason: + type: string + description: "**Required when the state is dismissed.** The reason for dismissing + or closing the alert." + nullable: true + enum: + - false positive + - won't fix + - used in tests + code-scanning-alert-dismissed-comment: + type: string + description: The dismissal comment associated with the dismissal of the alert. + nullable: true + maxLength: 280 + code-scanning-alert-rule-summary: + type: object + properties: + id: + nullable: true + type: string + description: A unique identifier for the rule used to detect the alert. + name: + type: string + description: The name of the rule used to detect the alert. + severity: + nullable: true + type: string + description: The severity of the alert. + enum: + - none + - note + - warning + - error + security_severity_level: + nullable: true + type: string + description: The security severity of the alert. + enum: + - low + - medium + - high + - critical + description: + type: string + description: A short description of the rule used to detect the alert. + full_description: + type: string + description: A description of the rule used to detect the alert. + tags: + nullable: true + type: array + description: A set of tags applicable for the rule. + items: + type: string + help: + nullable: true + type: string + description: Detailed documentation for the rule as GitHub Flavored Markdown. + help_uri: + nullable: true + type: string + description: A link to the documentation for the rule used to detect the + alert. + code-scanning-analysis-tool-version: + nullable: true + type: string + description: The version of the tool used to generate the code scanning analysis. + code-scanning-analysis-tool: + type: object + properties: + name: + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + version: + "$ref": "#/components/schemas/code-scanning-analysis-tool-version" + guid: + "$ref": "#/components/schemas/code-scanning-analysis-tool-guid" + code-scanning-ref: + type: string + description: |- + The Git reference, formatted as `refs/pull//merge`, `refs/pull//head`, + `refs/heads/` or simply ``. + code-scanning-analysis-analysis-key: + type: string + description: Identifies the configuration under which the analysis was executed. + For example, in GitHub Actions this includes the workflow filename and job + name. + code-scanning-alert-environment: + type: string + description: Identifies the variable values associated with the environment + in which the analysis that generated this alert instance was performed, such + as the language that was analyzed. + code-scanning-analysis-category: + type: string + description: Identifies the configuration under which the analysis was executed. + Used to distinguish between multiple analyses for the same tool and commit, + but performed on different languages or different parts of the code. + code-scanning-alert-location: + type: object + description: Describe a region within a file for the alert. + properties: + path: + type: string + start_line: + type: integer + end_line: + type: integer + start_column: + type: integer + end_column: + type: integer + code-scanning-alert-classification: + type: string + description: A classification of the file. For example to identify it as generated. + nullable: true + enum: + - source + - generated + - test + - library + code-scanning-alert-instance: + type: object + properties: + ref: + "$ref": "#/components/schemas/code-scanning-ref" + analysis_key: + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + environment: + "$ref": "#/components/schemas/code-scanning-alert-environment" + category: + "$ref": "#/components/schemas/code-scanning-analysis-category" + state: + "$ref": "#/components/schemas/code-scanning-alert-state" + commit_sha: + type: string + message: + type: object + properties: + text: + type: string + location: + "$ref": "#/components/schemas/code-scanning-alert-location" + html_url: + type: string + classifications: + type: array + description: |- + Classifications that have been applied to the file that triggered the alert. + For example identifying it as documentation, or a generated file. + items: + "$ref": "#/components/schemas/code-scanning-alert-classification" + code-scanning-organization-alert-items: + type: object + properties: + number: + "$ref": "#/components/schemas/alert-number" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/alert-updated-at" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + instances_url: + "$ref": "#/components/schemas/alert-instances-url" + state: + "$ref": "#/components/schemas/code-scanning-alert-state" + fixed_at: + "$ref": "#/components/schemas/alert-fixed-at" + dismissed_by: + "$ref": "#/components/schemas/nullable-simple-user" + dismissed_at: + "$ref": "#/components/schemas/alert-dismissed-at" + dismissed_reason: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + rule: + "$ref": "#/components/schemas/code-scanning-alert-rule-summary" + tool: + "$ref": "#/components/schemas/code-scanning-analysis-tool" + most_recent_instance: + "$ref": "#/components/schemas/code-scanning-alert-instance" + repository: + "$ref": "#/components/schemas/simple-repository" + dismissal_approved_by: + "$ref": "#/components/schemas/nullable-simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + required: + - number + - created_at + - url + - html_url + - instances_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + - most_recent_instance + - repository + nullable-codespace-machine: + type: object + title: Codespace machine + description: A description of the machine powering a codespace. + properties: + name: + type: string + description: The name of the machine. + example: standardLinux + display_name: + type: string + description: The display name of the machine includes cores, memory, and + storage. + example: 4 cores, 16 GB RAM, 64 GB storage + operating_system: + type: string + description: The operating system of the machine. + example: linux + storage_in_bytes: + type: integer + description: How much storage is available to the codespace. + example: 68719476736 + memory_in_bytes: + type: integer + description: How much memory is available to the codespace. + example: 17179869184 + cpus: + type: integer + description: How many cores are available to the codespace. + example: 4 + prebuild_availability: + type: string + description: Whether a prebuild is currently available when creating a codespace + for this machine and repository. If a branch was not specified as a ref, + the default branch will be assumed. Value will be "null" if prebuilds + are not supported or prebuild availability could not be determined. Value + will be "none" if no prebuild is available. Latest values "ready" and + "in_progress" indicate the prebuild availability status. + example: ready + enum: + - none + - ready + - in_progress + nullable: true + required: + - name + - display_name + - operating_system + - storage_in_bytes + - memory_in_bytes + - cpus + - prebuild_availability + nullable: true + codespace: + type: object + title: Codespace + description: A codespace. + properties: + id: + type: integer + format: int64 + example: 1 + name: + description: Automatically generated name of this codespace. + type: string + example: monalisa-octocat-hello-world-g4wpq6h95q + display_name: + description: Display name for this codespace. + type: string + example: bookish space pancake + nullable: true + environment_id: + description: UUID identifying this codespace's environment. + type: string + example: 26a7c758-7299-4a73-b978-5a92a7ae98a0 + nullable: true + owner: + "$ref": "#/components/schemas/simple-user" + billable_owner: + "$ref": "#/components/schemas/simple-user" + repository: + "$ref": "#/components/schemas/minimal-repository" + machine: + "$ref": "#/components/schemas/nullable-codespace-machine" + devcontainer_path: + description: Path to devcontainer.json from repo root used to create Codespace. + type: string + example: ".devcontainer/example/devcontainer.json" + nullable: true + prebuild: + description: Whether the codespace was created from a prebuild. + type: boolean + example: false + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + updated_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + last_used_at: + description: Last known time this codespace was started. + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + state: + description: State of this codespace. + enum: + - Unknown + - Created + - Queued + - Provisioning + - Available + - Awaiting + - Unavailable + - Deleted + - Moved + - Shutdown + - Archived + - Starting + - ShuttingDown + - Failed + - Exporting + - Updating + - Rebuilding + example: Available + type: string + url: + description: API URL for this codespace. + type: string + format: uri + git_status: + description: Details about the codespace's git repository. + type: object + properties: + ahead: + description: The number of commits the local repository is ahead of + the remote. + type: integer + example: 0 + behind: + description: The number of commits the local repository is behind the + remote. + type: integer + example: 0 + has_unpushed_changes: + description: Whether the local repository has unpushed changes. + type: boolean + has_uncommitted_changes: + description: Whether the local repository has uncommitted changes. + type: boolean + ref: + description: The current branch (or SHA if in detached HEAD state) of + the local repository. + type: string + example: main + location: + description: The initally assigned location of a new codespace. + enum: + - EastUs + - SouthEastAsia + - WestEurope + - WestUs2 + example: WestUs2 + type: string + idle_timeout_minutes: + description: The number of minutes of inactivity after which this codespace + will be automatically stopped. + type: integer + example: 60 + nullable: true + web_url: + description: URL to access this codespace on the web. + type: string + format: uri + machines_url: + description: API URL to access available alternate machine types for this + codespace. + type: string + format: uri + start_url: + description: API URL to start this codespace. + type: string + format: uri + stop_url: + description: API URL to stop this codespace. + type: string + format: uri + publish_url: + description: API URL to publish this codespace to a new repository. + type: string + format: uri + nullable: true + pulls_url: + description: API URL for the Pull Request associated with this codespace, + if any. + type: string + format: uri + nullable: true + recent_folders: + type: array + items: + type: string + runtime_constraints: + type: object + properties: + allowed_port_privacy_settings: + description: The privacy settings a user can select from when forwarding + a port. + type: array + items: + type: string + nullable: true + pending_operation: + description: Whether or not a codespace has a pending async operation. This + would mean that the codespace is temporarily unavailable. The only thing + that you can do with a codespace in this state is delete it. + type: boolean + nullable: true + pending_operation_disabled_reason: + description: Text to show user when codespace is disabled by a pending operation + type: string + nullable: true + idle_timeout_notice: + description: Text to show user when codespace idle timeout minutes has been + overriden by an organization policy + type: string + nullable: true + retention_period_minutes: + description: Duration in minutes after codespace has gone idle in which + it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + type: integer + example: 60 + nullable: true + retention_expires_at: + description: When a codespace will be auto-deleted based on the "retention_period_minutes" + and "last_used_at" + type: string + format: date-time + example: '2011-01-26T20:01:12Z' + nullable: true + last_known_stop_notice: + description: The text to display to a user when a codespace has been stopped + for a potentially actionable reason. + type: string + example: you've used 100% of your spending limit for Codespaces + nullable: true + required: + - id + - name + - environment_id + - owner + - billable_owner + - repository + - machine + - prebuild + - created_at + - updated_at + - last_used_at + - state + - url + - git_status + - location + - idle_timeout_minutes + - web_url + - machines_url + - start_url + - stop_url + - pulls_url + - recent_folders + codespaces-org-secret: + title: Codespaces Secret + description: Secrets for a GitHub Codespace. + type: object + properties: + name: + description: The name of the secret + example: SECRET_NAME + type: string + created_at: + description: The date and time at which the secret was created, in ISO 8601 + format':' YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + updated_at: + description: The date and time at which the secret was created, in ISO 8601 + format':' YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + visibility: + description: The type of repositories in the organization that the secret + is visible to + enum: + - all + - private + - selected + type: string + selected_repositories_url: + description: The API URL at which the list of repositories this secret is + visible to can be retrieved + type: string + format: uri + example: https://api.github.com/orgs/ORGANIZATION/codespaces/secrets/SECRET_NAME/repositories + required: + - name + - created_at + - updated_at + - visibility + codespaces-public-key: + title: CodespacesPublicKey + description: The public key used for setting Codespaces secrets. + type: object + properties: + key_id: + description: The identifier for the key. + type: string + example: '1234567' + key: + description: The Base64 encoded public key. + type: string + example: hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + id: + type: integer + example: 2 + url: + type: string + example: https://api.github.com/user/keys/2 + title: + type: string + example: ssh-rsa AAAAB3NzaC1yc2EAAA + created_at: + type: string + example: '2011-01-26T19:01:12Z' + required: + - key_id + - key + copilot-organization-seat-breakdown: + title: Copilot Seat Breakdown + description: The breakdown of Copilot Business seats for the organization. + type: object + properties: + total: + type: integer + description: The total number of seats being billed for the organization + as of the current billing cycle. + added_this_cycle: + type: integer + description: Seats added during the current billing cycle. + pending_cancellation: + type: integer + description: The number of seats that are pending cancellation at the end + of the current billing cycle. + pending_invitation: + type: integer + description: The number of users who have been invited to receive a Copilot + seat through this organization. + active_this_cycle: + type: integer + description: The number of seats that have used Copilot during the current + billing cycle. + inactive_this_cycle: + type: integer + description: The number of seats that have not used Copilot during the current + billing cycle. + copilot-organization-details: + title: Copilot Organization Details + description: Information about the seat breakdown and policies set for an organization + with a Copilot Business or Copilot Enterprise subscription. + type: object + properties: + seat_breakdown: + "$ref": "#/components/schemas/copilot-organization-seat-breakdown" + public_code_suggestions: + type: string + description: The organization policy for allowing or blocking suggestions + matching public code (duplication detection filter). + enum: + - allow + - block + - unconfigured + ide_chat: + type: string + description: The organization policy for allowing or disallowing Copilot + Chat in the IDE. + enum: + - enabled + - disabled + - unconfigured + platform_chat: + type: string + description: The organization policy for allowing or disallowing Copilot + features on GitHub.com. + enum: + - enabled + - disabled + - unconfigured + cli: + type: string + description: The organization policy for allowing or disallowing Copilot + in the CLI. + enum: + - enabled + - disabled + - unconfigured + seat_management_setting: + type: string + description: The mode of assigning new seats. + enum: + - assign_all + - assign_selected + - disabled + - unconfigured + plan_type: + type: string + description: The Copilot plan of the organization, or the parent enterprise, + when applicable. + enum: + - business + - enterprise + required: + - seat_breakdown + - public_code_suggestions + - seat_management_setting + additionalProperties: true + nullable-organization-simple: + title: Organization Simple + description: A GitHub organization. + type: object + properties: + login: + type: string + example: github + id: + type: integer + example: 1 + node_id: + type: string + example: MDEyOk9yZ2FuaXphdGlvbjE= + url: + type: string + format: uri + example: https://api.github.com/orgs/github + repos_url: + type: string + format: uri + example: https://api.github.com/orgs/github/repos + events_url: + type: string + format: uri + example: https://api.github.com/orgs/github/events + hooks_url: + type: string + example: https://api.github.com/orgs/github/hooks + issues_url: + type: string + example: https://api.github.com/orgs/github/issues + members_url: + type: string + example: https://api.github.com/orgs/github/members{/member} + public_members_url: + type: string + example: https://api.github.com/orgs/github/public_members{/member} + avatar_url: + type: string + example: https://github.com/images/error/octocat_happy.gif + description: + type: string + example: A great organization + nullable: true + required: + - login + - url + - id + - node_id + - repos_url + - events_url + - hooks_url + - issues_url + - members_url + - public_members_url + - avatar_url + - description + nullable: true + copilot-seat-details: + title: Copilot Business Seat Detail + description: Information about a Copilot Business seat assignment for a user, + team, or organization. + type: object + properties: + assignee: + "$ref": "#/components/schemas/nullable-simple-user" + organization: + "$ref": "#/components/schemas/nullable-organization-simple" + assigning_team: + description: The team through which the assignee is granted access to GitHub + Copilot, if applicable. + oneOf: + - "$ref": "#/components/schemas/team" + - "$ref": "#/components/schemas/enterprise-team" + nullable: true + pending_cancellation_date: + type: string + format: date + nullable: true + description: The pending cancellation date for the seat, in `YYYY-MM-DD` + format. This will be null unless the assignee's Copilot access has been + canceled during the current billing cycle. If the seat has been cancelled, + this corresponds to the start of the organization's next billing cycle. + last_activity_at: + type: string + format: date-time + nullable: true + description: Timestamp of user's last GitHub Copilot activity, in ISO 8601 + format. + last_activity_editor: + type: string + nullable: true + description: Last editor that was used by the user for a GitHub Copilot + completion. + last_authenticated_at: + type: string + format: date-time + nullable: true + description: Timestamp of the last time the user authenticated with GitHub + Copilot, in ISO 8601 format. + created_at: + type: string + format: date-time + description: Timestamp of when the assignee was last granted access to GitHub + Copilot, in ISO 8601 format. + updated_at: + type: string + format: date-time + deprecated: true + description: "**Closing down notice:** This field is no longer relevant + and is closing down. Use the `created_at` field to determine when the + assignee was last granted access to GitHub Copilot. Timestamp of when + the assignee's GitHub Copilot access was last updated, in ISO 8601 format." + plan_type: + type: string + description: The Copilot plan of the organization, or the parent enterprise, + when applicable. + enum: + - business + - enterprise + - unknown + required: + - created_at + additionalProperties: false + copilot-ide-code-completions: + type: object + description: Usage metrics for Copilot editor code completions in the IDE. + nullable: true + additionalProperties: true + properties: + total_engaged_users: + type: integer + description: Number of users who accepted at least one Copilot code suggestion, + across all active editors. Includes both full and partial acceptances. + languages: + type: array + description: Code completion metrics for active languages. + items: + type: object + description: Usage metrics for a given language for the given editor for + Copilot code completions. + properties: + name: + type: string + description: Name of the language used for Copilot code completion + suggestions. + total_engaged_users: + type: integer + description: Number of users who accepted at least one Copilot code + completion suggestion for the given language. Includes both full + and partial acceptances. + editors: + type: array + items: + type: object + description: Copilot code completion metrics for active editors. + additionalProperties: true + properties: + name: + type: string + description: Name of the given editor. + total_engaged_users: + type: integer + description: Number of users who accepted at least one Copilot code + completion suggestion for the given editor. Includes both full and + partial acceptances. + models: + type: array + description: List of model metrics for custom models and the default + model. + items: + type: object + properties: + name: + type: string + description: Name of the model used for Copilot code completion + suggestions. If the default model is used will appear as 'default'. + is_custom_model: + type: boolean + description: Indicates whether a model is custom or default. + custom_model_training_date: + type: string + nullable: true + description: The training date for the custom model. + total_engaged_users: + type: integer + description: Number of users who accepted at least one Copilot + code completion suggestion for the given editor, for the given + language and model. Includes both full and partial acceptances. + languages: + type: array + description: Code completion metrics for active languages, for + the given editor. + items: + type: object + description: Usage metrics for a given language for the given + editor for Copilot code completions. + properties: + name: + type: string + description: Name of the language used for Copilot code + completion suggestions, for the given editor. + total_engaged_users: + type: integer + description: Number of users who accepted at least one + Copilot code completion suggestion for the given editor, + for the given language. Includes both full and partial + acceptances. + total_code_suggestions: + type: integer + description: The number of Copilot code suggestions generated + for the given editor, for the given language. + total_code_acceptances: + type: integer + description: The number of Copilot code suggestions accepted + for the given editor, for the given language. Includes + both full and partial acceptances. + total_code_lines_suggested: + type: integer + description: The number of lines of code suggested by + Copilot code completions for the given editor, for the + given language. + total_code_lines_accepted: + type: integer + description: The number of lines of code accepted from + Copilot code suggestions for the given editor, for the + given language. + copilot-ide-chat: + type: object + description: Usage metrics for Copilot Chat in the IDE. + nullable: true + additionalProperties: true + properties: + total_engaged_users: + type: integer + description: Total number of users who prompted Copilot Chat in the IDE. + editors: + type: array + items: + type: object + description: Copilot Chat metrics, for active editors. + properties: + name: + type: string + description: Name of the given editor. + total_engaged_users: + type: integer + description: The number of users who prompted Copilot Chat in the + specified editor. + models: + type: array + description: List of model metrics for custom models and the default + model. + items: + type: object + properties: + name: + type: string + description: Name of the model used for Copilot Chat. If the + default model is used will appear as 'default'. + is_custom_model: + type: boolean + description: Indicates whether a model is custom or default. + custom_model_training_date: + type: string + nullable: true + description: The training date for the custom model. + total_engaged_users: + type: integer + description: The number of users who prompted Copilot Chat in + the given editor and model. + total_chats: + type: integer + description: The total number of chats initiated by users in + the given editor and model. + total_chat_insertion_events: + type: integer + description: The number of times users accepted a code suggestion + from Copilot Chat using the 'Insert Code' UI element, for + the given editor. + total_chat_copy_events: + type: integer + description: The number of times users copied a code suggestion + from Copilot Chat using the keyboard, or the 'Copy' UI element, + for the given editor. + copilot-dotcom-chat: + type: object + description: Usage metrics for Copilot Chat in GitHub.com + nullable: true + additionalProperties: true + properties: + total_engaged_users: + type: integer + description: Total number of users who prompted Copilot Chat on github.com + at least once. + models: + type: array + description: List of model metrics for a custom models and the default model. + items: + type: object + properties: + name: + type: string + description: Name of the model used for Copilot Chat. If the default + model is used will appear as 'default'. + is_custom_model: + type: boolean + description: Indicates whether a model is custom or default. + custom_model_training_date: + type: string + description: The training date for the custom model (if applicable). + nullable: true + total_engaged_users: + type: integer + description: Total number of users who prompted Copilot Chat on github.com + at least once for each model. + total_chats: + type: integer + description: Total number of chats initiated by users on github.com. + copilot-dotcom-pull-requests: + type: object + description: Usage metrics for Copilot for pull requests. + nullable: true + additionalProperties: true + properties: + total_engaged_users: + type: integer + description: The number of users who used Copilot for Pull Requests on github.com + to generate a pull request summary at least once. + repositories: + type: array + description: Repositories in which users used Copilot for Pull Requests + to generate pull request summaries + items: + type: object + properties: + name: + type: string + description: Repository name + total_engaged_users: + type: integer + description: The number of users who generated pull request summaries + using Copilot for Pull Requests in the given repository. + models: + type: array + description: List of model metrics for custom models and the default + model. + items: + type: object + properties: + name: + type: string + description: Name of the model used for Copilot pull request + summaries. If the default model is used will appear as 'default'. + is_custom_model: + type: boolean + description: Indicates whether a model is custom or default. + custom_model_training_date: + type: string + nullable: true + description: The training date for the custom model. + total_pr_summaries_created: + type: integer + description: The number of pull request summaries generated + using Copilot for Pull Requests in the given repository. + total_engaged_users: + type: integer + description: The number of users who generated pull request + summaries using Copilot for Pull Requests in the given repository + and model. + copilot-usage-metrics-day: + title: Copilot Usage Metrics + description: Copilot usage metrics for a given day. + type: object + properties: + date: + type: string + format: date + description: The date for which the usage metrics are aggregated, in `YYYY-MM-DD` + format. + total_active_users: + type: integer + description: The total number of Copilot users with activity belonging to + any Copilot feature, globally, for the given day. Includes passive activity + such as receiving a code suggestion, as well as engagement activity such + as accepting a code suggestion or prompting chat. Does not include authentication + events. Is not limited to the individual features detailed on the endpoint. + total_engaged_users: + type: integer + description: The total number of Copilot users who engaged with any Copilot + feature, for the given day. Examples include but are not limited to accepting + a code suggestion, prompting Copilot chat, or triggering a PR Summary. + Does not include authentication events. Is not limited to the individual + features detailed on the endpoint. + copilot_ide_code_completions: + "$ref": "#/components/schemas/copilot-ide-code-completions" + copilot_ide_chat: + "$ref": "#/components/schemas/copilot-ide-chat" + copilot_dotcom_chat: + "$ref": "#/components/schemas/copilot-dotcom-chat" + copilot_dotcom_pull_requests: + "$ref": "#/components/schemas/copilot-dotcom-pull-requests" + required: + - date + additionalProperties: true + organization-dependabot-secret: + title: Dependabot Secret for an Organization + description: Secrets for GitHub Dependabot for an organization. + type: object + properties: + name: + description: The name of the secret. + example: SECRET_TOKEN + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + visibility: + description: Visibility of a secret + enum: + - all + - private + - selected + type: string + selected_repositories_url: + type: string + format: uri + example: https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories + required: + - name + - created_at + - updated_at + - visibility + dependabot-public-key: + title: DependabotPublicKey + description: The public key used for setting Dependabot Secrets. + type: object + properties: + key_id: + description: The identifier for the key. + type: string + example: '1234567' + key: + description: The Base64 encoded public key. + type: string + example: hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + required: + - key_id + - key + nullable-minimal-repository: + title: Minimal Repository + description: Minimal Repository + type: object + properties: + id: + type: integer + format: int64 + example: 1296269 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + type: string + example: Hello-World + full_name: + type: string + example: octocat/Hello-World + owner: + "$ref": "#/components/schemas/simple-user" + private: + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + mirror_url: + type: string + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + homepage: + type: string + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + stargazers_count: + type: integer + watchers_count: + type: integer + size: + description: The size of the repository, in kilobytes. Size is calculated + hourly. When a repository is initially created, the size is 0. + 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 + has_discussions: + type: boolean + archived: + type: boolean + disabled: + type: boolean + visibility: + type: string + pushed_at: + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + push: + type: boolean + triage: + type: boolean + pull: + type: boolean + role_name: + type: string + example: admin + temp_clone_token: + type: string + delete_branch_on_merge: + type: boolean + subscribers_count: + type: integer + network_count: + type: integer + code_of_conduct: + "$ref": "#/components/schemas/code-of-conduct" + license: + type: object + properties: + key: + type: string + name: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + node_id: + type: string + nullable: true + forks: + type: integer + example: 0 + open_issues: + type: integer + example: 0 + watchers: + type: integer + example: 0 + allow_forking: + type: boolean + web_commit_signoff_required: + type: boolean + example: false + security_and_analysis: + "$ref": "#/components/schemas/security-and-analysis" + custom_properties: + type: object + 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. + additionalProperties: true + 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 + nullable: true + package: + title: Package + description: A software package + type: object + properties: + id: + description: Unique identifier of the package. + type: integer + example: 1 + name: + description: The name of the package. + type: string + example: super-linter + package_type: + type: string + example: docker + enum: + - npm + - maven + - rubygems + - docker + - nuget + - container + url: + type: string + example: https://api.github.com/orgs/github/packages/container/super-linter + html_url: + type: string + example: https://github.com/orgs/github/packages/container/package/super-linter + version_count: + description: The number of versions of the package. + type: integer + example: 1 + visibility: + type: string + example: private + enum: + - private + - public + owner: + "$ref": "#/components/schemas/nullable-simple-user" + repository: + "$ref": "#/components/schemas/nullable-minimal-repository" + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - id + - name + - package_type + - visibility + - url + - html_url + - version_count + - created_at + - updated_at + organization-invitation: + title: Organization Invitation + description: Organization Invitation + type: object + properties: + id: + type: integer + format: int64 + login: + type: string + nullable: true + email: + type: string + nullable: true + role: + type: string + created_at: + type: string + failed_at: + type: string + nullable: true + failed_reason: + type: string + nullable: true + inviter: + "$ref": "#/components/schemas/simple-user" + team_count: + type: integer + node_id: + type: string + example: '"MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x"' + invitation_teams_url: + type: string + example: '"https://api.github.com/organizations/16/invitations/1/teams"' + invitation_source: + type: string + example: '"member"' + required: + - id + - login + - email + - role + - created_at + - inviter + - team_count + - invitation_teams_url + - node_id + org-hook: + title: Org Hook + description: Org Hook + type: object + properties: + id: + type: integer + example: 1 + url: + type: string + format: uri + example: https://api.github.com/orgs/octocat/hooks/1 + ping_url: + type: string + format: uri + example: https://api.github.com/orgs/octocat/hooks/1/pings + deliveries_url: + type: string + format: uri + example: https://api.github.com/orgs/octocat/hooks/1/deliveries + name: + type: string + example: web + events: + type: array + example: + - push + - pull_request + items: + type: string + active: + type: boolean + example: true + config: + type: object + properties: + url: + type: string + example: '"http://example.com/2"' + insecure_ssl: + type: string + example: '"0"' + content_type: + type: string + example: '"form"' + secret: + type: string + example: '"********"' + updated_at: + type: string + format: date-time + example: '2011-09-06T20:39:23Z' + created_at: + type: string + format: date-time + example: '2011-09-06T17:26:27Z' + type: + type: string + required: + - id + - url + - type + - name + - active + - events + - config + - ping_url + - created_at + - updated_at + api-insights-route-stats: + title: Route Stats + description: API Insights usage route stats for an actor + type: array + items: + type: object + properties: + http_method: + description: The HTTP method + type: string + api_route: + description: The API path's route template + type: string + total_request_count: + description: The total number of requests within the queried time period + type: integer + format: int64 + rate_limited_request_count: + description: The total number of requests that were rate limited within + the queried time period + type: integer + format: int64 + last_rate_limited_timestamp: + type: string + nullable: true + last_request_timestamp: + type: string + api-insights-subject-stats: + title: Subject Stats + description: API Insights usage subject stats for an organization + type: array + items: + type: object + properties: + subject_type: + type: string + subject_name: + type: string + subject_id: + type: integer + format: int64 + total_request_count: + type: integer + rate_limited_request_count: + type: integer + last_rate_limited_timestamp: + type: string + nullable: true + last_request_timestamp: + type: string + api-insights-summary-stats: + title: Summary Stats + description: API Insights usage summary stats for an organization + type: object + properties: + total_request_count: + description: The total number of requests within the queried time period + type: integer + format: int64 + rate_limited_request_count: + description: The total number of requests that were rate limited within + the queried time period + type: integer + format: int64 + api-insights-time-stats: + title: Time Stats + description: API Insights usage time stats for an organization + type: array + items: + type: object + properties: + timestamp: + type: string + total_request_count: + type: integer + format: int64 + rate_limited_request_count: + type: integer + format: int64 + api-insights-user-stats: + title: User Stats + description: API Insights usage stats for a user + type: array + items: + type: object + properties: + actor_type: + type: string + actor_name: + type: string + actor_id: + type: integer + format: int64 + integration_id: + type: integer + format: int64 + nullable: true + oauth_application_id: + type: integer + format: int64 + nullable: true + total_request_count: + type: integer + rate_limited_request_count: + type: integer + last_rate_limited_timestamp: + type: string + nullable: true + last_request_timestamp: + type: string + interaction-group: + type: string + description: The type of GitHub user that can comment, open issues, or create + pull requests while the interaction limit is in effect. + example: collaborators_only + enum: + - existing_users + - contributors_only + - collaborators_only + interaction-limit-response: + title: Interaction Limits + description: Interaction limit settings. + type: object + properties: + limit: + "$ref": "#/components/schemas/interaction-group" + origin: + type: string + example: repository + expires_at: + type: string + format: date-time + example: '2018-08-17T04:18:39Z' + required: + - limit + - origin + - expires_at + interaction-expiry: + type: string + description: 'The duration of the interaction restriction. Default: `one_day`.' + example: one_month + enum: + - one_day + - three_days + - one_week + - one_month + - six_months + interaction-limit: + title: Interaction Restrictions + description: Limit interactions to a specific type of user for a specified duration + type: object + properties: + limit: + "$ref": "#/components/schemas/interaction-group" + expiry: + "$ref": "#/components/schemas/interaction-expiry" + required: + - limit + organization-create-issue-type: + type: object + properties: + name: + description: Name of the issue type. + type: string + is_enabled: + description: Whether or not the issue type is enabled at the organization + level. + type: boolean + description: + description: Description of the issue type. + type: string + nullable: true + color: + description: Color for the issue type. + type: string + enum: + - gray + - blue + - green + - yellow + - orange + - red + - pink + - purple + nullable: true + required: + - name + - is_enabled + organization-update-issue-type: + type: object + properties: + name: + description: Name of the issue type. + type: string + is_enabled: + description: Whether or not the issue type is enabled at the organization + level. + type: boolean + description: + description: Description of the issue type. + type: string + nullable: true + color: + description: Color for the issue type. + type: string + enum: + - gray + - blue + - green + - yellow + - orange + - red + - pink + - purple + nullable: true + required: + - name + - is_enabled + org-membership: + title: Org Membership + description: Org Membership + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/orgs/octocat/memberships/defunkt + state: + type: string + description: The state of the member in the organization. The `pending` + state indicates the user has not yet accepted an invitation. + example: active + enum: + - active + - pending + role: + type: string + description: The user's membership type in the organization. + example: admin + enum: + - admin + - member + - billing_manager + direct_membership: + type: boolean + description: Whether the user has direct membership in the organization. + example: true + enterprise_teams_providing_indirect_membership: + type: array + description: |- + The slugs of the enterprise teams providing the user with indirect membership in the organization. + A limit of 100 enterprise team slugs is returned. + maxItems: 100 + items: + type: string + example: + - ent:team-one + - ent:team-two + organization_url: + type: string + format: uri + example: https://api.github.com/orgs/octocat + organization: + "$ref": "#/components/schemas/organization-simple" + user: + "$ref": "#/components/schemas/nullable-simple-user" + permissions: + type: object + properties: + can_create_repository: + type: boolean + required: + - can_create_repository + required: + - state + - role + - organization_url + - url + - organization + - user + migration: + title: Migration + description: A migration. + type: object + properties: + id: + type: integer + format: int64 + example: 79 + owner: + "$ref": "#/components/schemas/nullable-simple-user" + guid: + type: string + example: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + state: + type: string + example: pending + lock_repositories: + type: boolean + example: true + exclude_metadata: + type: boolean + exclude_git_data: + type: boolean + exclude_attachments: + type: boolean + exclude_releases: + type: boolean + exclude_owner_projects: + type: boolean + org_metadata_only: + type: boolean + repositories: + type: array + description: The repositories included in the migration. Only returned for + export migrations. + items: + "$ref": "#/components/schemas/repository" + url: + type: string + format: uri + example: https://api.github.com/orgs/octo-org/migrations/79 + created_at: + type: string + format: date-time + example: '2015-07-06T15:33:38-07:00' + updated_at: + type: string + format: date-time + example: '2015-07-06T15:33:38-07:00' + node_id: + type: string + archive_url: + type: string + format: uri + exclude: + description: 'Exclude related items from being returned in the response + in order to improve performance of the request. The array can include + any of: `"repositories"`.' + type: array + items: + description: 'Allowed values that can be passed to the exclude parameter. + The array can include any of: `"repositories"`.' + type: string + required: + - id + - node_id + - owner + - guid + - state + - lock_repositories + - exclude_metadata + - exclude_git_data + - exclude_attachments + - exclude_releases + - exclude_owner_projects + - org_metadata_only + - repositories + - url + - created_at + - updated_at + organization-role: + title: Organization Role + description: Organization roles + type: object + properties: + id: + description: The unique identifier of the role. + type: integer + format: int64 + name: + description: The name of the role. + type: string + description: + description: A short description about who this role is for or what permissions + it grants. + type: string + nullable: true + base_role: + type: string + nullable: true + description: The system role from which this role inherits permissions. + enum: + - read + - triage + - write + - maintain + - admin + source: + type: string + nullable: true + description: Source answers the question, "where did this role come from?" + enum: + - Organization + - Enterprise + - Predefined + permissions: + description: A list of permissions included in this role. + type: array + items: + type: string + organization: + "$ref": "#/components/schemas/nullable-simple-user" + created_at: + description: The date and time the role was created. + type: string + format: date-time + updated_at: + description: The date and time the role was last updated. + type: string + format: date-time + required: + - id + - name + - permissions + - organization + - created_at + - updated_at + team-role-assignment: + title: A Role Assignment for a Team + description: The Relationship a Team has with a role. + type: object + properties: + assignment: + type: string + description: Determines if the team has a direct, indirect, or mixed relationship + to a role + enum: + - direct + - indirect + - mixed + example: direct + id: + type: integer + node_id: + type: string + name: + type: string + slug: + type: string + description: + type: string + nullable: true + privacy: + type: string + notification_setting: + type: string + permission: + type: string + permissions: + type: object + properties: + pull: + type: boolean + triage: + type: boolean + push: + type: boolean + maintain: + type: boolean + admin: + type: boolean + required: + - pull + - triage + - push + - maintain + - admin + url: + type: string + format: uri + html_url: + type: string + format: uri + example: https://github.com/orgs/rails/teams/core + members_url: + type: string + repositories_url: + type: string + format: uri + parent: + "$ref": "#/components/schemas/nullable-team-simple" + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team belongs + example: 42 + required: + - id + - node_id + - url + - members_url + - name + - description + - permission + - html_url + - repositories_url + - slug + - type + - parent + team-simple: + title: Team Simple + description: Groups of organization members that gives permissions on specified + repositories. + type: object + properties: + id: + description: Unique identifier of the team + type: integer + example: 1 + node_id: + type: string + example: MDQ6VGVhbTE= + url: + description: URL for the team + type: string + format: uri + example: https://api.github.com/organizations/1/team/1 + members_url: + type: string + example: https://api.github.com/organizations/1/team/1/members{/member} + name: + description: Name of the team + type: string + example: Justice League + description: + description: Description of the team + type: string + nullable: true + example: A great team. + permission: + description: Permission that the team will have for its repositories + type: string + example: admin + privacy: + description: The level of privacy this team should have + type: string + example: closed + notification_setting: + description: The notification setting the team has set + type: string + example: notifications_enabled + html_url: + type: string + format: uri + example: https://github.com/orgs/rails/teams/core + repositories_url: + type: string + format: uri + example: https://api.github.com/organizations/1/team/1/repos + slug: + type: string + example: justice-league + ldap_dn: + description: Distinguished Name (DN) that team maps to within LDAP environment + example: uid=example,ou=users,dc=github,dc=com + type: string + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team belongs + example: 42 + required: + - id + - node_id + - url + - members_url + - name + - description + - permission + - html_url + - repositories_url + - slug + - type + user-role-assignment: + title: A Role Assignment for a User + description: The Relationship a User has with a role. + type: object + properties: + assignment: + type: string + description: Determines if the user has a direct, indirect, or mixed relationship + to a role + enum: + - direct + - indirect + - mixed + example: direct + inherited_from: + description: Team the user has gotten the role through + type: array + items: + "$ref": "#/components/schemas/team-simple" + name: + nullable: true + type: string + email: + nullable: true + type: string + login: + type: string + example: octocat + id: + type: integer + example: 1 + node_id: + type: string + example: MDQ6VXNlcjE= + avatar_url: + type: string + format: uri + example: https://github.com/images/error/octocat_happy.gif + gravatar_id: + type: string + example: 41d064eb2195891e12d0413f63227ea7 + nullable: true + url: + type: string + format: uri + example: https://api.github.com/users/octocat + html_url: + type: string + format: uri + example: https://github.com/octocat + followers_url: + type: string + format: uri + example: https://api.github.com/users/octocat/followers + following_url: + type: string + example: https://api.github.com/users/octocat/following{/other_user} + gists_url: + type: string + example: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: + type: string + example: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: + type: string + format: uri + example: https://api.github.com/users/octocat/subscriptions + organizations_url: + type: string + format: uri + example: https://api.github.com/users/octocat/orgs + repos_url: + type: string + format: uri + example: https://api.github.com/users/octocat/repos + events_url: + type: string + example: https://api.github.com/users/octocat/events{/privacy} + received_events_url: + type: string + format: uri + example: https://api.github.com/users/octocat/received_events + type: + type: string + example: User + site_admin: + type: boolean + starred_at: + type: string + example: '"2020-07-09T00:17:55Z"' + user_view_type: + type: string + example: public + 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 + package-version: + title: Package Version + description: A version of a software package + type: object + properties: + id: + description: Unique identifier of the package version. + type: integer + example: 1 + name: + description: The name of the package version. + type: string + example: latest + url: + type: string + example: https://api.github.com/orgs/github/packages/container/super-linter/versions/786068 + package_html_url: + type: string + example: https://github.com/orgs/github/packages/container/package/super-linter + html_url: + type: string + example: https://github.com/orgs/github/packages/container/super-linter/786068 + license: + type: string + example: MIT + description: + type: string + created_at: + type: string + format: date-time + example: '2011-04-10T20:09:31Z' + updated_at: + type: string + format: date-time + example: '2014-03-03T18:58:10Z' + deleted_at: + type: string + format: date-time + example: '2014-03-03T18:58:10Z' + metadata: + type: object + title: Package Version Metadata + properties: + package_type: + type: string + example: docker + enum: + - npm + - maven + - rubygems + - docker + - nuget + - container + container: + type: object + title: Container Metadata + properties: + tags: + type: array + items: + type: string + required: + - tags + docker: + type: object + title: Docker Metadata + properties: + tag: + type: array + items: + type: string + required: + - tags + required: + - package_type + required: + - id + - name + - url + - package_html_url + - created_at + - updated_at + organization-programmatic-access-grant-request: + title: Simple Organization Programmatic Access Grant Request + description: Minimal representation of an organization programmatic access grant + request for enumerations + type: object + properties: + id: + type: integer + description: Unique identifier of the request for access via fine-grained + personal access token. The `pat_request_id` used to review PAT requests. + reason: + type: string + nullable: true + description: Reason for requesting access. + owner: + "$ref": "#/components/schemas/simple-user" + repository_selection: + type: string + enum: + - none + - all + - subset + description: Type of repository selection requested. + repositories_url: + type: string + description: URL to the list of repositories requested to be accessed via + fine-grained personal access token. Should only be followed when `repository_selection` + is `subset`. + permissions: + type: object + description: Permissions requested, categorized by type of permission. + properties: + organization: + type: object + additionalProperties: + type: string + repository: + type: object + additionalProperties: + type: string + other: + type: object + additionalProperties: + type: string + created_at: + type: string + description: Date and time when the request for access was created. + token_id: + type: integer + description: Unique identifier of the user's token. This field can also + be found in audit log events and the organization's settings for their + PAT grants. + token_name: + type: string + description: The name given to the user's token. This field can also be + found in an organization's settings page for Active Tokens. + token_expired: + type: boolean + description: Whether the associated fine-grained personal access token has + expired. + token_expires_at: + type: string + nullable: true + description: Date and time when the associated fine-grained personal access + token expires. + token_last_used_at: + type: string + nullable: true + description: Date and time when the associated fine-grained personal access + token was last used for authentication. + required: + - id + - reason + - owner + - repository_selection + - repositories_url + - permissions + - created_at + - token_id + - token_name + - token_expired + - token_expires_at + - token_last_used_at + organization-programmatic-access-grant: + title: Organization Programmatic Access Grant + description: Minimal representation of an organization programmatic access grant + for enumerations + type: object + properties: + id: + type: integer + description: Unique identifier of the fine-grained personal access token + grant. The `pat_id` used to get details about an approved fine-grained + personal access token. + owner: + "$ref": "#/components/schemas/simple-user" + repository_selection: + type: string + enum: + - none + - all + - subset + description: Type of repository selection requested. + repositories_url: + type: string + description: URL to the list of repositories the fine-grained personal access + token can access. Only follow when `repository_selection` is `subset`. + permissions: + type: object + description: Permissions requested, categorized by type of permission. + properties: + organization: + type: object + additionalProperties: + type: string + repository: + type: object + additionalProperties: + type: string + other: + type: object + additionalProperties: + type: string + access_granted_at: + type: string + description: Date and time when the fine-grained personal access token was + approved to access the organization. + token_id: + type: integer + description: Unique identifier of the user's token. This field can also + be found in audit log events and the organization's settings for their + PAT grants. + token_name: + type: string + description: The name given to the user's token. This field can also be + found in an organization's settings page for Active Tokens. + token_expired: + type: boolean + description: Whether the associated fine-grained personal access token has + expired. + token_expires_at: + type: string + nullable: true + description: Date and time when the associated fine-grained personal access + token expires. + token_last_used_at: + type: string + nullable: true + description: Date and time when the associated fine-grained personal access + token was last used for authentication. + required: + - id + - owner + - repository_selection + - repositories_url + - permissions + - access_granted_at + - token_id + - token_name + - token_expired + - token_expires_at + - token_last_used_at + org-private-registry-configuration: + title: Organization private registry + description: Private registry configuration for an organization + type: object + properties: + name: + description: The name of the private registry configuration. + example: MAVEN_REPOSITORY_SECRET + type: string + registry_type: + description: The registry type. + enum: + - maven_repository + - nuget_feed + - goproxy_server + - npm_registry + - rubygems_server + - cargo_registry + - composer_repository + - docker_registry + - git_source + - helm_registry + - hex_organization + - hex_repository + - pub_repository + - python_index + - terraform_registry + type: string + url: + description: The URL of the private registry. + type: string + format: uri + username: + description: The username to use when authenticating with the private registry. + example: monalisa + type: string + nullable: true + replaces_base: + description: Whether this private registry replaces the base registry (e.g., + npmjs.org for npm, rubygems.org for rubygems). When `true`, Dependabot + will only use this registry and will not fall back to the public registry. + When `false` (default), Dependabot will use this registry for scoped packages + but may fall back to the public registry for other packages. + type: boolean + default: false + visibility: + description: Which type of organization repositories have access to the + private registry. + enum: + - all + - private + - selected + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - name + - registry_type + - visibility + - created_at + - updated_at + org-private-registry-configuration-with-selected-repositories: + title: Organization private registry + description: Private registry configuration for an organization + type: object + properties: + name: + description: The name of the private registry configuration. + example: MAVEN_REPOSITORY_SECRET + type: string + registry_type: + description: The registry type. + enum: + - maven_repository + - nuget_feed + - goproxy_server + - npm_registry + - rubygems_server + - cargo_registry + - composer_repository + - docker_registry + - git_source + - helm_registry + - hex_organization + - hex_repository + - pub_repository + - python_index + - terraform_registry + type: string + url: + description: The URL of the private registry. + type: string + format: uri + username: + description: The username to use when authenticating with the private registry. + example: monalisa + type: string + replaces_base: + description: Whether this private registry replaces the base registry (e.g., + npmjs.org for npm, rubygems.org for rubygems). When `true`, Dependabot + will only use this registry and will not fall back to the public registry. + When `false` (default), Dependabot will use this registry for scoped packages + but may fall back to the public registry for other packages. + type: boolean + default: false + visibility: + description: Which type of organization repositories have access to the + private registry. `selected` means only the repositories specified by + `selected_repository_ids` can access the private registry. + enum: + - all + - private + - selected + type: string + selected_repository_ids: + type: array + description: An array of repository IDs that can access the organization + private registry when `visibility` is set to `selected`. + items: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - name + - registry_type + - visibility + - created_at + - updated_at + nullable-projects-v2-status-update: + title: Projects v2 Status Update + description: An status update belonging to a project + type: object + properties: + id: + type: number + description: The unique identifier of the status update. + node_id: + type: string + description: The node ID of the status update. + project_node_id: + type: string + description: The node ID of the project that this status update belongs + to. + creator: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the status update was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the status update was last updated. + status: + type: string + enum: + - INACTIVE + - ON_TRACK + - AT_RISK + - OFF_TRACK + - COMPLETE + nullable: true + description: The current status. + start_date: + type: string + format: date + example: '2022-04-28' + description: The start date of the period covered by the update. + target_date: + type: string + format: date + example: '2022-04-28' + description: The target date associated with the update. + body: + description: Body of the status update + example: The project is off to a great start! + type: string + nullable: true + required: + - id + - node_id + - created_at + - updated_at + nullable: true + projects-v2: + title: Projects v2 Project + description: A projects v2 project + type: object + properties: + id: + type: number + description: The unique identifier of the project. + node_id: + type: string + description: The node ID of the project. + owner: + "$ref": "#/components/schemas/simple-user" + creator: + "$ref": "#/components/schemas/simple-user" + title: + type: string + description: The project title. + description: + type: string + nullable: true + description: A short description of the project. + public: + type: boolean + description: Whether the project is visible to anyone with access to the + owner. + closed_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + nullable: true + description: The time when the project was closed. + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the project was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the project was last updated. + number: + type: integer + description: The project number. + short_description: + type: string + nullable: true + description: A concise summary of the project. + deleted_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + nullable: true + description: The time when the project was deleted. + deleted_by: + "$ref": "#/components/schemas/nullable-simple-user" + state: + type: string + enum: + - open + - closed + description: The current state of the project. + latest_status_update: + "$ref": "#/components/schemas/nullable-projects-v2-status-update" + is_template: + type: boolean + description: Whether this project is a template + required: + - id + - node_id + - owner + - creator + - title + - description + - public + - closed_at + - created_at + - updated_at + - number + - short_description + - deleted_at + - deleted_by + link: + title: Link + description: Hypermedia Link + type: object + properties: + href: + type: string + required: + - href + auto-merge: + title: Auto merge + description: The status of auto merging a pull request. + type: object + properties: + enabled_by: + "$ref": "#/components/schemas/simple-user" + merge_method: + type: string + description: The merge method to use. + enum: + - merge + - squash + - rebase + commit_title: + type: string + description: Title for the merge commit message. + commit_message: + type: string + description: Commit message for the merge commit. + required: + - enabled_by + - merge_method + - commit_title + - commit_message + nullable: true + pull-request-simple: + title: Pull Request Simple + description: Pull Request Simple + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + id: + type: integer + format: int64 + example: 1 + node_id: + type: string + example: MDExOlB1bGxSZXF1ZXN0MQ== + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1347 + diff_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1347.patch + issue_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/issues/1347 + commits_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + review_comments_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + comments_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + statuses_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + number: + type: integer + example: 1347 + state: + type: string + example: open + locked: + type: boolean + example: true + title: + type: string + example: new-feature + user: + "$ref": "#/components/schemas/nullable-simple-user" + body: + type: string + example: Please pull these awesome changes + nullable: true + labels: + type: array + items: + type: object + properties: + id: + type: integer + format: int64 + node_id: + type: string + url: + type: string + name: + type: string + description: + type: string + color: + type: string + default: + type: boolean + required: + - id + - node_id + - url + - name + - description + - color + - default + milestone: + "$ref": "#/components/schemas/nullable-milestone" + active_lock_reason: + type: string + example: too heated + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + updated_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + closed_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + merged_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + merge_commit_sha: + type: string + example: e5bd3914e2e596debea16f433f57875b5b90bcd6 + nullable: true + assignee: + "$ref": "#/components/schemas/nullable-simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + nullable: true + requested_reviewers: + type: array + items: + "$ref": "#/components/schemas/simple-user" + nullable: true + requested_teams: + type: array + items: + "$ref": "#/components/schemas/team" + nullable: true + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + "$ref": "#/components/schemas/repository" + sha: + type: string + user: + "$ref": "#/components/schemas/nullable-simple-user" + required: + - label + - ref + - repo + - sha + - user + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + "$ref": "#/components/schemas/repository" + sha: + type: string + user: + "$ref": "#/components/schemas/nullable-simple-user" + required: + - label + - ref + - repo + - sha + - user + _links: + type: object + properties: + comments: + "$ref": "#/components/schemas/link" + commits: + "$ref": "#/components/schemas/link" + statuses: + "$ref": "#/components/schemas/link" + html: + "$ref": "#/components/schemas/link" + issue: + "$ref": "#/components/schemas/link" + review_comments: + "$ref": "#/components/schemas/link" + review_comment: + "$ref": "#/components/schemas/link" + self: + "$ref": "#/components/schemas/link" + required: + - comments + - commits + - statuses + - html + - issue + - review_comments + - review_comment + - self + author_association: + "$ref": "#/components/schemas/author-association" + auto_merge: + "$ref": "#/components/schemas/auto-merge" + draft: + description: Indicates whether or not the pull request is a draft. + example: false + type: boolean + required: + - _links + - assignee + - labels + - base + - body + - closed_at + - comments_url + - commits_url + - created_at + - diff_url + - head + - html_url + - id + - node_id + - issue_url + - merge_commit_sha + - merged_at + - milestone + - number + - patch_url + - review_comment_url + - review_comments_url + - statuses_url + - state + - locked + - title + - updated_at + - url + - user + - author_association + - auto_merge + projects-v2-draft-issue: + title: Draft Issue + description: A draft issue in a project + type: object + properties: + id: + type: number + description: The ID of the draft issue + node_id: + type: string + description: The node ID of the draft issue + title: + type: string + description: The title of the draft issue + body: + type: string + description: The body content of the draft issue + nullable: true + user: + "$ref": "#/components/schemas/nullable-simple-user" + created_at: + type: string + format: date-time + description: The time the draft issue was created + updated_at: + type: string + format: date-time + description: The time the draft issue was last updated + required: + - id + - node_id + - title + - user + - created_at + - updated_at + projects-v2-item-content-type: + title: Projects v2 Item Content Type + description: The type of content tracked in a project item + type: string + enum: + - Issue + - PullRequest + - DraftIssue + projects-v2-item-simple: + title: Projects v2 Item + description: An item belonging to a project + type: object + properties: + id: + type: number + description: The unique identifier of the project item. + node_id: + type: string + description: The node ID of the project item. + content: + oneOf: + - "$ref": "#/components/schemas/issue" + - "$ref": "#/components/schemas/pull-request-simple" + - "$ref": "#/components/schemas/projects-v2-draft-issue" + description: The content represented by the item. + content_type: + "$ref": "#/components/schemas/projects-v2-item-content-type" + creator: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the item was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the item was last updated. + archived_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + nullable: true + description: The time when the item was archived. + project_url: + type: string + format: uri + description: The URL of the project this item belongs to. + item_url: + type: string + format: uri + description: The URL of the item in the project. + required: + - id + - content_type + - created_at + - updated_at + - archived_at + projects-v2-single-select-options: + title: Projects v2 Single Select Option + description: An option for a single select field + type: object + properties: + id: + type: string + description: The unique identifier of the option. + name: + type: object + description: The display name of the option, in raw text and HTML formats. + properties: + raw: + type: string + html: + type: string + required: + - raw + - html + description: + type: object + description: The description of the option, in raw text and HTML formats. + properties: + raw: + type: string + html: + type: string + required: + - raw + - html + color: + type: string + description: The color associated with the option. + required: + - id + - name + - description + - color + projects-v2-iteration-settings: + title: Projects v2 Iteration Setting + description: An iteration setting for an iteration field + type: object + properties: + id: + type: string + description: The unique identifier of the iteration setting. + start_date: + type: string + format: date + description: The start date of the iteration. + duration: + type: integer + description: The duration of the iteration in days. + title: + type: object + properties: + raw: + type: string + html: + type: string + required: + - raw + - html + description: The iteration title, in raw text and HTML formats. + completed: + type: boolean + description: Whether the iteration has been completed. + required: + - id + - start_date + - duration + - title + - completed + projects-v2-field: + title: Projects v2 Field + description: A field inside a projects v2 project + type: object + properties: + id: + type: integer + description: The unique identifier of the field. + node_id: + type: string + description: The node ID of the field. + project_url: + type: string + description: The API URL of the project that contains the field. + example: https://api.github.com/projects/1 + name: + type: string + description: The name of the field. + data_type: + type: string + description: The field's data type. + enum: + - assignees + - linked_pull_requests + - reviewers + - labels + - milestone + - repository + - title + - text + - single_select + - number + - date + - iteration + - issue_type + - parent_issue + - sub_issues_progress + options: + type: array + description: The options available for single select fields. + items: + "$ref": "#/components/schemas/projects-v2-single-select-options" + configuration: + type: object + description: Configuration for iteration fields. + properties: + start_day: + type: integer + description: The day of the week when the iteration starts. + duration: + type: integer + description: The duration of the iteration in days. + iterations: + type: array + items: + "$ref": "#/components/schemas/projects-v2-iteration-settings" + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the field was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the field was last updated. + required: + - id + - name + - data_type + - created_at + - updated_at + - project_url + projects-v2-field-single-select-option: + type: object + properties: + name: + type: string + description: The display name of the option. + color: + type: string + description: The color associated with the option. + enum: + - BLUE + - GRAY + - GREEN + - ORANGE + - PINK + - PURPLE + - RED + - YELLOW + description: + type: string + description: The description of the option. + projects-v2-field-iteration-configuration: + type: object + description: The configuration for iteration fields. + properties: + start_date: + type: string + format: date + description: The start date of the first iteration. + duration: + type: integer + description: The default duration for iterations in days. Individual iterations + can override this value. + iterations: + type: array + description: Zero or more iterations for the field. + items: + type: object + properties: + title: + type: string + description: The title of the iteration. + start_date: + type: string + format: date + description: The start date of the iteration. + duration: + type: integer + description: The duration of the iteration in days. + projects-v2-item-with-content: + title: Projects v2 Item + description: An item belonging to a project + type: object + properties: + id: + type: number + description: The unique identifier of the project item. + node_id: + type: string + description: The node ID of the project item. + project_url: + type: string + format: uri + example: https://api.github.com/users/monalisa/2/projectsV2/3 + description: The API URL of the project that contains this item. + content_type: + "$ref": "#/components/schemas/projects-v2-item-content-type" + content: + type: object + additionalProperties: true + nullable: true + description: The content of the item, which varies by content type. + creator: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the item was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the item was last updated. + archived_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + nullable: true + description: The time when the item was archived. + item_url: + type: string + format: uri + example: https://api.github.com/users/monalisa/2/projectsV2/items/3 + nullable: true + description: The API URL of this item. + fields: + type: array + items: + type: object + additionalProperties: true + description: The fields and values associated with this item. + required: + - id + - content_type + - created_at + - updated_at + - archived_at + projects-v2-view: + title: Projects v2 View + description: A view inside a projects v2 project + type: object + properties: + id: + type: integer + description: The unique identifier of the view. + number: + type: integer + description: The number of the view within the project. + name: + type: string + description: The name of the view. + layout: + type: string + description: The layout of the view. + enum: + - table + - board + - roadmap + node_id: + type: string + description: The node ID of the view. + project_url: + type: string + description: The API URL of the project that contains the view. + example: https://api.github.com/orgs/octocat/projectsV2/1 + html_url: + type: string + format: uri + description: The web URL of the view. + example: https://github.com/orgs/octocat/projects/1/views/1 + creator: + allOf: + - "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the view was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the view was last updated. + filter: + type: string + nullable: true + description: The filter query for the view. + example: is:issue is:open + visible_fields: + type: array + description: The list of field IDs that are visible in the view. + items: + type: integer + sort_by: + type: array + description: The sorting configuration for the view. Each element is a tuple + of [field_id, direction] where direction is "asc" or "desc". + items: + type: array + minItems: 2 + maxItems: 2 + items: + oneOf: + - type: integer + - type: string + group_by: + type: array + description: The list of field IDs used for horizontal grouping. + items: + type: integer + vertical_group_by: + type: array + description: The list of field IDs used for vertical grouping (board layout). + items: + type: integer + required: + - id + - number + - name + - layout + - node_id + - project_url + - html_url + - creator + - created_at + - updated_at + - visible_fields + - sort_by + - group_by + - vertical_group_by + custom-property: + title: Organization Custom Property + description: Custom property defined on an organization + type: object + properties: + property_name: + type: string + description: The name of the property + url: + type: string + format: uri + description: The URL that can be used to fetch, update, or delete info about + this property via the API. + source_type: + type: string + description: The source type of the property + enum: + - organization + - enterprise + example: organization + value_type: + type: string + example: single_select + enum: + - string + - single_select + - multi_select + - true_false + - url + description: The type of the value for the property + required: + type: boolean + description: Whether the property is required. + default_value: + oneOf: + - type: string + - type: array + items: + type: string + nullable: true + description: Default value of the property + description: + type: string + nullable: true + description: Short description of the property + allowed_values: + type: array + items: + type: string + nullable: true + description: |- + An ordered list of the allowed values of the property. + The property can have up to 200 allowed values. + values_editable_by: + type: string + nullable: true + enum: + - org_actors + - org_and_repo_actors + example: org_actors + description: Who can edit the values of the property + required: + - property_name + - value_type + custom-property-set-payload: + title: Custom Property Set Payload + description: Custom property set payload + type: object + properties: + value_type: + type: string + example: single_select + enum: + - string + - single_select + - multi_select + - true_false + - url + description: The type of the value for the property + required: + type: boolean + description: Whether the property is required. + default_value: + oneOf: + - type: string + - type: array + items: + type: string + nullable: true + description: Default value of the property + description: + type: string + nullable: true + description: Short description of the property + allowed_values: + type: array + items: + type: string + nullable: true + description: |- + An ordered list of the allowed values of the property. + The property can have up to 200 allowed values. + values_editable_by: + type: string + nullable: true + enum: + - org_actors + - org_and_repo_actors + example: org_actors + description: Who can edit the values of the property + required: + - value_type + custom-property-value: + title: Custom Property Value + description: Custom property name and associated value + type: object + properties: + property_name: + type: string + description: The name of the property + value: + oneOf: + - type: string + - type: array + items: + type: string + description: The value assigned to the property + nullable: true + required: + - property_name + - value + org-repo-custom-property-values: + title: Organization Repository Custom Property Values + description: List of custom property values for a repository + type: object + properties: + repository_id: + type: integer + example: 1296269 + repository_name: + type: string + example: Hello-World + repository_full_name: + type: string + example: octocat/Hello-World + properties: + type: array + items: + "$ref": "#/components/schemas/custom-property-value" + description: List of custom property names and associated values + required: + - repository_id + - repository_name + - repository_full_name + - properties + nullable-repository: + title: Repository + description: A repository on GitHub. + type: object + properties: + id: + description: Unique identifier of the repository + example: 42 + type: integer + format: int64 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + description: The name of the repository. + type: string + example: Team Environment + full_name: + type: string + example: octocat/Hello-World + license: + "$ref": "#/components/schemas/nullable-license-simple" + 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: + "$ref": "#/components/schemas/simple-user" + private: + description: Whether the repository is private or public. + default: false + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + example: git:github.com/octocat/Hello-World.git + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + example: git@github.com:octocat/Hello-World.git + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + example: https://github.com/octocat/Hello-World.git + mirror_url: + type: string + format: uri + example: git:git.example.com/octocat/Hello-World + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + format: uri + example: https://svn.github.com/octocat/Hello-World + homepage: + type: string + format: uri + example: https://github.com + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + example: 9 + stargazers_count: + type: integer + example: 80 + watchers_count: + type: integer + example: 80 + size: + description: The size of the repository, in kilobytes. Size is calculated + hourly. When a repository is initially created, the size is 0. + type: integer + example: 108 + default_branch: + description: The default branch of the repository. + type: string + example: master + open_issues_count: + type: integer + example: 0 + is_template: + description: Whether this repository acts as a template that can be used + to generate new repositories. + default: false + type: boolean + example: true + topics: + type: array + items: + type: string + has_issues: + description: Whether issues are enabled. + default: true + type: boolean + example: true + has_projects: + description: Whether projects are enabled. + default: true + type: boolean + example: true + has_wiki: + description: Whether the wiki is enabled. + default: true + type: boolean + example: true + has_pages: + type: boolean + has_downloads: + description: Whether downloads are enabled. + default: true + type: boolean + example: true + deprecated: true + has_discussions: + description: Whether discussions are enabled. + default: false + type: boolean + example: 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 + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + default: true + type: boolean + example: true + temp_clone_token: + type: string + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + default: true + type: boolean + example: true + allow_auto_merge: + description: Whether to allow Auto-merge to be used on pull requests. + default: false + type: boolean + example: false + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are merged + default: false + type: boolean + example: 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 + example: false + use_squash_pr_title_as_default: + type: boolean + 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. + default: false + deprecated: true + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + default: true + type: boolean + example: true + allow_forking: + description: Whether to allow forking this repo + type: boolean + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based commits + default: false + type: boolean + open_issues: + type: integer + watchers: + type: integer + master_branch: + type: string + starred_at: + type: string + example: '"2020-07-09T00:17:42Z"' + anonymous_access_enabled: + type: boolean + description: Whether anonymous git access is enabled for this repository + code_search_index_status: + type: object + description: The status of the code search index for this repository + properties: + lexical_search_ok: + type: boolean + lexical_commit_sha: + type: string + 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 + nullable: true + code-of-conduct-simple: + title: Code Of Conduct Simple + description: Code of Conduct Simple + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/github/docs/community/code_of_conduct + key: + type: string + example: citizen_code_of_conduct + name: + type: string + example: Citizen Code of Conduct + html_url: + type: string + nullable: true + format: uri + example: https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + required: + - url + - key + - name + - html_url + full-repository: + title: Full Repository + description: Full Repository + type: object + properties: + id: + type: integer + format: int64 + example: 1296269 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + type: string + example: Hello-World + full_name: + type: string + example: octocat/Hello-World + owner: + "$ref": "#/components/schemas/simple-user" + private: + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + example: git:github.com/octocat/Hello-World.git + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + example: git@github.com:octocat/Hello-World.git + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + example: https://github.com/octocat/Hello-World.git + mirror_url: + type: string + format: uri + example: git:git.example.com/octocat/Hello-World + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + format: uri + example: https://svn.github.com/octocat/Hello-World + homepage: + type: string + format: uri + example: https://github.com + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + example: 9 + stargazers_count: + type: integer + example: 80 + watchers_count: + type: integer + example: 80 + size: + description: The size of the repository, in kilobytes. Size is calculated + hourly. When a repository is initially created, the size is 0. + type: integer + example: 108 + default_branch: + type: string + example: master + open_issues_count: + type: integer + example: 0 + is_template: + type: boolean + example: true + topics: + type: array + items: + type: string + example: + - octocat + - atom + - electron + - API + has_issues: + type: boolean + example: true + has_projects: + type: boolean + example: true + has_wiki: + type: boolean + example: true + has_pages: + type: boolean + has_downloads: + type: boolean + example: true + has_discussions: + type: boolean + example: true + archived: + type: boolean + disabled: + type: boolean + description: Returns whether or not this repository disabled. + visibility: + description: 'The repository visibility: public, private, or internal.' + type: string + example: public + pushed_at: + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + push: + type: boolean + triage: + type: boolean + pull: + type: boolean + required: + - admin + - pull + - push + allow_rebase_merge: + type: boolean + example: true + template_repository: + "$ref": "#/components/schemas/nullable-repository" + temp_clone_token: + type: string + nullable: true + allow_squash_merge: + type: boolean + example: true + allow_auto_merge: + type: boolean + example: false + delete_branch_on_merge: + type: boolean + example: false + allow_merge_commit: + type: boolean + example: true + allow_update_branch: + type: boolean + example: true + use_squash_pr_title_as_default: + type: boolean + example: false + squash_merge_commit_title: + type: string + example: PR_TITLE + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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 + example: PR_BODY + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + example: PR_TITLE + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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 + example: PR_BODY + enum: + - PR_BODY + - PR_TITLE + - BLANK + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + allow_forking: + type: boolean + example: true + web_commit_signoff_required: + type: boolean + example: false + subscribers_count: + type: integer + example: 42 + network_count: + type: integer + example: 0 + license: + "$ref": "#/components/schemas/nullable-license-simple" + organization: + "$ref": "#/components/schemas/nullable-simple-user" + parent: + "$ref": "#/components/schemas/repository" + source: + "$ref": "#/components/schemas/repository" + forks: + type: integer + master_branch: + type: string + open_issues: + type: integer + watchers: + type: integer + anonymous_access_enabled: + description: Whether anonymous git access is allowed. + default: true + type: boolean + code_of_conduct: + "$ref": "#/components/schemas/code-of-conduct-simple" + security_and_analysis: + "$ref": "#/components/schemas/security-and-analysis" + custom_properties: + type: object + 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. + additionalProperties: true + 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_issues + - has_projects + - has_wiki + - has_pages + - has_discussions + - 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 + - network_count + - subscribers_count + repository-rule-enforcement: + type: string + description: The enforcement level of the ruleset. `evaluate` allows admins + to test rules before enforcing them. Admins can view insights on the Rule + Insights page (`evaluate` is only available with GitHub Enterprise). + enum: + - disabled + - active + - evaluate + repository-ruleset-bypass-actor: + title: Repository Ruleset Bypass Actor + type: object + description: An actor that can bypass rules in a ruleset + required: + - actor_type + properties: + actor_id: + type: integer + nullable: true + description: The ID of the actor that can bypass a ruleset. Required for + `Integration`, `RepositoryRole`, and `Team` actor types. If `actor_type` + is `OrganizationAdmin`, `actor_id` is ignored. If `actor_type` is `DeployKey`, + this should be null. `OrganizationAdmin` is not applicable for personal + repositories. + actor_type: + type: string + enum: + - Integration + - OrganizationAdmin + - RepositoryRole + - Team + - DeployKey + description: The type of actor that can bypass a ruleset. + bypass_mode: + type: string + description: When the specified actor can bypass the ruleset. `pull_request` + means that an actor can only bypass rules on pull requests. `pull_request` + is not applicable for the `DeployKey` actor type. Also, `pull_request` + is only applicable to branch rulesets. When `bypass_mode` is `exempt`, + rules will not be run for that actor and a bypass audit entry will not + be created. + enum: + - always + - pull_request + - exempt + default: always + repository-ruleset-conditions: + title: Repository ruleset conditions for ref names + type: object + description: Parameters for a repository ruleset ref name condition + properties: + ref_name: + type: object + properties: + include: + type: array + description: Array of ref names or patterns to include. One of these + patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` + to include the default branch or `~ALL` to include all branches. + items: + type: string + exclude: + type: array + description: Array of ref names or patterns to exclude. The condition + will not pass if any of these patterns match. + items: + type: string + repository-ruleset-conditions-repository-name-target: + title: Repository ruleset conditions for repository names + type: object + description: Parameters for a repository name condition + properties: + repository_name: + type: object + properties: + include: + type: array + description: Array of repository names or patterns to include. One of + these patterns must match for the condition to pass. Also accepts + `~ALL` to include all repositories. + items: + type: string + exclude: + type: array + description: Array of repository names or patterns to exclude. The condition + will not pass if any of these patterns match. + items: + type: string + protected: + type: boolean + description: Whether renaming of target repositories is prevented. + required: + - repository_name + repository-ruleset-conditions-repository-id-target: + title: Repository ruleset conditions for repository IDs + type: object + description: Parameters for a repository ID condition + properties: + repository_id: + type: object + properties: + repository_ids: + type: array + description: The repository IDs that the ruleset applies to. One of + these IDs must match for the condition to pass. + items: + type: integer + required: + - repository_id + repository-ruleset-conditions-repository-property-spec: + title: Repository ruleset property targeting definition + type: object + description: Parameters for a targeting a repository property + properties: + name: + type: string + description: The name of the repository property to target + property_values: + type: array + description: The values to match for the repository property + items: + type: string + source: + type: string + description: The source of the repository property. Defaults to 'custom' + if not specified. + enum: + - custom + - system + required: + - name + - property_values + repository-ruleset-conditions-repository-property-target: + title: Repository ruleset conditions for repository properties + type: object + description: Parameters for a repository property condition + properties: + repository_property: + type: object + properties: + include: + type: array + description: The repository properties and values to include. All of + these properties must match for the condition to pass. + items: + "$ref": "#/components/schemas/repository-ruleset-conditions-repository-property-spec" + exclude: + type: array + description: The repository properties and values to exclude. The condition + will not pass if any of these properties match. + items: + "$ref": "#/components/schemas/repository-ruleset-conditions-repository-property-spec" + required: + - repository_property + org-ruleset-conditions: + title: Organization ruleset conditions + type: object + description: |- + Conditions for an organization ruleset. + The branch and tag rulesets conditions object should contain both `repository_name` and `ref_name` properties, or both `repository_id` and `ref_name` properties, or both `repository_property` and `ref_name` properties. + The push rulesets conditions object does not require the `ref_name` property. + For repository policy rulesets, the conditions object should only contain the `repository_name`, the `repository_id`, or the `repository_property`. + oneOf: + - type: object + title: repository_name_and_ref_name + description: Conditions to target repositories by name and refs by name + allOf: + - "$ref": "#/components/schemas/repository-ruleset-conditions" + - "$ref": "#/components/schemas/repository-ruleset-conditions-repository-name-target" + - type: object + title: repository_id_and_ref_name + description: Conditions to target repositories by id and refs by name + allOf: + - "$ref": "#/components/schemas/repository-ruleset-conditions" + - "$ref": "#/components/schemas/repository-ruleset-conditions-repository-id-target" + - type: object + title: repository_property_and_ref_name + description: Conditions to target repositories by property and refs by name + allOf: + - "$ref": "#/components/schemas/repository-ruleset-conditions" + - "$ref": "#/components/schemas/repository-ruleset-conditions-repository-property-target" + repository-rule-creation: + title: creation + description: Only allow users with bypass permission to create matching refs. + type: object + required: + - type + properties: + type: + type: string + enum: + - creation + repository-rule-update: + title: update + description: Only allow users with bypass permission to update matching refs. + type: object + required: + - type + properties: + type: + type: string + enum: + - update + parameters: + type: object + properties: + update_allows_fetch_and_merge: + type: boolean + description: Branch can pull changes from its upstream repository + required: + - update_allows_fetch_and_merge + repository-rule-deletion: + title: deletion + description: Only allow users with bypass permissions to delete matching refs. + type: object + required: + - type + properties: + type: + type: string + enum: + - deletion + repository-rule-required-linear-history: + title: required_linear_history + description: Prevent merge commits from being pushed to matching refs. + type: object + required: + - type + properties: + type: + type: string + enum: + - required_linear_history + repository-rule-merge-queue: + title: merge_queue + description: Merges must be performed via a merge queue. + type: object + required: + - type + properties: + type: + type: string + enum: + - merge_queue + parameters: + type: object + properties: + check_response_timeout_minutes: + type: integer + description: Maximum time for a required status check to report a conclusion. + After this much time has elapsed, checks that have not reported a + conclusion will be assumed to have failed + minimum: 1 + maximum: 360 + grouping_strategy: + type: string + description: When set to ALLGREEN, the merge commit created by merge + queue for each PR in the group must pass all required checks to merge. + When set to HEADGREEN, only the commit at the head of the merge group, + i.e. the commit containing changes from all of the PRs in the group, + must pass its required checks to merge. + enum: + - ALLGREEN + - HEADGREEN + max_entries_to_build: + type: integer + description: Limit the number of queued pull requests requesting checks + and workflow runs at the same time. + minimum: 0 + maximum: 100 + max_entries_to_merge: + type: integer + description: The maximum number of PRs that will be merged together + in a group. + minimum: 0 + maximum: 100 + merge_method: + type: string + description: Method to use when merging changes from queued pull requests. + enum: + - MERGE + - SQUASH + - REBASE + min_entries_to_merge: + type: integer + description: The minimum number of PRs that will be merged together + in a group. + minimum: 0 + maximum: 100 + min_entries_to_merge_wait_minutes: + type: integer + description: The time merge queue should wait after the first PR is + added to the queue for the minimum group size to be met. After this + time has elapsed, the minimum group size will be ignored and a smaller + group will be merged. + minimum: 0 + maximum: 360 + required: + - check_response_timeout_minutes + - grouping_strategy + - max_entries_to_build + - max_entries_to_merge + - merge_method + - min_entries_to_merge + - min_entries_to_merge_wait_minutes + repository-rule-required-deployments: + title: required_deployments + description: Choose which environments must be successfully deployed to before + refs can be pushed into a ref that matches this rule. + type: object + required: + - type + properties: + type: + type: string + enum: + - required_deployments + parameters: + type: object + properties: + required_deployment_environments: + type: array + description: The environments that must be successfully deployed to + before branches can be merged. + items: + type: string + required: + - required_deployment_environments + repository-rule-required-signatures: + title: required_signatures + description: Commits pushed to matching refs must have verified signatures. + type: object + required: + - type + properties: + type: + type: string + enum: + - required_signatures + repository-rule-params-reviewer: + title: Reviewer + description: A required reviewing team + type: object + properties: + id: + type: integer + description: ID of the reviewer which must review changes to matching files. + type: + type: string + description: The type of the reviewer + enum: + - Team + required: + - id + - type + repository-rule-params-required-reviewer-configuration: + title: RequiredReviewerConfiguration + description: A reviewing team, and file patterns describing which files they + must approve changes to. + type: object + properties: + file_patterns: + type: array + description: Array of file patterns. Pull requests which change matching + files must be approved by the specified team. File patterns use fnmatch + syntax. + items: + type: string + minimum_approvals: + type: integer + description: Minimum number of approvals required from the specified team. + If set to zero, the team will be added to the pull request but approval + is optional. + reviewer: + "$ref": "#/components/schemas/repository-rule-params-reviewer" + required: + - file_patterns + - minimum_approvals + - reviewer + repository-rule-pull-request: + title: pull_request + description: Require all commits be made to a non-target branch and submitted + via a pull request before they can be merged. + type: object + required: + - type + properties: + type: + type: string + enum: + - pull_request + parameters: + type: object + properties: + allowed_merge_methods: + type: array + description: Array of allowed merge methods. Allowed values include + `merge`, `squash`, and `rebase`. At least one option must be enabled. + items: + type: string + enum: + - merge + - squash + - rebase + dismiss_stale_reviews_on_push: + type: boolean + description: New, reviewable commits pushed will dismiss previous pull + request review approvals. + require_code_owner_review: + type: boolean + description: Require an approving review in pull requests that modify + files that have a designated code owner. + require_last_push_approval: + type: boolean + description: Whether the most recent reviewable push must be approved + by someone other than the person who pushed it. + required_approving_review_count: + type: integer + description: The number of approving reviews that are required before + a pull request can be merged. + minimum: 0 + maximum: 10 + required_review_thread_resolution: + type: boolean + description: All conversations on code must be resolved before a pull + request can be merged. + required_reviewers: + type: array + description: |- + > [!NOTE] + > `required_reviewers` is in beta and subject to change. + + A collection of reviewers and associated file patterns. Each reviewer has a list of file patterns which determine the files that reviewer is required to review. + items: + "$ref": "#/components/schemas/repository-rule-params-required-reviewer-configuration" + required: + - dismiss_stale_reviews_on_push + - require_code_owner_review + - require_last_push_approval + - required_approving_review_count + - required_review_thread_resolution + repository-rule-params-status-check-configuration: + title: StatusCheckConfiguration + description: Required status check + type: object + properties: + context: + type: string + description: The status check context name that must be present on the commit. + integration_id: + type: integer + description: The optional integration ID that this status check must originate + from. + required: + - context + repository-rule-required-status-checks: + title: required_status_checks + description: Choose which status checks must pass before the ref is updated. + When enabled, commits must first be pushed to another ref where the checks + pass. + type: object + required: + - type + properties: + type: + type: string + enum: + - required_status_checks + parameters: + type: object + properties: + do_not_enforce_on_create: + type: boolean + description: Allow repositories and branches to be created if a check + would otherwise prohibit it. + required_status_checks: + type: array + description: Status checks that are required. + items: + "$ref": "#/components/schemas/repository-rule-params-status-check-configuration" + strict_required_status_checks_policy: + type: boolean + description: Whether pull requests targeting a matching branch must + be tested with the latest code. This setting will not take effect + unless at least one status check is enabled. + required: + - required_status_checks + - strict_required_status_checks_policy + repository-rule-non-fast-forward: + title: non_fast_forward + description: Prevent users with push access from force pushing to refs. + type: object + required: + - type + properties: + type: + type: string + enum: + - non_fast_forward + repository-rule-commit-message-pattern: + title: commit_message_pattern + description: Parameters to be used for the commit_message_pattern rule + type: object + required: + - type + properties: + type: + type: string + enum: + - commit_message_pattern + parameters: + type: object + properties: + name: + type: string + description: How this rule will appear to users. + negate: + type: boolean + description: If true, the rule will fail if the pattern matches. + operator: + type: string + description: The operator to use for matching. + enum: + - starts_with + - ends_with + - contains + - regex + pattern: + type: string + description: The pattern to match with. + required: + - operator + - pattern + repository-rule-commit-author-email-pattern: + title: commit_author_email_pattern + description: Parameters to be used for the commit_author_email_pattern rule + type: object + required: + - type + properties: + type: + type: string + enum: + - commit_author_email_pattern + parameters: + type: object + properties: + name: + type: string + description: How this rule will appear to users. + negate: + type: boolean + description: If true, the rule will fail if the pattern matches. + operator: + type: string + description: The operator to use for matching. + enum: + - starts_with + - ends_with + - contains + - regex + pattern: + type: string + description: The pattern to match with. + required: + - operator + - pattern + repository-rule-committer-email-pattern: + title: committer_email_pattern + description: Parameters to be used for the committer_email_pattern rule + type: object + required: + - type + properties: + type: + type: string + enum: + - committer_email_pattern + parameters: + type: object + properties: + name: + type: string + description: How this rule will appear to users. + negate: + type: boolean + description: If true, the rule will fail if the pattern matches. + operator: + type: string + description: The operator to use for matching. + enum: + - starts_with + - ends_with + - contains + - regex + pattern: + type: string + description: The pattern to match with. + required: + - operator + - pattern + repository-rule-branch-name-pattern: + title: branch_name_pattern + description: Parameters to be used for the branch_name_pattern rule + type: object + required: + - type + properties: + type: + type: string + enum: + - branch_name_pattern + parameters: + type: object + properties: + name: + type: string + description: How this rule will appear to users. + negate: + type: boolean + description: If true, the rule will fail if the pattern matches. + operator: + type: string + description: The operator to use for matching. + enum: + - starts_with + - ends_with + - contains + - regex + pattern: + type: string + description: The pattern to match with. + required: + - operator + - pattern + repository-rule-tag-name-pattern: + title: tag_name_pattern + description: Parameters to be used for the tag_name_pattern rule + type: object + required: + - type + properties: + type: + type: string + enum: + - tag_name_pattern + parameters: + type: object + properties: + name: + type: string + description: How this rule will appear to users. + negate: + type: boolean + description: If true, the rule will fail if the pattern matches. + operator: + type: string + description: The operator to use for matching. + enum: + - starts_with + - ends_with + - contains + - regex + pattern: + type: string + description: The pattern to match with. + required: + - operator + - pattern + repository-rule-file-path-restriction: + title: file_path_restriction + description: Prevent commits that include changes in specified file and folder + paths from being pushed to the commit graph. This includes absolute paths + that contain file names. + type: object + required: + - type + properties: + type: + type: string + enum: + - file_path_restriction + parameters: + type: object + properties: + restricted_file_paths: + type: array + description: The file paths that are restricted from being pushed to + the commit graph. + items: + type: string + required: + - restricted_file_paths + repository-rule-max-file-path-length: + title: max_file_path_length + description: Prevent commits that include file paths that exceed the specified + character limit from being pushed to the commit graph. + type: object + required: + - type + properties: + type: + type: string + enum: + - max_file_path_length + parameters: + type: object + properties: + max_file_path_length: + type: integer + description: The maximum amount of characters allowed in file paths. + minimum: 1 + maximum: 32767 + required: + - max_file_path_length + repository-rule-file-extension-restriction: + title: file_extension_restriction + description: Prevent commits that include files with specified file extensions + from being pushed to the commit graph. + type: object + required: + - type + properties: + type: + type: string + enum: + - file_extension_restriction + parameters: + type: object + properties: + restricted_file_extensions: + type: array + description: The file extensions that are restricted from being pushed + to the commit graph. + items: + type: string + required: + - restricted_file_extensions + repository-rule-max-file-size: + title: max_file_size + description: Prevent commits with individual files that exceed the specified + limit from being pushed to the commit graph. + type: object + required: + - type + properties: + type: + type: string + enum: + - max_file_size + parameters: + type: object + properties: + max_file_size: + type: integer + description: The maximum file size allowed in megabytes. This limit + does not apply to Git Large File Storage (Git LFS). + minimum: 1 + maximum: 100 + required: + - max_file_size + repository-rule-params-restricted-commits: + title: RestrictedCommits + description: Restricted commit + type: object + properties: + oid: + type: string + description: Full or abbreviated commit hash to reject + reason: + type: string + description: Reason for restriction + required: + - oid + repository-rule-params-workflow-file-reference: + title: WorkflowFileReference + description: A workflow that must run for this rule to pass + type: object + properties: + path: + type: string + description: The path to the workflow file + ref: + type: string + description: The ref (branch or tag) of the workflow file to use + repository_id: + type: integer + description: The ID of the repository where the workflow is defined + sha: + type: string + description: The commit SHA of the workflow file to use + required: + - path + - repository_id + repository-rule-workflows: + title: workflows + description: Require all changes made to a targeted branch to pass the specified + workflows before they can be merged. + type: object + required: + - type + properties: + type: + type: string + enum: + - workflows + parameters: + type: object + properties: + do_not_enforce_on_create: + type: boolean + description: Allow repositories and branches to be created if a check + would otherwise prohibit it. + workflows: + type: array + description: Workflows that must pass for this rule to pass. + items: + "$ref": "#/components/schemas/repository-rule-params-workflow-file-reference" + required: + - workflows + repository-rule-params-code-scanning-tool: + title: CodeScanningTool + description: A tool that must provide code scanning results for this rule to + pass. + type: object + properties: + alerts_threshold: + type: string + description: The severity level at which code scanning results that raise + alerts block a reference update. For more information on alert severity + levels, see "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + enum: + - none + - errors + - errors_and_warnings + - all + security_alerts_threshold: + type: string + description: The severity level at which code scanning results that raise + security alerts block a reference update. For more information on security + severity levels, see "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + enum: + - none + - critical + - high_or_higher + - medium_or_higher + - all + tool: + type: string + description: The name of a code scanning tool + required: + - alerts_threshold + - security_alerts_threshold + - tool + repository-rule-code-scanning: + title: code_scanning + description: Choose which tools must provide code scanning results before the + reference is updated. When configured, code scanning must be enabled and have + results for both the commit and the reference being updated. + type: object + required: + - type + properties: + type: + type: string + enum: + - code_scanning + parameters: + type: object + properties: + code_scanning_tools: + type: array + description: Tools that must provide code scanning results for this + rule to pass. + items: + "$ref": "#/components/schemas/repository-rule-params-code-scanning-tool" + required: + - code_scanning_tools + repository-rule-copilot-code-review: + title: copilot_code_review + description: Request Copilot code review for new pull requests automatically + if the author has access to Copilot code review and their premium requests + quota has not reached the limit. + type: object + required: + - type + properties: + type: + type: string + enum: + - copilot_code_review + parameters: + type: object + properties: + review_draft_pull_requests: + type: boolean + description: Copilot automatically reviews draft pull requests before + they are marked as ready for review. + review_on_push: + type: boolean + description: Copilot automatically reviews each new push to the pull + request. + repository-rule-params-copilot-code-review-analysis-tool: + title: CopilotCodeReviewAnalysisTool + description: A tool that must provide code review results for this rule to pass. + type: object + properties: + name: + type: string + description: The name of a code review analysis tool + enum: + - CodeQL + - ESLint + - PMD + required: + - name + repository-rule: + title: Repository Rule + type: object + description: A repository rule. + oneOf: + - "$ref": "#/components/schemas/repository-rule-creation" + - "$ref": "#/components/schemas/repository-rule-update" + - "$ref": "#/components/schemas/repository-rule-deletion" + - "$ref": "#/components/schemas/repository-rule-required-linear-history" + - "$ref": "#/components/schemas/repository-rule-merge-queue" + - "$ref": "#/components/schemas/repository-rule-required-deployments" + - "$ref": "#/components/schemas/repository-rule-required-signatures" + - "$ref": "#/components/schemas/repository-rule-pull-request" + - "$ref": "#/components/schemas/repository-rule-required-status-checks" + - "$ref": "#/components/schemas/repository-rule-non-fast-forward" + - "$ref": "#/components/schemas/repository-rule-commit-message-pattern" + - "$ref": "#/components/schemas/repository-rule-commit-author-email-pattern" + - "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + - "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + - "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + - "$ref": "#/components/schemas/repository-rule-file-path-restriction" + - "$ref": "#/components/schemas/repository-rule-max-file-path-length" + - "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + - "$ref": "#/components/schemas/repository-rule-max-file-size" + - "$ref": "#/components/schemas/repository-rule-workflows" + - "$ref": "#/components/schemas/repository-rule-code-scanning" + - "$ref": "#/components/schemas/repository-rule-copilot-code-review" + repository-ruleset: + title: Repository ruleset + type: object + description: A set of rules to apply when specified conditions are met. + required: + - id + - name + - source + - enforcement + properties: + id: + type: integer + description: The ID of the ruleset + name: + type: string + description: The name of the ruleset + target: + type: string + description: The target of the ruleset + enum: + - branch + - tag + - push + - repository + source_type: + type: string + description: The type of the source of the ruleset + enum: + - Repository + - Organization + - Enterprise + source: + type: string + description: The name of the source + enforcement: + "$ref": "#/components/schemas/repository-rule-enforcement" + bypass_actors: + type: array + description: The actors that can bypass the rules in this ruleset + items: + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + current_user_can_bypass: + type: string + description: |- + The bypass type of the user making the API request for this ruleset. This field is only returned when + querying the repository-level endpoint. + enum: + - always + - pull_requests_only + - never + - exempt + node_id: + type: string + _links: + type: object + properties: + self: + type: object + properties: + href: + type: string + description: The URL of the ruleset + html: + type: object + nullable: true + properties: + href: + type: string + description: The html URL of the ruleset + conditions: + nullable: true + anyOf: + - "$ref": "#/components/schemas/repository-ruleset-conditions" + - "$ref": "#/components/schemas/org-ruleset-conditions" + rules: + type: array + items: + "$ref": "#/components/schemas/repository-rule" + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + org-rules: + title: Repository Rule + type: object + description: A repository rule. + oneOf: + - "$ref": "#/components/schemas/repository-rule-creation" + - "$ref": "#/components/schemas/repository-rule-update" + - "$ref": "#/components/schemas/repository-rule-deletion" + - "$ref": "#/components/schemas/repository-rule-required-linear-history" + - "$ref": "#/components/schemas/repository-rule-required-deployments" + - "$ref": "#/components/schemas/repository-rule-required-signatures" + - "$ref": "#/components/schemas/repository-rule-pull-request" + - "$ref": "#/components/schemas/repository-rule-required-status-checks" + - "$ref": "#/components/schemas/repository-rule-non-fast-forward" + - "$ref": "#/components/schemas/repository-rule-commit-message-pattern" + - "$ref": "#/components/schemas/repository-rule-commit-author-email-pattern" + - "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + - "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + - "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + - "$ref": "#/components/schemas/repository-rule-file-path-restriction" + - "$ref": "#/components/schemas/repository-rule-max-file-path-length" + - "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + - "$ref": "#/components/schemas/repository-rule-max-file-size" + - "$ref": "#/components/schemas/repository-rule-workflows" + - "$ref": "#/components/schemas/repository-rule-code-scanning" + - "$ref": "#/components/schemas/repository-rule-copilot-code-review" + rule-suites: + title: Rule Suites + description: Response + type: array + items: + type: object + properties: + id: + type: integer + description: The unique identifier of the rule insight. + actor_id: + type: integer + description: The number that identifies the user. + actor_name: + type: string + description: The handle for the GitHub user account. + before_sha: + type: string + description: The first commit sha before the push evaluation. + after_sha: + type: string + description: The last commit sha in the push evaluation. + ref: + type: string + description: The ref name that the evaluation ran on. + repository_id: + type: integer + description: The ID of the repository associated with the rule evaluation. + repository_name: + type: string + description: The name of the repository without the `.git` extension. + pushed_at: + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + result: + type: string + enum: + - pass + - fail + - bypass + description: The result of the rule evaluations for rules with the `active` + enforcement status. + evaluation_result: + type: string + enum: + - pass + - fail + - bypass + description: The result of the rule evaluations for rules with the `active` + and `evaluate` enforcement statuses, demonstrating whether rules would + pass or fail if all rules in the rule suite were `active`. + rule-suite: + title: Rule Suite + description: Response + type: object + properties: + id: + type: integer + description: The unique identifier of the rule insight. + actor_id: + type: integer + description: The number that identifies the user. + nullable: true + actor_name: + type: string + description: The handle for the GitHub user account. + nullable: true + before_sha: + type: string + description: The previous commit SHA of the ref. + after_sha: + type: string + description: The new commit SHA of the ref. + ref: + type: string + description: The ref name that the evaluation ran on. + repository_id: + type: integer + description: The ID of the repository associated with the rule evaluation. + repository_name: + type: string + description: The name of the repository without the `.git` extension. + pushed_at: + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + result: + type: string + enum: + - pass + - fail + - bypass + description: The result of the rule evaluations for rules with the `active` + enforcement status. + evaluation_result: + type: string + nullable: true + enum: + - pass + - fail + - bypass + description: The result of the rule evaluations for rules with the `active` + and `evaluate` enforcement statuses, demonstrating whether rules would + pass or fail if all rules in the rule suite were `active`. Null if no + rules with `evaluate` enforcement status were run. + rule_evaluations: + type: array + description: Details on the evaluated rules. + items: + type: object + properties: + rule_source: + type: object + properties: + type: + type: string + description: The type of rule source. + id: + type: integer + nullable: true + description: The ID of the rule source. + name: + type: string + nullable: true + description: The name of the rule source. + enforcement: + type: string + enum: + - active + - evaluate + - deleted ruleset + description: The enforcement level of this rule source. + result: + type: string + enum: + - pass + - fail + description: The result of the evaluation of the individual rule. + rule_type: + type: string + description: The type of rule. + details: + type: string + nullable: true + description: The detailed failure message for the rule. Null if the + rule passed. + ruleset-version: + title: Ruleset version + type: object + description: The historical version of a ruleset + required: + - version_id + - actor + - updated_at + properties: + version_id: + type: integer + description: The ID of the previous version of the ruleset + actor: + type: object + description: The actor who updated the ruleset + properties: + id: + type: integer + type: + type: string + updated_at: + type: string + format: date-time + ruleset-version-with-state: + allOf: + - "$ref": "#/components/schemas/ruleset-version" + - type: object + required: + - state + properties: + state: + type: object + description: The state of the ruleset version + nullable-alert-updated-at: + type: string + description: 'The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + nullable: true + secret-scanning-alert-state: + description: Sets the state of the secret scanning alert. You must provide `resolution` + when you set the state to `resolved`. + type: string + enum: + - open + - resolved + secret-scanning-alert-resolution: + type: string + description: "**Required when the `state` is `resolved`.** The reason for resolving + the alert." + nullable: true + enum: + - false_positive + - wont_fix + - revoked + - used_in_tests + secret-scanning-location-commit: + description: Represents a 'commit' secret scanning location type. This location + type shows that a secret was detected inside a commit to a repository. + type: object + properties: + path: + type: string + description: The file path in the repository + example: "/example/secrets.txt" + start_line: + type: number + description: Line number at which the secret starts in the file + end_line: + type: number + description: Line number at which the secret ends in the file + start_column: + type: number + description: The column at which the secret starts within the start line + when the file is interpreted as 8BIT ASCII + end_column: + type: number + description: The column at which the secret ends within the end line when + the file is interpreted as 8BIT ASCII + blob_sha: + type: string + description: SHA-1 hash ID of the associated blob + example: af5626b4a114abcb82d63db7c8082c3c4756e51b + blob_url: + type: string + description: The API URL to get the associated blob resource + commit_sha: + type: string + description: SHA-1 hash ID of the associated commit + example: af5626b4a114abcb82d63db7c8082c3c4756e51b + commit_url: + type: string + description: The API URL to get the associated commit resource + required: + - path + - start_line + - end_line + - start_column + - end_column + - blob_sha + - blob_url + - commit_sha + - commit_url + secret-scanning-location-wiki-commit: + description: Represents a 'wiki_commit' secret scanning location type. This + location type shows that a secret was detected inside a commit to a repository + wiki. + type: object + properties: + path: + type: string + description: The file path of the wiki page + example: "/example/Home.md" + start_line: + type: number + description: Line number at which the secret starts in the file + end_line: + type: number + description: Line number at which the secret ends in the file + start_column: + type: number + description: The column at which the secret starts within the start line + when the file is interpreted as 8-bit ASCII. + end_column: + type: number + description: The column at which the secret ends within the end line when + the file is interpreted as 8-bit ASCII. + blob_sha: + type: string + description: SHA-1 hash ID of the associated blob + example: af5626b4a114abcb82d63db7c8082c3c4756e51b + page_url: + type: string + description: The GitHub URL to get the associated wiki page + example: https://github.com/octocat/Hello-World/wiki/Home/302c0b7e200761c9dd9b57e57db540ee0b4293a5 + commit_sha: + type: string + description: SHA-1 hash ID of the associated commit + example: 302c0b7e200761c9dd9b57e57db540ee0b4293a5 + commit_url: + type: string + description: The GitHub URL to get the associated wiki commit + example: https://github.com/octocat/Hello-World/wiki/_compare/302c0b7e200761c9dd9b57e57db540ee0b4293a5 + required: + - path + - start_line + - end_line + - start_column + - end_column + - blob_sha + - page_url + - commit_sha + - commit_url + secret-scanning-location-issue-title: + description: Represents an 'issue_title' secret scanning location type. This + location type shows that a secret was detected in the title of an issue. + type: object + properties: + issue_title_url: + type: string + format: uri + description: The API URL to get the issue where the secret was detected. + example: https://api.github.com/repos/octocat/Hello-World/issues/1347 + required: + - issue_title_url + secret-scanning-location-issue-body: + description: Represents an 'issue_body' secret scanning location type. This + location type shows that a secret was detected in the body of an issue. + type: object + properties: + issue_body_url: + type: string + format: uri + description: The API URL to get the issue where the secret was detected. + example: https://api.github.com/repos/octocat/Hello-World/issues/1347 + required: + - issue_body_url + secret-scanning-location-issue-comment: + description: Represents an 'issue_comment' secret scanning location type. This + location type shows that a secret was detected in a comment on an issue. + type: object + properties: + issue_comment_url: + type: string + format: uri + description: The API URL to get the issue comment where the secret was detected. + example: https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + required: + - issue_comment_url + secret-scanning-location-discussion-title: + description: Represents a 'discussion_title' secret scanning location type. + This location type shows that a secret was detected in the title of a discussion. + type: object + properties: + discussion_title_url: + type: string + format: uri + description: The URL to the discussion where the secret was detected. + example: https://github.com/community/community/discussions/39082 + required: + - discussion_title_url + secret-scanning-location-discussion-body: + description: Represents a 'discussion_body' secret scanning location type. This + location type shows that a secret was detected in the body of a discussion. + type: object + properties: + discussion_body_url: + type: string + format: uri + description: The URL to the discussion where the secret was detected. + example: https://github.com/community/community/discussions/39082#discussion-4566270 + required: + - discussion_body_url + secret-scanning-location-discussion-comment: + description: Represents a 'discussion_comment' secret scanning location type. + This location type shows that a secret was detected in a comment on a discussion. + type: object + properties: + discussion_comment_url: + type: string + format: uri + description: The API URL to get the discussion comment where the secret + was detected. + example: https://github.com/community/community/discussions/39082#discussioncomment-4158232 + required: + - discussion_comment_url + secret-scanning-location-pull-request-title: + description: Represents a 'pull_request_title' secret scanning location type. + This location type shows that a secret was detected in the title of a pull + request. + type: object + properties: + pull_request_title_url: + type: string + format: uri + description: The API URL to get the pull request where the secret was detected. + example: https://api.github.com/repos/octocat/Hello-World/pulls/2846 + required: + - pull_request_title_url + secret-scanning-location-pull-request-body: + description: Represents a 'pull_request_body' secret scanning location type. + This location type shows that a secret was detected in the body of a pull + request. + type: object + properties: + pull_request_body_url: + type: string + format: uri + description: The API URL to get the pull request where the secret was detected. + example: https://api.github.com/repos/octocat/Hello-World/pulls/2846 + required: + - pull_request_body_url + secret-scanning-location-pull-request-comment: + description: Represents a 'pull_request_comment' secret scanning location type. + This location type shows that a secret was detected in a comment on a pull + request. + type: object + properties: + pull_request_comment_url: + type: string + format: uri + description: The API URL to get the pull request comment where the secret + was detected. + example: https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + required: + - pull_request_comment_url + secret-scanning-location-pull-request-review: + description: Represents a 'pull_request_review' secret scanning location type. + This location type shows that a secret was detected in a review on a pull + request. + type: object + properties: + pull_request_review_url: + type: string + format: uri + description: The API URL to get the pull request review where the secret + was detected. + example: https://api.github.com/repos/octocat/Hello-World/pulls/2846/reviews/80 + required: + - pull_request_review_url + secret-scanning-location-pull-request-review-comment: + description: Represents a 'pull_request_review_comment' secret scanning location + type. This location type shows that a secret was detected in a review comment + on a pull request. + type: object + properties: + pull_request_review_comment_url: + type: string + format: uri + description: The API URL to get the pull request review comment where the + secret was detected. + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/12 + required: + - pull_request_review_comment_url + nullable-secret-scanning-first-detected-location: + description: 'Details on the location where the token was initially detected. + This can be a commit, wiki commit, issue, discussion, pull request. + + ' + oneOf: + - "$ref": "#/components/schemas/secret-scanning-location-commit" + - "$ref": "#/components/schemas/secret-scanning-location-wiki-commit" + - "$ref": "#/components/schemas/secret-scanning-location-issue-title" + - "$ref": "#/components/schemas/secret-scanning-location-issue-body" + - "$ref": "#/components/schemas/secret-scanning-location-issue-comment" + - "$ref": "#/components/schemas/secret-scanning-location-discussion-title" + - "$ref": "#/components/schemas/secret-scanning-location-discussion-body" + - "$ref": "#/components/schemas/secret-scanning-location-discussion-comment" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-title" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-body" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-comment" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-review" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-review-comment" + nullable: true + organization-secret-scanning-alert: + type: object + properties: + number: + "$ref": "#/components/schemas/alert-number" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/nullable-alert-updated-at" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + locations_url: + type: string + format: uri + description: The REST API URL of the code locations for this alert. + state: + "$ref": "#/components/schemas/secret-scanning-alert-state" + resolution: + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + resolved_at: + type: string + format: date-time + description: 'The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + resolved_by: + "$ref": "#/components/schemas/nullable-simple-user" + secret_type: + type: string + description: The type of secret that secret scanning detected. + secret_type_display_name: + type: string + description: |- + User-friendly name for the detected secret, matching the `secret_type`. + For a list of built-in patterns, see "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)." + secret: + type: string + description: The secret that was detected. + repository: + "$ref": "#/components/schemas/simple-repository" + push_protection_bypassed: + type: boolean + description: Whether push protection was bypassed for the detected secret. + nullable: true + push_protection_bypassed_by: + "$ref": "#/components/schemas/nullable-simple-user" + push_protection_bypassed_at: + type: string + format: date-time + description: 'The time that push protection was bypassed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + push_protection_bypass_request_reviewer: + "$ref": "#/components/schemas/nullable-simple-user" + push_protection_bypass_request_reviewer_comment: + type: string + description: An optional comment when reviewing a push protection bypass. + nullable: true + push_protection_bypass_request_comment: + type: string + description: An optional comment when requesting a push protection bypass. + nullable: true + push_protection_bypass_request_html_url: + type: string + format: uri + description: The URL to a push protection bypass request. + nullable: true + resolution_comment: + type: string + description: The comment that was optionally added when this alert was closed + nullable: true + validity: + type: string + description: The token status as of the latest validity check. + enum: + - active + - inactive + - unknown + publicly_leaked: + type: boolean + description: Whether the secret was publicly leaked. + nullable: true + multi_repo: + type: boolean + description: Whether the detected secret was found in multiple repositories + in the same organization or enterprise. + nullable: true + is_base64_encoded: + type: boolean + description: A boolean value representing whether or not alert is base64 + encoded + nullable: true + first_location_detected: + "$ref": "#/components/schemas/nullable-secret-scanning-first-detected-location" + has_more_locations: + type: boolean + description: A boolean value representing whether or not the token in the + alert was detected in more than one location. + assigned_to: + "$ref": "#/components/schemas/nullable-simple-user" + secret-scanning-row-version: + type: string + description: The version of the entity. This is used to confirm you're updating + the current version of the entity and mitigate unintentionally overriding + someone else's update. + nullable: true + secret-scanning-pattern-override: + type: object + properties: + token_type: + type: string + description: The ID of the pattern. + custom_pattern_version: + type: string + description: The version of this pattern if it's a custom pattern. + nullable: true + slug: + type: string + description: The slug of the pattern. + display_name: + type: string + description: The user-friendly name for the pattern. + alert_total: + type: integer + description: The total number of alerts generated by this pattern. + alert_total_percentage: + type: integer + description: The percentage of all alerts that this pattern represents, + rounded to the nearest integer. + false_positives: + type: integer + description: The number of false positive alerts generated by this pattern. + false_positive_rate: + type: integer + description: The percentage of alerts from this pattern that are false positives, + rounded to the nearest integer. + bypass_rate: + type: integer + description: The percentage of blocks for this pattern that were bypassed, + rounded to the nearest integer. + default_setting: + type: string + description: The default push protection setting for this pattern. + enum: + - disabled + - enabled + enterprise_setting: + type: string + description: The push protection setting for this pattern set at the enterprise + level. Only present for partner patterns when the organization has a parent + enterprise. + enum: + - not-set + - disabled + - enabled + nullable: true + setting: + type: string + description: The current push protection setting for this pattern. If this + is `not-set`, then it inherits either the enterprise setting if it exists + or the default setting. + enum: + - not-set + - disabled + - enabled + secret-scanning-pattern-configuration: + title: Secret scanning pattern configuration + description: A collection of secret scanning patterns and their settings related + to push protection. + type: object + properties: + pattern_config_version: + "$ref": "#/components/schemas/secret-scanning-row-version" + provider_pattern_overrides: + type: array + description: Overrides for partner patterns. + items: + "$ref": "#/components/schemas/secret-scanning-pattern-override" + custom_pattern_overrides: + type: array + description: Overrides for custom patterns defined by the organization. + items: + "$ref": "#/components/schemas/secret-scanning-pattern-override" + repository-advisory-vulnerability: + description: A product affected by the vulnerability detailed in a repository + security advisory. + type: object + properties: + package: + description: The name of the package affected by the vulnerability. + type: object + nullable: true + properties: + ecosystem: + "$ref": "#/components/schemas/security-advisory-ecosystems" + name: + type: string + description: The unique package name within its ecosystem. + nullable: true + required: + - ecosystem + - name + vulnerable_version_range: + type: string + description: The range of the package versions affected by the vulnerability. + nullable: true + patched_versions: + type: string + description: The package version(s) that resolve the vulnerability. + nullable: true + vulnerable_functions: + type: array + description: The functions in the package that are affected. + nullable: true + items: + type: string + required: + - package + - vulnerable_version_range + - patched_versions + - vulnerable_functions + additionalProperties: false + repository-advisory-credit: + description: A credit given to a user for a repository security advisory. + type: object + properties: + user: + "$ref": "#/components/schemas/simple-user" + type: + "$ref": "#/components/schemas/security-advisory-credit-types" + state: + type: string + description: The state of the user's acceptance of the credit. + enum: + - accepted + - declined + - pending + required: + - user + - type + - state + additionalProperties: false + repository-advisory: + description: A repository security advisory. + type: object + properties: + ghsa_id: + type: string + description: The GitHub Security Advisory ID. + readOnly: true + cve_id: + type: string + description: The Common Vulnerabilities and Exposures (CVE) ID. + nullable: true + url: + type: string + format: uri + description: The API URL for the advisory. + readOnly: true + html_url: + type: string + format: uri + description: The URL for the advisory. + readOnly: true + summary: + type: string + description: A short summary of the advisory. + maxLength: 1024 + description: + type: string + description: A detailed description of what the advisory entails. + maxLength: 65535 + nullable: true + severity: + type: string + description: The severity of the advisory. + nullable: true + enum: + - critical + - high + - medium + - low + author: + readOnly: true + nullable: true + description: The author of the advisory. + allOf: + - "$ref": "#/components/schemas/simple-user" + publisher: + readOnly: true + nullable: true + description: The publisher of the advisory. + allOf: + - "$ref": "#/components/schemas/simple-user" + identifiers: + type: array + items: + type: object + properties: + type: + type: string + description: The type of identifier. + enum: + - CVE + - GHSA + value: + type: string + description: The identifier value. + required: + - type + - value + readOnly: true + state: + type: string + description: The state of the advisory. + enum: + - published + - closed + - withdrawn + - draft + - triage + created_at: + type: string + format: date-time + description: The date and time of when the advisory was created, in ISO + 8601 format. + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + description: The date and time of when the advisory was last updated, in + ISO 8601 format. + readOnly: true + nullable: true + published_at: + type: string + format: date-time + description: The date and time of when the advisory was published, in ISO + 8601 format. + readOnly: true + nullable: true + closed_at: + type: string + format: date-time + description: The date and time of when the advisory was closed, in ISO 8601 + format. + readOnly: true + nullable: true + withdrawn_at: + type: string + format: date-time + description: The date and time of when the advisory was withdrawn, in ISO + 8601 format. + readOnly: true + nullable: true + submission: + type: object + nullable: true + readOnly: true + properties: + accepted: + type: boolean + description: Whether a private vulnerability report was accepted by + the repository's administrators. + readOnly: true + required: + - accepted + vulnerabilities: + type: array + nullable: true + items: + "$ref": "#/components/schemas/repository-advisory-vulnerability" + cvss: + type: object + nullable: true + properties: + vector_string: + type: string + description: The CVSS vector. + nullable: true + score: + type: number + description: The CVSS score. + minimum: 0 + maximum: 10 + nullable: true + readOnly: true + required: + - vector_string + - score + cvss_severities: + "$ref": "#/components/schemas/cvss-severities" + cwes: + type: array + nullable: true + items: + type: object + properties: + cwe_id: + type: string + description: The Common Weakness Enumeration (CWE) identifier. + name: + type: string + description: The name of the CWE. + readOnly: true + required: + - cwe_id + - name + readOnly: true + cwe_ids: + type: array + description: A list of only the CWE IDs. + nullable: true + items: + type: string + credits: + type: array + nullable: true + items: + type: object + properties: + login: + type: string + description: The username of the user credited. + type: + "$ref": "#/components/schemas/security-advisory-credit-types" + credits_detailed: + type: array + nullable: true + items: + "$ref": "#/components/schemas/repository-advisory-credit" + readOnly: true + collaborating_users: + type: array + description: A list of users that collaborate on the advisory. + nullable: true + items: + "$ref": "#/components/schemas/simple-user" + collaborating_teams: + type: array + description: A list of teams that collaborate on the advisory. + nullable: true + items: + "$ref": "#/components/schemas/team" + private_fork: + readOnly: true + nullable: true + description: A temporary private fork of the advisory's repository for collaborating + on a fix. + allOf: + - "$ref": "#/components/schemas/simple-repository" + required: + - ghsa_id + - cve_id + - url + - html_url + - summary + - description + - severity + - author + - publisher + - identifiers + - state + - created_at + - updated_at + - published_at + - closed_at + - withdrawn_at + - submission + - vulnerabilities + - cvss + - cwes + - cwe_ids + - credits + - credits_detailed + - collaborating_users + - collaborating_teams + - private_fork + additionalProperties: false + immutable-releases-organization-settings: + title: Check immutable releases organization settings + description: Check immutable releases settings for an organization. + type: object + properties: + enforced_repositories: + type: string + description: The policy that controls how immutable releases are enforced + in the organization. + enum: + - all + - none + - selected + example: all + selected_repositories_url: + type: string + description: The API URL to use to get or set the selected repositories + for immutable releases enforcement, when `enforced_repositories` is set + to `selected`. + required: + - enforced_repositories + network-configuration: + title: Hosted compute network configuration + description: A hosted compute network configuration. + type: object + properties: + id: + description: The unique identifier of the network configuration. + type: string + example: 123ABC456DEF789 + name: + description: The name of the network configuration. + type: string + example: my-network-configuration + compute_service: + description: The hosted compute service the network configuration supports. + type: string + enum: + - none + - actions + - codespaces + network_settings_ids: + description: The unique identifier of each network settings in the configuration. + type: array + items: + type: string + example: 123ABC456DEF789 + failover_network_settings_ids: + description: The unique identifier of each failover network settings in + the configuration. + type: array + items: + type: string + example: 123ABC456DEF789 + failover_network_enabled: + description: Indicates whether the failover network resource is enabled. + type: boolean + example: true + created_on: + description: The time at which the network configuration was created, in + ISO 8601 format. + type: string + format: date-time + example: '2024-04-26T11:31:07Z' + nullable: true + required: + - id + - name + - created_on + network-settings: + title: Hosted compute network settings resource + description: A hosted compute network settings resource. + type: object + properties: + id: + description: The unique identifier of the network settings resource. + type: string + example: 220F78DACB92BBFBC5E6F22DE1CCF52309D + network_configuration_id: + description: The identifier of the network configuration that is using this + settings resource. + type: string + example: 934E208B3EE0BD60CF5F752C426BFB53562 + name: + description: The name of the network settings resource. + type: string + example: my-network-settings + subnet_id: + description: The subnet this network settings resource is configured for. + type: string + example: "/subscriptions/14839728-3ad9-43ab-bd2b-fa6ad0f75e2a/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet" + region: + description: The location of the subnet this network settings resource is + configured for. + type: string + example: eastus + required: + - id + - name + - subnet_id + - region + team-organization: + title: Team Organization + description: Team Organization + type: object + properties: + login: + type: string + example: github + id: + type: integer + example: 1 + node_id: + type: string + example: MDEyOk9yZ2FuaXphdGlvbjE= + url: + type: string + format: uri + example: https://api.github.com/orgs/github + repos_url: + type: string + format: uri + example: https://api.github.com/orgs/github/repos + events_url: + type: string + format: uri + example: https://api.github.com/orgs/github/events + hooks_url: + type: string + example: https://api.github.com/orgs/github/hooks + issues_url: + type: string + example: https://api.github.com/orgs/github/issues + members_url: + type: string + example: https://api.github.com/orgs/github/members{/member} + public_members_url: + type: string + example: https://api.github.com/orgs/github/public_members{/member} + avatar_url: + type: string + example: https://github.com/images/error/octocat_happy.gif + description: + type: string + example: A great organization + nullable: true + name: + type: string + example: github + company: + type: string + example: GitHub + blog: + type: string + format: uri + example: https://github.com/blog + location: + type: string + example: San Francisco + email: + type: string + format: email + example: octocat@github.com + twitter_username: + type: string + example: github + nullable: true + is_verified: + type: boolean + example: true + has_organization_projects: + type: boolean + example: true + has_repository_projects: + type: boolean + example: true + public_repos: + type: integer + example: 2 + public_gists: + type: integer + example: 1 + followers: + type: integer + example: 20 + following: + type: integer + example: 0 + html_url: + type: string + format: uri + example: https://github.com/octocat + created_at: + type: string + format: date-time + example: '2008-01-14T04:33:35Z' + type: + type: string + example: Organization + total_private_repos: + type: integer + example: 100 + owned_private_repos: + type: integer + example: 100 + private_gists: + type: integer + example: 81 + nullable: true + disk_usage: + type: integer + example: 10000 + nullable: true + collaborators: + type: integer + example: 8 + nullable: true + billing_email: + type: string + format: email + example: org@example.com + nullable: true + plan: + type: object + properties: + name: + type: string + space: + type: integer + private_repos: + type: integer + filled_seats: + type: integer + seats: + type: integer + required: + - name + - space + - private_repos + default_repository_permission: + type: string + nullable: true + members_can_create_repositories: + type: boolean + example: true + nullable: true + two_factor_requirement_enabled: + type: boolean + example: true + nullable: true + members_allowed_repository_creation_type: + type: string + example: all + members_can_create_public_repositories: + type: boolean + example: true + members_can_create_private_repositories: + type: boolean + example: true + members_can_create_internal_repositories: + type: boolean + example: true + members_can_create_pages: + type: boolean + example: true + members_can_create_public_pages: + type: boolean + example: true + members_can_create_private_pages: + type: boolean + example: true + members_can_fork_private_repositories: + type: boolean + example: false + nullable: true + web_commit_signoff_required: + type: boolean + example: false + updated_at: + type: string + format: date-time + archived_at: + type: string + format: date-time + nullable: true + required: + - login + - url + - id + - node_id + - repos_url + - events_url + - hooks_url + - issues_url + - members_url + - public_members_url + - avatar_url + - description + - html_url + - has_organization_projects + - has_repository_projects + - public_repos + - public_gists + - followers + - following + - type + - created_at + - updated_at + - archived_at + ldap-dn: + type: string + description: The [distinguished name](https://www.ldap.com/ldap-dns-and-rdns) + (DN) of the LDAP entry to map to a team. + example: cn=Enterprise Ops,ou=teams,dc=github,dc=com + team-full: + title: Full Team + description: Groups of organization members that gives permissions on specified + repositories. + type: object + properties: + id: + description: Unique identifier of the team + example: 42 + type: integer + node_id: + type: string + example: MDQ6VGVhbTE= + url: + description: URL for the team + example: https://api.github.com/organizations/1/team/1 + type: string + format: uri + html_url: + type: string + format: uri + example: https://github.com/orgs/rails/teams/core + name: + description: Name of the team + example: Developers + type: string + slug: + type: string + example: justice-league + description: + type: string + example: A great team. + nullable: true + privacy: + description: The level of privacy this team should have + type: string + enum: + - closed + - secret + example: closed + notification_setting: + description: The notification setting the team has set + type: string + enum: + - notifications_enabled + - notifications_disabled + example: notifications_enabled + permission: + description: Permission that the team will have for its repositories + example: push + type: string + members_url: + type: string + example: https://api.github.com/organizations/1/team/1/members{/member} + repositories_url: + type: string + format: uri + example: https://api.github.com/organizations/1/team/1/repos + parent: + "$ref": "#/components/schemas/nullable-team-simple" + members_count: + type: integer + example: 3 + repos_count: + type: integer + example: 10 + created_at: + type: string + format: date-time + example: '2017-07-14T16:53:42Z' + updated_at: + type: string + format: date-time + example: '2017-08-17T12:37:15Z' + organization: + "$ref": "#/components/schemas/team-organization" + ldap_dn: + "$ref": "#/components/schemas/ldap-dn" + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team belongs + example: 42 + required: + - id + - node_id + - url + - members_url + - name + - description + - permission + - html_url + - repositories_url + - slug + - type + - created_at + - updated_at + - members_count + - repos_count + - organization + team-membership: + title: Team Membership + description: Team Membership + type: object + properties: + url: + type: string + format: uri + role: + description: The role of the user in the team. + enum: + - member + - maintainer + default: member + example: member + type: string + state: + description: The state of the user's membership in the team. + type: string + enum: + - active + - pending + required: + - role + - state + - url + team-repository: + title: Team Repository + description: A team's access to a repository. + type: object + properties: + id: + description: Unique identifier of the repository + example: 42 + type: integer + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + description: The name of the repository. + type: string + example: Team Environment + full_name: + type: string + example: octocat/Hello-World + license: + "$ref": "#/components/schemas/nullable-license-simple" + 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 + role_name: + type: string + example: admin + owner: + "$ref": "#/components/schemas/nullable-simple-user" + private: + description: Whether the repository is private or public. + default: false + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + example: git:github.com/octocat/Hello-World.git + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + example: git@github.com:octocat/Hello-World.git + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + example: https://github.com/octocat/Hello-World.git + mirror_url: + type: string + format: uri + example: git:git.example.com/octocat/Hello-World + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + format: uri + example: https://svn.github.com/octocat/Hello-World + homepage: + type: string + format: uri + example: https://github.com + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + example: 9 + stargazers_count: + type: integer + example: 80 + watchers_count: + type: integer + example: 80 + size: + type: integer + example: 108 + default_branch: + description: The default branch of the repository. + type: string + example: master + open_issues_count: + type: integer + example: 0 + is_template: + description: Whether this repository acts as a template that can be used + to generate new repositories. + default: false + type: boolean + example: true + topics: + type: array + items: + type: string + has_issues: + description: Whether issues are enabled. + default: true + type: boolean + example: true + has_projects: + description: Whether projects are enabled. + default: true + type: boolean + example: true + has_wiki: + description: Whether the wiki is enabled. + default: true + type: boolean + example: true + has_pages: + type: boolean + has_downloads: + description: Whether downloads are enabled. + default: true + type: boolean + example: 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 + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + default: true + type: boolean + example: true + temp_clone_token: + type: string + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + default: true + type: boolean + example: true + allow_auto_merge: + description: Whether to allow Auto-merge to be used on pull requests. + default: false + type: boolean + example: false + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are merged + default: false + type: boolean + example: false + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + default: true + type: boolean + example: true + allow_forking: + description: Whether to allow forking this repo + default: false + type: boolean + example: false + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based commits + default: false + type: boolean + example: false + subscribers_count: + type: integer + network_count: + type: integer + open_issues: + type: integer + watchers: + type: integer + master_branch: + type: string + 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 + rate-limit: + title: Rate Limit + type: object + properties: + limit: + type: integer + remaining: + type: integer + reset: + type: integer + used: + type: integer + required: + - limit + - remaining + - reset + - used + rate-limit-overview: + title: Rate Limit Overview + description: Rate Limit Overview + type: object + properties: + resources: + type: object + properties: + core: + "$ref": "#/components/schemas/rate-limit" + graphql: + "$ref": "#/components/schemas/rate-limit" + search: + "$ref": "#/components/schemas/rate-limit" + code_search: + "$ref": "#/components/schemas/rate-limit" + source_import: + "$ref": "#/components/schemas/rate-limit" + integration_manifest: + "$ref": "#/components/schemas/rate-limit" + code_scanning_upload: + "$ref": "#/components/schemas/rate-limit" + actions_runner_registration: + "$ref": "#/components/schemas/rate-limit" + scim: + "$ref": "#/components/schemas/rate-limit" + dependency_snapshots: + "$ref": "#/components/schemas/rate-limit" + dependency_sbom: + "$ref": "#/components/schemas/rate-limit" + code_scanning_autofix: + "$ref": "#/components/schemas/rate-limit" + required: + - core + - search + rate: + "$ref": "#/components/schemas/rate-limit" + required: + - rate + - resources + artifact: + title: Artifact + description: An artifact + type: object + properties: + id: + type: integer + example: 5 + node_id: + type: string + example: MDEwOkNoZWNrU3VpdGU1 + name: + description: The name of the artifact. + type: string + example: AdventureWorks.Framework + size_in_bytes: + description: The size in bytes of the artifact. + type: integer + example: 12345 + url: + type: string + example: https://api.github.com/repos/github/hello-world/actions/artifacts/5 + archive_download_url: + type: string + example: https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip + expired: + description: Whether or not the artifact has expired. + type: boolean + created_at: + type: string + format: date-time + nullable: true + expires_at: + type: string + format: date-time + nullable: true + updated_at: + type: string + format: date-time + nullable: true + digest: + type: string + description: The SHA256 digest of the artifact. This field will only be + populated on artifacts uploaded with upload-artifact v4 or newer. For + older versions, this field will be null. + nullable: true + example: sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c + workflow_run: + type: object + nullable: true + properties: + id: + example: 10 + type: integer + repository_id: + example: 42 + type: integer + head_repository_id: + example: 42 + type: integer + head_branch: + example: main + type: string + head_sha: + example: '009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d' + type: string + required: + - id + - node_id + - name + - size_in_bytes + - url + - archive_download_url + - expired + - created_at + - expires_at + - updated_at + actions-cache-retention-limit-for-repository: + title: Actions cache retention limit for a repository + description: GitHub Actions cache retention policy for a repository. + type: object + properties: + max_cache_retention_days: + description: The maximum number of days to keep caches in this repository. + type: integer + example: 14 + actions-cache-storage-limit-for-repository: + title: Actions cache storage limit for a repository + description: GitHub Actions cache storage policy for a repository. + type: object + properties: + max_cache_size_gb: + description: The maximum total cache size for this repository, in gigabytes. + type: integer + example: 10 + actions-cache-list: + title: Repository actions caches + description: Repository actions caches + type: object + properties: + total_count: + description: Total number of caches + type: integer + example: 2 + actions_caches: + description: Array of caches + type: array + items: + type: object + properties: + id: + type: integer + example: 2 + ref: + type: string + example: refs/heads/main + key: + type: string + example: Linux-node-958aff96db2d75d67787d1e634ae70b659de937b + version: + type: string + example: 73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0 + last_accessed_at: + type: string + format: date-time + example: '2019-01-24T22:45:36.000Z' + created_at: + type: string + format: date-time + example: '2019-01-24T22:45:36.000Z' + size_in_bytes: + type: integer + example: 1024 + required: + - total_count + - actions_caches + job: + title: Job + description: Information of a job execution in a workflow run + type: object + properties: + id: + description: The id of the job. + example: 21 + type: integer + run_id: + description: The id of the associated workflow run. + example: 5 + type: integer + run_url: + type: string + example: https://api.github.com/repos/github/hello-world/actions/runs/5 + run_attempt: + type: integer + description: Attempt number of the associated workflow run, 1 for first + attempt and higher if the workflow was re-run. + example: 1 + node_id: + type: string + example: MDg6Q2hlY2tSdW40 + head_sha: + description: The SHA of the commit that is being run. + example: '009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d' + type: string + url: + type: string + example: https://api.github.com/repos/github/hello-world/actions/jobs/21 + html_url: + type: string + example: https://github.com/github/hello-world/runs/4 + nullable: true + status: + description: The phase of the lifecycle that the job is currently in. + example: queued + type: string + enum: + - queued + - in_progress + - completed + - waiting + - requested + - pending + conclusion: + description: The outcome of the job. + example: success + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - skipped + - timed_out + - action_required + created_at: + description: The time that the job created, in ISO 8601 format. + example: '2019-08-08T08:00:00-07:00' + format: date-time + type: string + started_at: + description: The time that the job started, in ISO 8601 format. + example: '2019-08-08T08:00:00-07:00' + format: date-time + type: string + completed_at: + description: The time that the job finished, in ISO 8601 format. + example: '2019-08-08T08:00:00-07:00' + format: date-time + type: string + nullable: true + name: + description: The name of the job. + example: test-coverage + type: string + steps: + description: Steps in this job. + type: array + items: + type: object + required: + - name + - status + - conclusion + - number + properties: + status: + description: The phase of the lifecycle that the job is currently + in. + example: queued + type: string + enum: + - queued + - in_progress + - completed + conclusion: + description: The outcome of the job. + example: success + type: string + nullable: true + name: + description: The name of the job. + example: test-coverage + type: string + number: + type: integer + example: 1 + started_at: + description: The time that the step started, in ISO 8601 format. + example: '2019-08-08T08:00:00-07:00' + format: date-time + type: string + nullable: true + completed_at: + description: The time that the job finished, in ISO 8601 format. + example: '2019-08-08T08:00:00-07:00' + format: date-time + type: string + nullable: true + check_run_url: + type: string + example: https://api.github.com/repos/github/hello-world/check-runs/4 + labels: + type: array + items: + type: string + description: Labels for the workflow job. Specified by the "runs_on" attribute + in the action's workflow file. + example: + - self-hosted + - foo + - bar + runner_id: + type: integer + nullable: true + example: 1 + description: The ID of the runner to which this job has been assigned. (If + a runner hasn't yet been assigned, this will be null.) + runner_name: + type: string + nullable: true + example: my runner + description: The name of the runner to which this job has been assigned. + (If a runner hasn't yet been assigned, this will be null.) + runner_group_id: + type: integer + nullable: true + example: 2 + description: The ID of the runner group to which this job has been assigned. + (If a runner hasn't yet been assigned, this will be null.) + runner_group_name: + type: string + nullable: true + example: my runner group + description: The name of the runner group to which this job has been assigned. + (If a runner hasn't yet been assigned, this will be null.) + workflow_name: + type: string + description: The name of the workflow. + nullable: true + example: Build + head_branch: + type: string + description: The name of the current branch. + nullable: true + example: main + required: + - id + - node_id + - run_id + - run_url + - head_sha + - workflow_name + - head_branch + - name + - url + - html_url + - status + - conclusion + - started_at + - completed_at + - check_run_url + - labels + - runner_id + - runner_name + - runner_group_id + - runner_group_name + - created_at + oidc-custom-sub-repo: + title: Actions OIDC subject customization for a repository + description: Actions OIDC subject customization for a repository + type: object + properties: + use_default: + description: Whether to use the default template or not. If `true`, the + `include_claim_keys` field is ignored. + type: boolean + include_claim_keys: + description: Array of unique strings. Each claim key can only contain alphanumeric + characters and underscores. + type: array + items: + type: string + required: + - use_default + actions-secret: + title: Actions Secret + description: Set secrets for GitHub Actions. + type: object + properties: + name: + description: The name of the secret. + example: SECRET_TOKEN + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - name + - created_at + - updated_at + actions-variable: + title: Actions Variable + type: object + properties: + name: + description: The name of the variable. + example: USERNAME + type: string + value: + description: The value of the variable. + example: octocat + type: string + created_at: + description: The date and time at which the variable was created, in ISO + 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + example: '2019-01-24T22:45:36.000Z' + updated_at: + description: The date and time at which the variable was last updated, in + ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + example: '2019-01-24T22:45:36.000Z' + required: + - name + - value + - created_at + - updated_at + actions-enabled: + type: boolean + description: Whether GitHub Actions is enabled on the repository. + actions-repository-permissions: + type: object + properties: + enabled: + "$ref": "#/components/schemas/actions-enabled" + allowed_actions: + "$ref": "#/components/schemas/allowed-actions" + selected_actions_url: + "$ref": "#/components/schemas/selected-actions-url" + sha_pinning_required: + "$ref": "#/components/schemas/sha-pinning-required" + required: + - enabled + actions-workflow-access-to-repository: + type: object + properties: + access_level: + type: string + description: |- + Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the + repository. + + `none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. + enum: + - none + - user + - organization + required: + - access_level + referenced-workflow: + title: Referenced workflow + description: A workflow referenced/reused by the initial caller workflow + type: object + properties: + path: + type: string + sha: + type: string + ref: + type: string + required: + - path + - sha + nullable-simple-commit: + title: Simple Commit + description: A commit. + type: object + properties: + id: + type: string + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + tree_id: + type: string + description: SHA for the commit's tree + message: + description: Message describing the purpose of the commit + example: 'Fix #42' + type: string + timestamp: + description: Timestamp of the commit + example: '2014-08-09T08:02:04+12:00' + format: date-time + type: string + author: + type: object + description: Information about the Git author + properties: + name: + description: Name of the commit's author + example: Monalisa Octocat + type: string + email: + description: Git email address of the commit's author + example: monalisa.octocat@example.com + type: string + format: email + required: + - name + - email + nullable: true + committer: + type: object + description: Information about the Git committer + properties: + name: + description: Name of the commit's committer + example: Monalisa Octocat + type: string + email: + description: Git email address of the commit's committer + example: monalisa.octocat@example.com + type: string + format: email + required: + - name + - email + nullable: true + required: + - id + - tree_id + - message + - timestamp + - author + - committer + nullable: true + workflow-run: + title: Workflow Run + description: An invocation of a workflow + type: object + properties: + id: + type: integer + description: The ID of the workflow run. + example: 5 + name: + type: string + description: The name of the workflow run. + nullable: true + example: Build + node_id: + type: string + example: MDEwOkNoZWNrU3VpdGU1 + check_suite_id: + type: integer + description: The ID of the associated check suite. + example: 42 + check_suite_node_id: + type: string + description: The node ID of the associated check suite. + example: MDEwOkNoZWNrU3VpdGU0Mg== + head_branch: + type: string + nullable: true + example: master + head_sha: + description: The SHA of the head commit that points to the version of the + workflow being run. + example: '009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d' + type: string + path: + description: The full path of the workflow + example: octocat/octo-repo/.github/workflows/ci.yml@main + type: string + run_number: + type: integer + description: The auto incrementing run number for the workflow run. + example: 106 + run_attempt: + type: integer + description: Attempt number of the run, 1 for first attempt and higher if + the workflow was re-run. + example: 1 + referenced_workflows: + type: array + nullable: true + items: + "$ref": "#/components/schemas/referenced-workflow" + event: + type: string + example: push + status: + type: string + nullable: true + example: completed + conclusion: + type: string + nullable: true + example: neutral + workflow_id: + type: integer + description: The ID of the parent workflow. + example: 5 + url: + type: string + description: The URL to the workflow run. + example: https://api.github.com/repos/github/hello-world/actions/runs/5 + html_url: + type: string + example: https://github.com/github/hello-world/suites/4 + pull_requests: + description: Pull requests that are open with a `head_sha` or `head_branch` + that matches the workflow run. The returned pull requests do not necessarily + indicate pull requests that triggered the run. + type: array + nullable: true + items: + "$ref": "#/components/schemas/pull-request-minimal" + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + actor: + "$ref": "#/components/schemas/simple-user" + triggering_actor: + "$ref": "#/components/schemas/simple-user" + run_started_at: + type: string + format: date-time + description: The start time of the latest run. Resets on re-run. + jobs_url: + description: The URL to the jobs for the workflow run. + type: string + example: https://api.github.com/repos/github/hello-world/actions/runs/5/jobs + logs_url: + description: The URL to download the logs for the workflow run. + type: string + example: https://api.github.com/repos/github/hello-world/actions/runs/5/logs + check_suite_url: + description: The URL to the associated check suite. + type: string + example: https://api.github.com/repos/github/hello-world/check-suites/12 + artifacts_url: + description: The URL to the artifacts for the workflow run. + type: string + example: https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts + cancel_url: + description: The URL to cancel the workflow run. + type: string + example: https://api.github.com/repos/github/hello-world/actions/runs/5/cancel + rerun_url: + description: The URL to rerun the workflow run. + type: string + example: https://api.github.com/repos/github/hello-world/actions/runs/5/rerun + previous_attempt_url: + nullable: true + description: The URL to the previous attempted run of this workflow, if + one exists. + type: string + example: https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3 + workflow_url: + description: The URL to the workflow. + type: string + example: https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml + head_commit: + "$ref": "#/components/schemas/nullable-simple-commit" + repository: + "$ref": "#/components/schemas/minimal-repository" + head_repository: + "$ref": "#/components/schemas/minimal-repository" + head_repository_id: + type: integer + example: 5 + display_title: + type: string + example: Simple Workflow + description: The event-specific title associated with the run or the run-name + if set, or the value of `run-name` if it is set in the workflow. + required: + - id + - node_id + - head_branch + - run_number + - display_title + - event + - status + - conclusion + - head_sha + - path + - workflow_id + - url + - html_url + - created_at + - updated_at + - head_commit + - head_repository + - repository + - jobs_url + - logs_url + - check_suite_url + - cancel_url + - rerun_url + - artifacts_url + - workflow_url + - pull_requests + environment-approvals: + title: Environment Approval + description: An entry in the reviews log for environment deployments + type: object + properties: + environments: + description: The list of environments that were approved or rejected + type: array + items: + type: object + properties: + id: + description: The id of the environment. + example: 56780428 + type: integer + node_id: + type: string + example: MDExOkVudmlyb25tZW50NTY3ODA0Mjg= + name: + description: The name of the environment. + example: staging + type: string + url: + type: string + example: https://api.github.com/repos/github/hello-world/environments/staging + html_url: + type: string + example: https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging + created_at: + description: The time that the environment was created, in ISO 8601 + format. + example: '2020-11-23T22:00:40Z' + format: date-time + type: string + updated_at: + description: The time that the environment was last updated, in ISO + 8601 format. + example: '2020-11-23T22:00:40Z' + format: date-time + type: string + state: + description: Whether deployment to the environment(s) was approved or rejected + or pending (with comments) + enum: + - approved + - rejected + - pending + example: approved + type: string + user: + "$ref": "#/components/schemas/simple-user" + comment: + type: string + description: The comment submitted with the deployment review + example: Ship it! + required: + - environments + - state + - user + - comment + review-custom-gates-comment-required: + type: object + properties: + environment_name: + type: string + description: The name of the environment to approve or reject. + comment: + type: string + description: Comment associated with the pending deployment protection rule. + **Required when state is not provided.** + required: + - environment_name + - comment + review-custom-gates-state-required: + type: object + properties: + environment_name: + type: string + description: The name of the environment to approve or reject. + state: + type: string + description: Whether to approve or reject deployment to the specified environments. + enum: + - approved + - rejected + comment: + type: string + description: Optional comment to include with the review. + required: + - environment_name + - state + deployment-reviewer-type: + type: string + description: The type of reviewer. + enum: + - User + - Team + example: User + pending-deployment: + title: Pending Deployment + description: Details of a deployment that is waiting for protection rules to + pass + type: object + properties: + environment: + type: object + properties: + id: + description: The id of the environment. + type: integer + format: int64 + example: 56780428 + node_id: + type: string + example: MDExOkVudmlyb25tZW50NTY3ODA0Mjg= + name: + description: The name of the environment. + example: staging + type: string + url: + type: string + example: https://api.github.com/repos/github/hello-world/environments/staging + html_url: + type: string + example: https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging + wait_timer: + type: integer + description: The set duration of the wait timer + example: 30 + wait_timer_started_at: + description: The time that the wait timer began. + example: '2020-11-23T22:00:40Z' + format: date-time + type: string + nullable: true + current_user_can_approve: + description: Whether the currently authenticated user can approve the deployment + type: boolean + example: true + reviewers: + type: array + description: The people or teams that may approve jobs that reference the + environment. You can list up to six users or teams as reviewers. The reviewers + must have at least read access to the repository. Only one of the required + reviewers needs to approve the job for it to proceed. + items: + type: object + properties: + type: + "$ref": "#/components/schemas/deployment-reviewer-type" + reviewer: + anyOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/team" + required: + - environment + - wait_timer + - wait_timer_started_at + - current_user_can_approve + - reviewers + deployment: + title: Deployment + description: A request for a specific ref(branch,sha,tag) to be deployed + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example/deployments/1 + id: + description: Unique identifier of the deployment + type: integer + format: int64 + example: 42 + node_id: + type: string + example: MDEwOkRlcGxveW1lbnQx + sha: + type: string + example: a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + ref: + description: The ref to deploy. This can be a branch, tag, or sha. + example: topic-branch + type: string + task: + description: Parameter to specify a task to execute + example: deploy + type: string + payload: + oneOf: + - type: object + additionalProperties: true + - type: string + original_environment: + type: string + example: staging + environment: + description: Name for the target deployment environment. + example: production + type: string + description: + type: string + example: Deploy request from hubot + nullable: true + creator: + "$ref": "#/components/schemas/nullable-simple-user" + created_at: + type: string + format: date-time + example: '2012-07-20T01:19:13Z' + updated_at: + type: string + format: date-time + example: '2012-07-20T01:19:13Z' + statuses_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example/deployments/1/statuses + repository_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example + transient_environment: + description: 'Specifies if the given environment is will no longer exist + at some point in the future. Default: false.' + example: true + type: boolean + production_environment: + description: 'Specifies if the given environment is one that end-users directly + interact with. Default: false.' + example: true + type: boolean + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + required: + - id + - node_id + - sha + - ref + - task + - environment + - creator + - payload + - description + - statuses_url + - repository_url + - url + - created_at + - updated_at + workflow-run-usage: + title: Workflow Run Usage + description: Workflow Run Usage + type: object + properties: + billable: + type: object + properties: + UBUNTU: + type: object + required: + - total_ms + - jobs + properties: + total_ms: + type: integer + jobs: + type: integer + job_runs: + type: array + items: + type: object + required: + - job_id + - duration_ms + properties: + job_id: + type: integer + duration_ms: + type: integer + MACOS: + type: object + required: + - total_ms + - jobs + properties: + total_ms: + type: integer + jobs: + type: integer + job_runs: + type: array + items: + type: object + required: + - job_id + - duration_ms + properties: + job_id: + type: integer + duration_ms: + type: integer + WINDOWS: + type: object + required: + - total_ms + - jobs + properties: + total_ms: + type: integer + jobs: + type: integer + job_runs: + type: array + items: + type: object + required: + - job_id + - duration_ms + properties: + job_id: + type: integer + duration_ms: + type: integer + run_duration_ms: + type: integer + required: + - billable + workflow: + title: Workflow + description: A GitHub Actions workflow + type: object + properties: + id: + type: integer + example: 5 + node_id: + type: string + example: MDg6V29ya2Zsb3cxMg== + name: + type: string + example: CI + path: + type: string + example: ruby.yaml + state: + type: string + example: active + enum: + - active + - deleted + - disabled_fork + - disabled_inactivity + - disabled_manually + created_at: + type: string + format: date-time + example: '2019-12-06T14:20:20.000Z' + updated_at: + type: string + format: date-time + example: '2019-12-06T14:20:20.000Z' + url: + type: string + example: https://api.github.com/repos/actions/setup-ruby/workflows/5 + html_url: + type: string + example: https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml + badge_url: + type: string + example: https://github.com/actions/setup-ruby/workflows/CI/badge.svg + deleted_at: + type: string + format: date-time + example: '2019-12-06T14:20:20.000Z' + required: + - id + - node_id + - name + - path + - state + - url + - html_url + - badge_url + - created_at + - updated_at + workflow-run-id: + title: Workflow Run ID + description: The ID of the workflow run. + type: integer + format: int64 + workflow-dispatch-response: + title: Workflow Dispatch Response + description: Response containing the workflow run ID and URLs. + type: object + properties: + workflow_run_id: + "$ref": "#/components/schemas/workflow-run-id" + run_url: + type: string + format: uri + description: The URL to the workflow run. + html_url: + type: string + format: uri + required: + - workflow_run_id + - run_url + - html_url + workflow-usage: + title: Workflow Usage + description: Workflow Usage + type: object + properties: + billable: + type: object + properties: + UBUNTU: + type: object + properties: + total_ms: + type: integer + MACOS: + type: object + properties: + total_ms: + type: integer + WINDOWS: + type: object + properties: + total_ms: + type: integer + required: + - billable + activity: + title: Activity + description: Activity + type: object + properties: + id: + type: integer + example: 1296269 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + before: + type: string + example: 6dcb09b5b57875f334f61aebed695e2e4193db5e + description: The SHA of the commit before the activity. + after: + type: string + example: 827efc6d56897b048c772eb4087f854f46256132 + description: The SHA of the commit after the activity. + ref: + type: string + example: refs/heads/main + description: The full Git reference, formatted as `refs/heads/`. + timestamp: + type: string + format: date-time + example: '2011-01-26T19:06:43Z' + description: The time when the activity occurred. + activity_type: + type: string + example: force_push + enum: + - push + - force_push + - branch_deletion + - branch_creation + - pr_merge + - merge_queue_merge + description: The type of the activity that was performed. + actor: + "$ref": "#/components/schemas/nullable-simple-user" + required: + - id + - node_id + - before + - after + - ref + - timestamp + - activity_type + - actor + autolink: + title: Autolink reference + description: An autolink reference. + type: object + properties: + id: + type: integer + example: 3 + key_prefix: + description: The prefix of a key that is linkified. + example: TICKET- + type: string + url_template: + description: A template for the target URL that is generated if a key was + found. + example: https://example.com/TICKET?query= + type: string + is_alphanumeric: + description: Whether this autolink reference matches alphanumeric characters. + If false, this autolink reference only matches numeric characters. + example: true + type: boolean + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - key_prefix + - url_template + - is_alphanumeric + check-automated-security-fixes: + title: Check Dependabot security updates + description: Check Dependabot security updates + type: object + properties: + enabled: + type: boolean + example: true + description: Whether Dependabot security updates are enabled for the repository. + paused: + type: boolean + example: false + description: Whether Dependabot security updates are paused for the repository. + required: + - enabled + - paused + protected-branch-required-status-check: + title: Protected Branch Required Status Check + description: Protected Branch Required Status Check + type: object + properties: + url: + type: string + enforcement_level: + type: string + contexts: + type: array + items: + type: string + checks: + type: array + items: + type: object + properties: + context: + type: string + app_id: + type: integer + nullable: true + required: + - context + - app_id + contexts_url: + type: string + strict: + type: boolean + required: + - contexts + - checks + protected-branch-admin-enforced: + title: Protected Branch Admin Enforced + description: Protected Branch Admin Enforced + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins + enabled: + type: boolean + example: true + required: + - url + - enabled + protected-branch-pull-request-review: + title: Protected Branch Pull Request Review + description: Protected Branch Pull Request Review + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions + dismissal_restrictions: + type: object + properties: + users: + description: The list of users with review dismissal access. + type: array + items: + "$ref": "#/components/schemas/simple-user" + teams: + description: The list of teams with review dismissal access. + type: array + items: + "$ref": "#/components/schemas/team" + apps: + description: The list of apps with review dismissal access. + type: array + items: + "$ref": "#/components/schemas/integration" + url: + type: string + example: '"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions"' + users_url: + type: string + example: '"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users"' + teams_url: + type: string + example: '"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams"' + bypass_pull_request_allowances: + type: object + description: Allow specific users, teams, or apps to bypass pull request + requirements. + properties: + users: + description: The list of users allowed to bypass pull request requirements. + type: array + items: + "$ref": "#/components/schemas/simple-user" + teams: + description: The list of teams allowed to bypass pull request requirements. + type: array + items: + "$ref": "#/components/schemas/team" + apps: + description: The list of apps allowed to bypass pull request requirements. + type: array + items: + "$ref": "#/components/schemas/integration" + dismiss_stale_reviews: + type: boolean + example: true + require_code_owner_reviews: + type: boolean + example: true + required_approving_review_count: + type: integer + minimum: 0 + maximum: 6 + example: 2 + require_last_push_approval: + description: Whether the most recent push must be approved by someone other + than the person who pushed it. + type: boolean + example: true + default: false + required: + - dismiss_stale_reviews + - require_code_owner_reviews + branch-restriction-policy: + title: Branch Restriction Policy + description: Branch Restriction Policy + type: object + properties: + url: + type: string + format: uri + users_url: + type: string + format: uri + teams_url: + type: string + format: uri + apps_url: + type: string + format: uri + users: + type: array + items: + type: object + properties: + login: + type: string + id: + type: integer + format: int64 + 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 + user_view_type: + type: string + teams: + type: array + items: + "$ref": "#/components/schemas/team" + apps: + type: array + items: + type: object + properties: + id: + type: integer + slug: + type: string + node_id: + type: string + owner: + type: object + properties: + login: + type: string + id: + type: integer + node_id: + type: string + url: + type: string + repos_url: + type: string + events_url: + type: string + hooks_url: + type: string + issues_url: + type: string + members_url: + type: string + public_members_url: + type: string + avatar_url: + type: string + description: + type: string + gravatar_id: + type: string + example: '""' + html_url: + type: string + example: '"https://github.com/testorg-ea8ec76d71c3af4b"' + followers_url: + type: string + example: '"https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers"' + following_url: + type: string + example: '"https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}"' + gists_url: + type: string + example: '"https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}"' + starred_url: + type: string + example: '"https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}"' + subscriptions_url: + type: string + example: '"https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions"' + organizations_url: + type: string + example: '"https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs"' + received_events_url: + type: string + example: '"https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events"' + type: + type: string + example: '"Organization"' + site_admin: + type: boolean + example: false + user_view_type: + type: string + example: public + name: + type: string + client_id: + type: string + description: + type: string + external_url: + type: string + html_url: + type: string + created_at: + type: string + updated_at: + type: string + permissions: + type: object + properties: + metadata: + type: string + contents: + type: string + issues: + type: string + single_file: + type: string + events: + type: array + items: + type: string + required: + - url + - users_url + - teams_url + - apps_url + - users + - teams + - apps + branch-protection: + title: Branch Protection + description: Branch Protection + type: object + properties: + url: + type: string + enabled: + type: boolean + required_status_checks: + "$ref": "#/components/schemas/protected-branch-required-status-check" + enforce_admins: + "$ref": "#/components/schemas/protected-branch-admin-enforced" + required_pull_request_reviews: + "$ref": "#/components/schemas/protected-branch-pull-request-review" + restrictions: + "$ref": "#/components/schemas/branch-restriction-policy" + required_linear_history: + type: object + properties: + enabled: + type: boolean + allow_force_pushes: + type: object + properties: + enabled: + type: boolean + allow_deletions: + type: object + properties: + enabled: + type: boolean + block_creations: + type: object + properties: + enabled: + type: boolean + required_conversation_resolution: + type: object + properties: + enabled: + type: boolean + name: + type: string + example: '"branch/with/protection"' + protection_url: + type: string + example: '"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection"' + required_signatures: + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + enabled: + type: boolean + example: true + required: + - url + - enabled + lock_branch: + type: object + description: Whether to set the branch as read-only. If this is true, users + will not be able to push to the branch. + properties: + enabled: + default: false + type: boolean + allow_fork_syncing: + type: object + description: Whether users can pull changes from upstream when the branch + is locked. Set to `true` to allow fork syncing. Set to `false` to prevent + fork syncing. + properties: + enabled: + default: false + type: boolean + short-branch: + title: Short Branch + description: Short Branch + type: object + properties: + name: + type: string + commit: + type: object + properties: + sha: + type: string + url: + type: string + format: uri + required: + - sha + - url + protected: + type: boolean + protection: + "$ref": "#/components/schemas/branch-protection" + protection_url: + type: string + format: uri + required: + - name + - commit + - protected + nullable-git-user: + title: Git User + description: Metaproperties for Git author/committer information. + type: object + properties: + name: + type: string + example: '"Chris Wanstrath"' + email: + type: string + example: '"chris@ozmm.org"' + date: + type: string + format: date-time + example: '"2007-10-29T02:42:39.000-07:00"' + nullable: true + verification: + title: Verification + type: object + properties: + verified: + type: boolean + reason: + type: string + payload: + type: string + nullable: true + signature: + type: string + nullable: true + verified_at: + type: string + nullable: true + required: + - verified + - reason + - payload + - signature + - verified_at + diff-entry: + title: Diff Entry + description: Diff Entry + type: object + properties: + sha: + type: string + nullable: true + example: bbcd538c8e72b8c175046e27cc8f907076331401 + filename: + type: string + example: file1.txt + status: + type: string + enum: + - added + - removed + - modified + - renamed + - copied + - changed + - unchanged + example: added + additions: + type: integer + example: 103 + deletions: + type: integer + example: 21 + changes: + type: integer + example: 124 + blob_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + raw_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + contents_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + patch: + type: string + example: "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + previous_filename: + type: string + example: file.txt + required: + - additions + - blob_url + - changes + - contents_url + - deletions + - filename + - raw_url + - sha + - status + commit: + title: Commit + description: Commit + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: + type: string + example: 6dcb09b5b57875f334f61aebed695e2e4193db5e + node_id: + type: string + example: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + commit: + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + author: + "$ref": "#/components/schemas/nullable-git-user" + committer: + "$ref": "#/components/schemas/nullable-git-user" + message: + type: string + example: Fix all the bugs + comment_count: + type: integer + example: 0 + tree: + type: object + properties: + sha: + type: string + example: 827efc6d56897b048c772eb4087f854f46256132 + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132 + required: + - sha + - url + verification: + "$ref": "#/components/schemas/verification" + required: + - author + - committer + - comment_count + - message + - tree + - url + author: + nullable: true + oneOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/empty-object" + committer: + nullable: true + oneOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/empty-object" + parents: + type: array + items: + type: object + properties: + sha: + type: string + example: 7638417db6d59f3c431d3e1f261cc637155684cd + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + required: + - sha + - url + stats: + type: object + properties: + additions: + type: integer + deletions: + type: integer + total: + type: integer + files: + type: array + items: + "$ref": "#/components/schemas/diff-entry" + required: + - url + - sha + - node_id + - html_url + - comments_url + - commit + - author + - committer + - parents + branch-with-protection: + title: Branch With Protection + description: Branch With Protection + type: object + properties: + name: + type: string + commit: + "$ref": "#/components/schemas/commit" + _links: + type: object + properties: + html: + type: string + self: + type: string + format: uri + required: + - html + - self + protected: + type: boolean + protection: + "$ref": "#/components/schemas/branch-protection" + protection_url: + type: string + format: uri + pattern: + type: string + example: '"mas*"' + required_approving_review_count: + type: integer + example: 1 + required: + - name + - commit + - _links + - protection + - protected + - protection_url + status-check-policy: + title: Status Check Policy + description: Status Check Policy + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks + strict: + type: boolean + example: true + contexts: + type: array + example: + - continuous-integration/travis-ci + items: + type: string + checks: + type: array + items: + type: object + properties: + context: + type: string + example: continuous-integration/travis-ci + app_id: + type: integer + nullable: true + required: + - context + - app_id + contexts_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts + required: + - url + - contexts_url + - strict + - contexts + - checks + protected-branch: + title: Protected Branch + description: Branch protections protect branches + type: object + properties: + url: + type: string + format: uri + required_status_checks: + "$ref": "#/components/schemas/status-check-policy" + required_pull_request_reviews: + type: object + properties: + url: + type: string + format: uri + dismiss_stale_reviews: + type: boolean + require_code_owner_reviews: + type: boolean + required_approving_review_count: + type: integer + require_last_push_approval: + description: Whether the most recent push must be approved by someone + other than the person who pushed it. + type: boolean + default: false + dismissal_restrictions: + type: object + properties: + url: + type: string + format: uri + users_url: + type: string + format: uri + teams_url: + type: string + format: uri + users: + type: array + items: + "$ref": "#/components/schemas/simple-user" + teams: + type: array + items: + "$ref": "#/components/schemas/team" + apps: + type: array + items: + "$ref": "#/components/schemas/integration" + required: + - url + - users_url + - teams_url + - users + - teams + bypass_pull_request_allowances: + type: object + properties: + users: + type: array + items: + "$ref": "#/components/schemas/simple-user" + teams: + type: array + items: + "$ref": "#/components/schemas/team" + apps: + type: array + items: + "$ref": "#/components/schemas/integration" + required: + - users + - teams + required: + - url + required_signatures: + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + enabled: + type: boolean + example: true + required: + - url + - enabled + enforce_admins: + type: object + properties: + url: + type: string + format: uri + enabled: + type: boolean + additionalProperties: false + required: + - url + - enabled + required_linear_history: + type: object + properties: + enabled: + type: boolean + additionalProperties: false + required: + - enabled + allow_force_pushes: + type: object + properties: + enabled: + type: boolean + additionalProperties: false + required: + - enabled + allow_deletions: + type: object + properties: + enabled: + type: boolean + additionalProperties: false + required: + - enabled + restrictions: + "$ref": "#/components/schemas/branch-restriction-policy" + required_conversation_resolution: + type: object + properties: + enabled: + type: boolean + additionalProperties: false + block_creations: + type: object + properties: + enabled: + type: boolean + additionalProperties: false + required: + - enabled + lock_branch: + type: object + description: Whether to set the branch as read-only. If this is true, users + will not be able to push to the branch. + properties: + enabled: + default: false + type: boolean + additionalProperties: false + allow_fork_syncing: + type: object + description: Whether users can pull changes from upstream when the branch + is locked. Set to `true` to allow fork syncing. Set to `false` to prevent + fork syncing. + properties: + enabled: + default: false + type: boolean + additionalProperties: false + required: + - url + deployment-simple: + title: Deployment + description: A deployment created as the result of an Actions check run from + a workflow that references an environment + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example/deployments/1 + id: + description: Unique identifier of the deployment + example: 42 + type: integer + node_id: + type: string + example: MDEwOkRlcGxveW1lbnQx + task: + description: Parameter to specify a task to execute + example: deploy + type: string + original_environment: + type: string + example: staging + environment: + description: Name for the target deployment environment. + example: production + type: string + description: + type: string + example: Deploy request from hubot + nullable: true + created_at: + type: string + format: date-time + example: '2012-07-20T01:19:13Z' + updated_at: + type: string + format: date-time + example: '2012-07-20T01:19:13Z' + statuses_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example/deployments/1/statuses + repository_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example + transient_environment: + description: 'Specifies if the given environment is will no longer exist + at some point in the future. Default: false.' + example: true + type: boolean + production_environment: + description: 'Specifies if the given environment is one that end-users directly + interact with. Default: false.' + example: true + type: boolean + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + required: + - id + - node_id + - task + - environment + - description + - statuses_url + - repository_url + - url + - created_at + - updated_at + check-run: + title: CheckRun + description: A check performed on the code of a given code change + type: object + properties: + id: + description: The id of the check. + example: 21 + type: integer + format: int64 + head_sha: + description: The SHA of the commit that is being checked. + example: '009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d' + type: string + node_id: + type: string + example: MDg6Q2hlY2tSdW40 + external_id: + type: string + example: '42' + nullable: true + url: + type: string + example: https://api.github.com/repos/github/hello-world/check-runs/4 + html_url: + type: string + example: https://github.com/github/hello-world/runs/4 + nullable: true + details_url: + type: string + example: https://example.com + nullable: true + status: + description: The phase of the lifecycle that the check is currently in. + Statuses of waiting, requested, and pending are reserved for GitHub Actions + check runs. + example: queued + type: string + enum: + - queued + - in_progress + - completed + - waiting + - requested + - pending + conclusion: + type: string + example: neutral + enum: + - success + - failure + - neutral + - cancelled + - skipped + - timed_out + - action_required + nullable: true + started_at: + type: string + format: date-time + example: '2018-05-04T01:14:52Z' + nullable: true + completed_at: + type: string + format: date-time + example: '2018-05-04T01:14:52Z' + nullable: true + output: + type: object + properties: + title: + type: string + nullable: true + summary: + type: string + nullable: true + text: + type: string + nullable: true + annotations_count: + type: integer + annotations_url: + type: string + format: uri + required: + - title + - summary + - text + - annotations_count + - annotations_url + name: + description: The name of the check. + example: test-coverage + type: string + check_suite: + type: object + properties: + id: + type: integer + required: + - id + nullable: true + app: + "$ref": "#/components/schemas/nullable-integration" + pull_requests: + description: Pull requests that are open with a `head_sha` or `head_branch` + that matches the check. The returned pull requests do not necessarily + indicate pull requests that triggered the check. + type: array + items: + "$ref": "#/components/schemas/pull-request-minimal" + deployment: + "$ref": "#/components/schemas/deployment-simple" + required: + - id + - node_id + - head_sha + - name + - url + - html_url + - details_url + - status + - conclusion + - started_at + - completed_at + - external_id + - check_suite + - output + - app + - pull_requests + check-annotation: + title: Check Annotation + description: Check Annotation + type: object + properties: + path: + type: string + example: README.md + start_line: + type: integer + example: 2 + end_line: + type: integer + example: 2 + start_column: + type: integer + example: 5 + nullable: true + end_column: + type: integer + example: 10 + nullable: true + annotation_level: + type: string + example: warning + nullable: true + title: + type: string + example: Spell Checker + nullable: true + message: + type: string + example: Check your spelling for 'banaas'. + nullable: true + raw_details: + type: string + example: Do you mean 'bananas' or 'banana'? + nullable: true + blob_href: + type: string + required: + - path + - blob_href + - start_line + - end_line + - start_column + - end_column + - annotation_level + - title + - message + - raw_details + simple-commit: + title: Simple Commit + description: A commit. + type: object + properties: + id: + type: string + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + tree_id: + type: string + description: SHA for the commit's tree + message: + description: Message describing the purpose of the commit + example: 'Fix #42' + type: string + timestamp: + description: Timestamp of the commit + example: '2014-08-09T08:02:04+12:00' + format: date-time + type: string + author: + type: object + description: Information about the Git author + properties: + name: + description: Name of the commit's author + example: Monalisa Octocat + type: string + email: + description: Git email address of the commit's author + example: monalisa.octocat@example.com + type: string + format: email + required: + - name + - email + nullable: true + committer: + type: object + description: Information about the Git committer + properties: + name: + description: Name of the commit's committer + example: Monalisa Octocat + type: string + email: + description: Git email address of the commit's committer + example: monalisa.octocat@example.com + type: string + format: email + required: + - name + - email + nullable: true + required: + - id + - tree_id + - message + - timestamp + - author + - committer + check-suite: + title: CheckSuite + description: A suite of checks performed on the code of a given code change + type: object + properties: + id: + type: integer + example: 5 + format: int64 + node_id: + type: string + example: MDEwOkNoZWNrU3VpdGU1 + head_branch: + type: string + example: master + nullable: true + head_sha: + description: The SHA of the head commit that is being checked. + example: '009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d' + type: string + status: + type: string + description: The phase of the lifecycle that the check suite is currently + in. Statuses of waiting, requested, and pending are reserved for GitHub + Actions check suites. + example: completed + enum: + - queued + - in_progress + - completed + - waiting + - requested + - pending + nullable: true + conclusion: + type: string + example: neutral + enum: + - success + - failure + - neutral + - cancelled + - skipped + - timed_out + - action_required + - startup_failure + - stale + - null + nullable: true + url: + type: string + example: https://api.github.com/repos/github/hello-world/check-suites/5 + nullable: true + before: + type: string + example: 146e867f55c26428e5f9fade55a9bbf5e95a7912 + nullable: true + after: + type: string + example: d6fde92930d4715a2b49857d24b940956b26d2d3 + nullable: true + pull_requests: + type: array + items: + "$ref": "#/components/schemas/pull-request-minimal" + nullable: true + app: + "$ref": "#/components/schemas/nullable-integration" + repository: + "$ref": "#/components/schemas/minimal-repository" + created_at: + type: string + format: date-time + nullable: true + updated_at: + type: string + format: date-time + nullable: true + head_commit: + "$ref": "#/components/schemas/simple-commit" + latest_check_runs_count: + type: integer + check_runs_url: + type: string + rerequestable: + type: boolean + runs_rerequestable: + type: boolean + required: + - id + - node_id + - head_branch + - status + - conclusion + - head_sha + - url + - before + - after + - created_at + - updated_at + - app + - head_commit + - repository + - latest_check_runs_count + - check_runs_url + - pull_requests + check-suite-preference: + title: Check Suite Preference + description: Check suite configuration preferences for a repository. + type: object + required: + - preferences + - repository + properties: + preferences: + type: object + properties: + auto_trigger_checks: + type: array + items: + type: object + properties: + app_id: + type: integer + setting: + type: boolean + required: + - app_id + - setting + repository: + "$ref": "#/components/schemas/minimal-repository" + code-scanning-alert-items: + type: object + properties: + number: + "$ref": "#/components/schemas/alert-number" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/alert-updated-at" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + instances_url: + "$ref": "#/components/schemas/alert-instances-url" + state: + "$ref": "#/components/schemas/code-scanning-alert-state" + fixed_at: + "$ref": "#/components/schemas/alert-fixed-at" + dismissed_by: + "$ref": "#/components/schemas/nullable-simple-user" + dismissed_at: + "$ref": "#/components/schemas/alert-dismissed-at" + dismissed_reason: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + rule: + "$ref": "#/components/schemas/code-scanning-alert-rule-summary" + tool: + "$ref": "#/components/schemas/code-scanning-analysis-tool" + most_recent_instance: + "$ref": "#/components/schemas/code-scanning-alert-instance" + dismissal_approved_by: + "$ref": "#/components/schemas/nullable-simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + required: + - number + - created_at + - url + - html_url + - instances_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + - most_recent_instance + code-scanning-alert-rule: + type: object + properties: + id: + nullable: true + type: string + description: A unique identifier for the rule used to detect the alert. + name: + type: string + description: The name of the rule used to detect the alert. + severity: + nullable: true + type: string + description: The severity of the alert. + enum: + - none + - note + - warning + - error + security_severity_level: + nullable: true + type: string + description: The security severity of the alert. + enum: + - low + - medium + - high + - critical + description: + type: string + description: A short description of the rule used to detect the alert. + full_description: + type: string + description: A description of the rule used to detect the alert. + tags: + nullable: true + type: array + description: A set of tags applicable for the rule. + items: + type: string + help: + nullable: true + type: string + description: Detailed documentation for the rule as GitHub Flavored Markdown. + help_uri: + nullable: true + type: string + description: A link to the documentation for the rule used to detect the + alert. + code-scanning-alert: + type: object + properties: + number: + "$ref": "#/components/schemas/alert-number" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/alert-updated-at" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + instances_url: + "$ref": "#/components/schemas/alert-instances-url" + state: + "$ref": "#/components/schemas/code-scanning-alert-state" + fixed_at: + "$ref": "#/components/schemas/alert-fixed-at" + dismissed_by: + "$ref": "#/components/schemas/nullable-simple-user" + dismissed_at: + "$ref": "#/components/schemas/alert-dismissed-at" + dismissed_reason: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + rule: + "$ref": "#/components/schemas/code-scanning-alert-rule" + tool: + "$ref": "#/components/schemas/code-scanning-analysis-tool" + most_recent_instance: + "$ref": "#/components/schemas/code-scanning-alert-instance" + dismissal_approved_by: + "$ref": "#/components/schemas/nullable-simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + required: + - number + - created_at + - url + - html_url + - instances_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + - most_recent_instance + code-scanning-alert-set-state: + description: Sets the state of the code scanning alert. You must provide `dismissed_reason` + when you set the state to `dismissed`. + type: string + enum: + - open + - dismissed + code-scanning-alert-create-request: + type: boolean + description: If `true`, attempt to create an alert dismissal request. + code-scanning-alert-assignees: + description: The list of users to assign to the code scanning alert. An empty + array unassigns all previous assignees from the alert. + type: array + items: + type: string + code-scanning-autofix-status: + type: string + description: The status of an autofix. + enum: + - pending + - error + - success + - outdated + code-scanning-autofix-description: + type: string + description: The description of an autofix. + nullable: true + code-scanning-autofix-started-at: + type: string + description: 'The start time of an autofix in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + code-scanning-autofix: + type: object + properties: + status: + "$ref": "#/components/schemas/code-scanning-autofix-status" + description: + "$ref": "#/components/schemas/code-scanning-autofix-description" + started_at: + "$ref": "#/components/schemas/code-scanning-autofix-started-at" + required: + - status + - description + - started_at + code-scanning-autofix-commits: + description: Commit an autofix for a code scanning alert + type: object + properties: + target_ref: + description: The Git reference of target branch for the commit. Branch needs + to already exist. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" + in the Git documentation. + type: string + message: + description: Commit message to be used. + type: string + nullable: true + code-scanning-autofix-commits-response: + type: object + properties: + target_ref: + type: string + description: The Git reference of target branch for the commit. For more + information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" + in the Git documentation. + sha: + type: string + description: SHA of commit with autofix. + code-scanning-alert-instance-state: + type: string + description: State of a code scanning alert instance. + nullable: true + enum: + - open + - fixed + code-scanning-alert-instance-list: + type: object + properties: + ref: + "$ref": "#/components/schemas/code-scanning-ref" + analysis_key: + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + environment: + "$ref": "#/components/schemas/code-scanning-alert-environment" + category: + "$ref": "#/components/schemas/code-scanning-analysis-category" + state: + "$ref": "#/components/schemas/code-scanning-alert-instance-state" + commit_sha: + type: string + message: + type: object + properties: + text: + type: string + location: + "$ref": "#/components/schemas/code-scanning-alert-location" + html_url: + type: string + classifications: + type: array + description: |- + Classifications that have been applied to the file that triggered the alert. + For example identifying it as documentation, or a generated file. + items: + "$ref": "#/components/schemas/code-scanning-alert-classification" + code-scanning-analysis-sarif-id: + type: string + description: An identifier for the upload. + example: 6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53 + code-scanning-analysis-commit-sha: + description: The SHA of the commit to which the analysis you are uploading relates. + type: string + minLength: 40 + maxLength: 40 + pattern: "^[0-9a-fA-F]+$" + code-scanning-analysis-environment: + type: string + description: Identifies the variable values associated with the environment + in which this analysis was performed. + code-scanning-analysis-created-at: + type: string + description: 'The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + format: date-time + readOnly: true + code-scanning-analysis-url: + type: string + description: The REST API URL of the analysis resource. + format: uri + readOnly: true + code-scanning-analysis: + type: object + properties: + ref: + "$ref": "#/components/schemas/code-scanning-ref" + commit_sha: + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" + analysis_key: + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + environment: + "$ref": "#/components/schemas/code-scanning-analysis-environment" + category: + "$ref": "#/components/schemas/code-scanning-analysis-category" + error: + type: string + example: error reading field xyz + created_at: + "$ref": "#/components/schemas/code-scanning-analysis-created-at" + results_count: + type: integer + description: The total number of results in the analysis. + rules_count: + type: integer + description: The total number of rules used in the analysis. + id: + type: integer + description: Unique identifier for this analysis. + url: + "$ref": "#/components/schemas/code-scanning-analysis-url" + sarif_id: + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + tool: + "$ref": "#/components/schemas/code-scanning-analysis-tool" + deletable: + type: boolean + warning: + type: string + description: Warning generated when processing the analysis + example: 123 results were ignored + required: + - ref + - commit_sha + - analysis_key + - environment + - error + - created_at + - results_count + - rules_count + - id + - url + - sarif_id + - tool + - deletable + - warning + code-scanning-analysis-deletion: + title: Analysis deletion + description: Successful deletion of a code scanning analysis + type: object + properties: + next_analysis_url: + type: string + description: Next deletable analysis in chain, without last analysis deletion + confirmation + format: uri + readOnly: true + nullable: true + confirm_delete_url: + type: string + description: Next deletable analysis in chain, with last analysis deletion + confirmation + format: uri + readOnly: true + nullable: true + required: + - next_analysis_url + - confirm_delete_url + code-scanning-codeql-database: + title: CodeQL Database + description: A CodeQL database. + type: object + properties: + id: + type: integer + description: The ID of the CodeQL database. + name: + type: string + description: The name of the CodeQL database. + language: + type: string + description: The language of the CodeQL database. + uploader: + "$ref": "#/components/schemas/simple-user" + content_type: + type: string + description: The MIME type of the CodeQL database file. + size: + type: integer + description: The size of the CodeQL database file in bytes. + created_at: + type: string + format: date-time + description: The date and time at which the CodeQL database was created, + in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + updated_at: + type: string + format: date-time + description: The date and time at which the CodeQL database was last updated, + in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + url: + type: string + format: uri + description: The URL at which to download the CodeQL database. The `Accept` + header must be set to the value of the `content_type` property. + commit_oid: + type: string + description: The commit SHA of the repository at the time the CodeQL database + was created. + nullable: true + required: + - id + - name + - language + - uploader + - content_type + - size + - created_at + - updated_at + - url + code-scanning-variant-analysis-language: + type: string + description: The language targeted by the CodeQL query + enum: + - actions + - cpp + - csharp + - go + - java + - javascript + - python + - ruby + - rust + - swift + code-scanning-variant-analysis-repository: + title: Repository Identifier + description: Repository Identifier + type: object + properties: + id: + type: integer + example: 1296269 + description: A unique identifier of the repository. + name: + type: string + example: Hello-World + description: The name of the repository. + full_name: + type: string + example: octocat/Hello-World + description: The full, globally unique, name of the repository. + private: + type: boolean + description: Whether the repository is private. + stargazers_count: + type: integer + example: 80 + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + required: + - full_name + - id + - name + - private + - stargazers_count + - updated_at + code-scanning-variant-analysis-status: + type: string + description: The new status of the CodeQL variant analysis repository task. + enum: + - pending + - in_progress + - succeeded + - failed + - canceled + - timed_out + code-scanning-variant-analysis-skipped-repo-group: + type: object + properties: + repository_count: + type: integer + description: The total number of repositories that were skipped for this + reason. + example: 2 + repositories: + type: array + description: A list of repositories that were skipped. This list may not + include all repositories that were skipped. This is only available when + the repository was found and the user has access to it. + items: + "$ref": "#/components/schemas/code-scanning-variant-analysis-repository" + required: + - repository_count + - repositories + code-scanning-variant-analysis: + title: Variant Analysis + description: A run of a CodeQL query against one or more repositories. + type: object + properties: + id: + type: integer + description: The ID of the variant analysis. + controller_repo: + "$ref": "#/components/schemas/simple-repository" + actor: + "$ref": "#/components/schemas/simple-user" + query_language: + "$ref": "#/components/schemas/code-scanning-variant-analysis-language" + query_pack_url: + type: string + description: The download url for the query pack. + created_at: + type: string + format: date-time + description: The date and time at which the variant analysis was created, + in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + updated_at: + type: string + format: date-time + description: The date and time at which the variant analysis was last updated, + in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + completed_at: + type: string + format: date-time + nullable: true + description: The date and time at which the variant analysis was completed, + in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the variant + analysis has not yet completed or this information is not available. + status: + type: string + enum: + - in_progress + - succeeded + - failed + - cancelled + actions_workflow_run_id: + type: integer + description: The GitHub Actions workflow run used to execute this variant + analysis. This is only available if the workflow run has started. + failure_reason: + type: string + enum: + - no_repos_queried + - actions_workflow_run_failed + - internal_error + description: The reason for a failure of the variant analysis. This is only + available if the variant analysis has failed. + scanned_repositories: + type: array + items: + type: object + properties: + repository: + "$ref": "#/components/schemas/code-scanning-variant-analysis-repository" + analysis_status: + "$ref": "#/components/schemas/code-scanning-variant-analysis-status" + result_count: + type: integer + description: The number of results in the case of a successful analysis. + This is only available for successful analyses. + artifact_size_in_bytes: + type: integer + description: The size of the artifact. This is only available for + successful analyses. + failure_message: + type: string + description: The reason of the failure of this repo task. This is + only available if the repository task has failed. + required: + - repository + - analysis_status + skipped_repositories: + type: object + description: Information about repositories that were skipped from processing. + This information is only available to the user that initiated the variant + analysis. + properties: + access_mismatch_repos: + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" + not_found_repos: + type: object + properties: + repository_count: + type: integer + description: The total number of repositories that were skipped + for this reason. + example: 2 + repository_full_names: + type: array + description: A list of full repository names that were skipped. + This list may not include all repositories that were skipped. + items: + type: string + required: + - repository_count + - repository_full_names + no_codeql_db_repos: + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" + over_limit_repos: + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" + required: + - access_mismatch_repos + - not_found_repos + - no_codeql_db_repos + - over_limit_repos + required: + - id + - controller_repo + - actor + - query_language + - query_pack_url + - status + code-scanning-variant-analysis-repo-task: + type: object + properties: + repository: + "$ref": "#/components/schemas/simple-repository" + analysis_status: + "$ref": "#/components/schemas/code-scanning-variant-analysis-status" + artifact_size_in_bytes: + type: integer + description: The size of the artifact. This is only available for successful + analyses. + result_count: + type: integer + description: The number of results in the case of a successful analysis. + This is only available for successful analyses. + failure_message: + type: string + description: The reason of the failure of this repo task. This is only available + if the repository task has failed. + database_commit_sha: + type: string + description: The SHA of the commit the CodeQL database was built against. + This is only available for successful analyses. + source_location_prefix: + type: string + description: The source location prefix to use. This is only available for + successful analyses. + artifact_url: + type: string + description: The URL of the artifact. This is only available for successful + analyses. + required: + - repository + - analysis_status + code-scanning-default-setup: + description: Configuration for code scanning default setup. + type: object + properties: + state: + description: Code scanning default setup has been configured or not. + type: string + enum: + - configured + - not-configured + languages: + description: Languages to be analyzed. + type: array + items: + type: string + enum: + - actions + - c-cpp + - csharp + - go + - java-kotlin + - javascript-typescript + - javascript + - python + - ruby + - typescript + - swift + runner_type: + description: Runner type to be used. + nullable: true + type: string + enum: + - standard + - labeled + runner_label: + description: Runner label to be used if the runner type is labeled. + nullable: true + type: string + example: code-scanning + query_suite: + description: CodeQL query suite to be used. + type: string + enum: + - default + - extended + threat_model: + description: Threat model to be used for code scanning analysis. Use `remote` + to analyze only network sources and `remote_and_local` to include local + sources like filesystem access, command-line arguments, database reads, + environment variable and standard input. + type: string + enum: + - remote + - remote_and_local + updated_at: + description: Timestamp of latest configuration update. + nullable: true + type: string + format: date-time + example: '2023-12-06T14:20:20.000Z' + schedule: + description: The frequency of the periodic analysis. + nullable: true + type: string + enum: + - weekly + code-scanning-default-setup-update: + description: Configuration for code scanning default setup. + type: object + properties: + state: + description: The desired state of code scanning default setup. + type: string + enum: + - configured + - not-configured + runner_type: + description: Runner type to be used. + type: string + enum: + - standard + - labeled + runner_label: + nullable: true + description: Runner label to be used if the runner type is labeled. + type: string + example: code-scanning + query_suite: + description: CodeQL query suite to be used. + type: string + enum: + - default + - extended + threat_model: + description: Threat model to be used for code scanning analysis. Use `remote` + to analyze only network sources and `remote_and_local` to include local + sources like filesystem access, command-line arguments, database reads, + environment variable and standard input. + type: string + enum: + - remote + - remote_and_local + languages: + description: CodeQL languages to be analyzed. + type: array + items: + type: string + enum: + - actions + - c-cpp + - csharp + - go + - java-kotlin + - javascript-typescript + - python + - ruby + - swift + additionalProperties: false + code-scanning-default-setup-update-response: + description: |- + You can use `run_url` to track the status of the run. This includes a property status and conclusion. + You should not rely on this always being an actions workflow run object. + type: object + properties: + run_id: + description: ID of the corresponding run. + type: integer + run_url: + description: URL of the corresponding run. + type: string + code-scanning-ref-full: + type: string + description: |- + The full Git reference, formatted as `refs/heads/`, + `refs/tags/`, `refs/pull//merge`, or `refs/pull//head`. + pattern: "^refs/(heads|tags|pull)/.*$" + example: refs/heads/main + code-scanning-analysis-sarif-file: + description: A Base64 string representing the SARIF file to upload. You must + first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) + and then translate the contents of the file into a Base64 encoding string. + For more information, see "[SARIF support for code scanning](https://docs.github.com/code-security/secure-coding/sarif-support-for-code-scanning)." + type: string + code-scanning-sarifs-receipt: + type: object + properties: + id: + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + url: + type: string + description: The REST API URL for checking the status of the upload. + format: uri + readOnly: true + code-scanning-sarifs-status: + type: object + properties: + processing_status: + type: string + enum: + - pending + - complete + - failed + description: "`pending` files have not yet been processed, while `complete` + means results from the SARIF have been stored. `failed` files have either + not been processed at all, or could only be partially processed." + analyses_url: + type: string + description: The REST API URL for getting the analyses associated with the + upload. + format: uri + readOnly: true + nullable: true + errors: + type: array + items: + type: string + description: Any errors that ocurred during processing of the delivery. + readOnly: true + nullable: true + code-security-configuration-for-repository: + type: object + description: Code security configuration associated with a repository and attachment + status + properties: + status: + type: string + description: The attachment status of the code security configuration on + the repository. + enum: + - attached + - attaching + - detached + - removed + - enforced + - failed + - updating + - removed_by_enterprise + configuration: + "$ref": "#/components/schemas/code-security-configuration" + codeowners-errors: + title: CODEOWNERS errors + description: A list of errors found in a repo's CODEOWNERS file + type: object + properties: + errors: + type: array + items: + type: object + properties: + line: + description: The line number where this errors occurs. + type: integer + example: 7 + column: + description: The column number where this errors occurs. + type: integer + example: 3 + source: + description: The contents of the line where the error occurs. + type: string + example: "* user" + kind: + description: The type of error. + type: string + example: Invalid owner + suggestion: + description: Suggested action to fix the error. This will usually + be `null`, but is provided for some common errors. + type: string + nullable: true + example: The pattern `/` will never match anything, did you mean `*` + instead? + message: + description: A human-readable description of the error, combining + information from multiple fields, laid out for display in a monospaced + typeface (for example, a command-line setting). + type: string + example: |- + Invalid owner on line 7: + + * user + ^ + path: + description: The path of the file where the error occured. + type: string + example: ".github/CODEOWNERS" + required: + - line + - column + - kind + - message + - path + required: + - errors + codespace-machine: + type: object + title: Codespace machine + description: A description of the machine powering a codespace. + properties: + name: + type: string + description: The name of the machine. + example: standardLinux + display_name: + type: string + description: The display name of the machine includes cores, memory, and + storage. + example: 4 cores, 16 GB RAM, 64 GB storage + operating_system: + type: string + description: The operating system of the machine. + example: linux + storage_in_bytes: + type: integer + description: How much storage is available to the codespace. + example: 68719476736 + memory_in_bytes: + type: integer + description: How much memory is available to the codespace. + example: 17179869184 + cpus: + type: integer + description: How many cores are available to the codespace. + example: 4 + prebuild_availability: + type: string + description: Whether a prebuild is currently available when creating a codespace + for this machine and repository. If a branch was not specified as a ref, + the default branch will be assumed. Value will be "null" if prebuilds + are not supported or prebuild availability could not be determined. Value + will be "none" if no prebuild is available. Latest values "ready" and + "in_progress" indicate the prebuild availability status. + example: ready + enum: + - none + - ready + - in_progress + nullable: true + required: + - name + - display_name + - operating_system + - storage_in_bytes + - memory_in_bytes + - cpus + - prebuild_availability + codespaces-permissions-check-for-devcontainer: + title: Codespaces Permissions Check + description: Permission check result for a given devcontainer config. + type: object + properties: + accepted: + description: Whether the user has accepted the permissions defined by the + devcontainer config + example: true + type: boolean + required: + - accepted + repo-codespaces-secret: + title: Codespaces Secret + description: Set repository secrets for GitHub Codespaces. + type: object + properties: + name: + description: The name of the secret. + example: SECRET_TOKEN + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - name + - created_at + - updated_at + collaborator: + title: Collaborator + description: Collaborator + type: object + properties: + login: + type: string + example: octocat + id: + type: integer + format: int64 + example: 1 + email: + nullable: true + type: string + name: + nullable: true + type: string + node_id: + type: string + example: MDQ6VXNlcjE= + avatar_url: + type: string + format: uri + example: https://github.com/images/error/octocat_happy.gif + gravatar_id: + type: string + example: 41d064eb2195891e12d0413f63227ea7 + nullable: true + url: + type: string + format: uri + example: https://api.github.com/users/octocat + html_url: + type: string + format: uri + example: https://github.com/octocat + followers_url: + type: string + format: uri + example: https://api.github.com/users/octocat/followers + following_url: + type: string + example: https://api.github.com/users/octocat/following{/other_user} + gists_url: + type: string + example: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: + type: string + example: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: + type: string + format: uri + example: https://api.github.com/users/octocat/subscriptions + organizations_url: + type: string + format: uri + example: https://api.github.com/users/octocat/orgs + repos_url: + type: string + format: uri + example: https://api.github.com/users/octocat/repos + events_url: + type: string + example: https://api.github.com/users/octocat/events{/privacy} + received_events_url: + type: string + format: uri + example: https://api.github.com/users/octocat/received_events + type: + type: string + example: User + site_admin: + type: boolean + permissions: + type: object + properties: + pull: + type: boolean + triage: + type: boolean + push: + type: boolean + maintain: + type: boolean + admin: + type: boolean + required: + - pull + - push + - admin + role_name: + type: string + example: admin + user_view_type: + type: string + example: public + 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 + - role_name + repository-invitation: + title: Repository Invitation + description: Repository invitations let you manage who you collaborate with. + type: object + properties: + id: + description: Unique identifier of the repository invitation. + example: 42 + type: integer + format: int64 + repository: + "$ref": "#/components/schemas/minimal-repository" + invitee: + "$ref": "#/components/schemas/nullable-simple-user" + inviter: + "$ref": "#/components/schemas/nullable-simple-user" + permissions: + description: The permission associated with the invitation. + example: read + type: string + enum: + - read + - write + - admin + - triage + - maintain + created_at: + type: string + format: date-time + example: '2016-06-13T14:52:50-05:00' + expired: + description: Whether or not the invitation has expired + type: boolean + url: + description: URL for the repository invitation + example: https://api.github.com/user/repository-invitations/1 + type: string + html_url: + type: string + example: https://github.com/octocat/Hello-World/invitations + node_id: + type: string + required: + - id + - node_id + - permissions + - inviter + - invitee + - repository + - url + - html_url + - created_at + nullable-collaborator: + title: Collaborator + description: Collaborator + type: object + properties: + login: + type: string + example: octocat + id: + type: integer + format: int64 + example: 1 + email: + nullable: true + type: string + name: + nullable: true + type: string + node_id: + type: string + example: MDQ6VXNlcjE= + avatar_url: + type: string + format: uri + example: https://github.com/images/error/octocat_happy.gif + gravatar_id: + type: string + example: 41d064eb2195891e12d0413f63227ea7 + nullable: true + url: + type: string + format: uri + example: https://api.github.com/users/octocat + html_url: + type: string + format: uri + example: https://github.com/octocat + followers_url: + type: string + format: uri + example: https://api.github.com/users/octocat/followers + following_url: + type: string + example: https://api.github.com/users/octocat/following{/other_user} + gists_url: + type: string + example: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: + type: string + example: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: + type: string + format: uri + example: https://api.github.com/users/octocat/subscriptions + organizations_url: + type: string + format: uri + example: https://api.github.com/users/octocat/orgs + repos_url: + type: string + format: uri + example: https://api.github.com/users/octocat/repos + events_url: + type: string + example: https://api.github.com/users/octocat/events{/privacy} + received_events_url: + type: string + format: uri + example: https://api.github.com/users/octocat/received_events + type: + type: string + example: User + site_admin: + type: boolean + permissions: + type: object + properties: + pull: + type: boolean + triage: + type: boolean + push: + type: boolean + maintain: + type: boolean + admin: + type: boolean + required: + - pull + - push + - admin + role_name: + type: string + example: admin + user_view_type: + type: string + example: public + 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 + - role_name + nullable: true + repository-collaborator-permission: + title: Repository Collaborator Permission + description: Repository Collaborator Permission + type: object + properties: + permission: + type: string + role_name: + type: string + example: admin + user: + "$ref": "#/components/schemas/nullable-collaborator" + required: + - permission + - role_name + - user + commit-comment: + title: Commit Comment + description: Commit Comment + type: object + properties: + html_url: + type: string + format: uri + url: + type: string + format: uri + id: + type: integer + node_id: + type: string + body: + type: string + path: + type: string + nullable: true + position: + type: integer + nullable: true + line: + type: integer + nullable: true + commit_id: + type: string + user: + "$ref": "#/components/schemas/nullable-simple-user" + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + author_association: + "$ref": "#/components/schemas/author-association" + reactions: + "$ref": "#/components/schemas/reaction-rollup" + required: + - url + - html_url + - id + - node_id + - user + - position + - line + - path + - commit_id + - body + - author_association + - created_at + - updated_at + reaction: + title: Reaction + description: Reactions to conversations provide a way to help people express + their feelings more simply and effectively. + type: object + properties: + id: + type: integer + example: 1 + node_id: + type: string + example: MDg6UmVhY3Rpb24x + user: + "$ref": "#/components/schemas/nullable-simple-user" + content: + description: The reaction to use + example: heart + type: string + enum: + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - rocket + - eyes + created_at: + type: string + format: date-time + example: '2016-05-20T20:09:31Z' + required: + - id + - node_id + - user + - content + - created_at + branch-short: + title: Branch Short + description: Branch Short + type: object + properties: + name: + type: string + commit: + type: object + properties: + sha: + type: string + url: + type: string + required: + - sha + - url + protected: + type: boolean + required: + - name + - commit + - protected + simple-commit-status: + title: Simple Commit Status + type: object + properties: + description: + type: string + nullable: true + id: + type: integer + node_id: + type: string + state: + type: string + context: + type: string + target_url: + type: string + format: uri + nullable: true + required: + type: boolean + nullable: true + avatar_url: + type: string + nullable: true + format: uri + url: + type: string + format: uri + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - description + - id + - node_id + - state + - context + - target_url + - avatar_url + - url + - created_at + - updated_at + combined-commit-status: + title: Combined Commit Status + description: Combined Commit Status + type: object + properties: + state: + type: string + statuses: + type: array + items: + "$ref": "#/components/schemas/simple-commit-status" + sha: + type: string + total_count: + type: integer + repository: + "$ref": "#/components/schemas/minimal-repository" + commit_url: + type: string + format: uri + url: + type: string + format: uri + required: + - state + - sha + - total_count + - statuses + - repository + - commit_url + - url + status: + title: Status + description: The status of a commit. + type: object + properties: + url: + type: string + avatar_url: + type: string + nullable: true + id: + type: integer + node_id: + type: string + state: + type: string + description: + type: string + nullable: true + target_url: + type: string + nullable: true + context: + type: string + created_at: + type: string + updated_at: + type: string + creator: + "$ref": "#/components/schemas/nullable-simple-user" + required: + - url + - avatar_url + - id + - node_id + - state + - description + - target_url + - context + - created_at + - updated_at + - creator + nullable-code-of-conduct-simple: + title: Code Of Conduct Simple + description: Code of Conduct Simple + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/github/docs/community/code_of_conduct + key: + type: string + example: citizen_code_of_conduct + name: + type: string + example: Citizen Code of Conduct + html_url: + type: string + nullable: true + format: uri + example: https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + required: + - url + - key + - name + - html_url + nullable: true + nullable-community-health-file: + title: Community Health File + type: object + properties: + url: + type: string + format: uri + html_url: + type: string + format: uri + required: + - url + - html_url + nullable: true + community-profile: + title: Community Profile + description: Community Profile + type: object + properties: + health_percentage: + type: integer + example: 100 + description: + type: string + example: My first repository on GitHub! + nullable: true + documentation: + type: string + example: example.com + nullable: true + files: + type: object + properties: + code_of_conduct: + "$ref": "#/components/schemas/nullable-code-of-conduct-simple" + code_of_conduct_file: + "$ref": "#/components/schemas/nullable-community-health-file" + license: + "$ref": "#/components/schemas/nullable-license-simple" + contributing: + "$ref": "#/components/schemas/nullable-community-health-file" + readme: + "$ref": "#/components/schemas/nullable-community-health-file" + issue_template: + "$ref": "#/components/schemas/nullable-community-health-file" + pull_request_template: + "$ref": "#/components/schemas/nullable-community-health-file" + required: + - code_of_conduct + - code_of_conduct_file + - license + - contributing + - readme + - issue_template + - pull_request_template + updated_at: + type: string + format: date-time + example: '2017-02-28T19:09:29Z' + nullable: true + content_reports_enabled: + type: boolean + example: true + required: + - health_percentage + - description + - documentation + - files + - updated_at + commit-comparison: + title: Commit Comparison + description: Commit Comparison + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/compare/master...topic + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/compare/master...topic + permalink_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17 + diff_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/compare/master...topic.diff + patch_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/compare/master...topic.patch + base_commit: + "$ref": "#/components/schemas/commit" + merge_base_commit: + "$ref": "#/components/schemas/commit" + status: + type: string + enum: + - diverged + - ahead + - behind + - identical + example: ahead + ahead_by: + type: integer + example: 4 + behind_by: + type: integer + example: 5 + total_commits: + type: integer + example: 6 + commits: + type: array + items: + "$ref": "#/components/schemas/commit" + files: + type: array + items: + "$ref": "#/components/schemas/diff-entry" + required: + - url + - html_url + - permalink_url + - diff_url + - patch_url + - base_commit + - merge_base_commit + - status + - ahead_by + - behind_by + - total_commits + - commits + content-tree: + title: Content Tree + description: Content Tree + type: object + properties: + type: + type: string + size: + type: integer + name: + type: string + path: + type: string + sha: + type: string + content: + type: string + url: + type: string + format: uri + git_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + download_url: + type: string + format: uri + nullable: true + entries: + type: array + items: + type: object + properties: + type: + type: string + size: + type: integer + name: + type: string + path: + type: string + sha: + type: string + url: + type: string + format: uri + git_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + download_url: + type: string + format: uri + nullable: true + _links: + type: object + properties: + git: + type: string + format: uri + nullable: true + html: + type: string + format: uri + nullable: true + self: + type: string + format: uri + required: + - git + - html + - self + required: + - _links + - git_url + - html_url + - download_url + - name + - path + - sha + - size + - type + - url + encoding: + type: string + _links: + type: object + properties: + git: + type: string + format: uri + nullable: true + html: + type: string + format: uri + nullable: true + self: + type: string + format: uri + required: + - git + - html + - self + required: + - _links + - git_url + - html_url + - download_url + - name + - path + - sha + - size + - type + - url + content-directory: + title: Content Directory + description: A list of directory items + type: array + items: + type: object + properties: + type: + type: string + enum: + - dir + - file + - submodule + - symlink + size: + type: integer + name: + type: string + path: + type: string + content: + type: string + sha: + type: string + url: + type: string + format: uri + git_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + download_url: + type: string + format: uri + nullable: true + _links: + type: object + properties: + git: + type: string + format: uri + nullable: true + html: + type: string + format: uri + nullable: true + self: + type: string + format: uri + required: + - git + - html + - self + required: + - _links + - git_url + - html_url + - download_url + - name + - path + - sha + - size + - type + - url + content-file: + title: Content File + description: Content File + type: object + properties: + type: + type: string + enum: + - file + encoding: + type: string + size: + type: integer + name: + type: string + path: + type: string + content: + type: string + sha: + type: string + url: + type: string + format: uri + git_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + download_url: + type: string + format: uri + nullable: true + _links: + type: object + properties: + git: + type: string + format: uri + nullable: true + html: + type: string + format: uri + nullable: true + self: + type: string + format: uri + required: + - git + - html + - self + target: + type: string + example: '"actual/actual.md"' + submodule_git_url: + type: string + example: '"git://example.com/defunkt/dotjs.git"' + required: + - _links + - git_url + - html_url + - download_url + - name + - path + - sha + - size + - type + - url + - content + - encoding + content-symlink: + title: Symlink Content + description: An object describing a symlink + type: object + properties: + type: + type: string + enum: + - symlink + target: + type: string + size: + type: integer + name: + type: string + path: + type: string + sha: + type: string + url: + type: string + format: uri + git_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + download_url: + type: string + format: uri + nullable: true + _links: + type: object + properties: + git: + type: string + format: uri + nullable: true + html: + type: string + format: uri + nullable: true + self: + type: string + format: uri + required: + - git + - html + - self + required: + - _links + - git_url + - html_url + - download_url + - name + - path + - sha + - size + - type + - url + - target + content-submodule: + title: Submodule Content + description: An object describing a submodule + type: object + properties: + type: + type: string + enum: + - submodule + submodule_git_url: + type: string + format: uri + size: + type: integer + name: + type: string + path: + type: string + sha: + type: string + url: + type: string + format: uri + git_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + download_url: + type: string + format: uri + nullable: true + _links: + type: object + properties: + git: + type: string + format: uri + nullable: true + html: + type: string + format: uri + nullable: true + self: + type: string + format: uri + required: + - git + - html + - self + required: + - _links + - git_url + - html_url + - download_url + - name + - path + - sha + - size + - type + - url + - submodule_git_url + file-commit: + title: File Commit + description: File Commit + type: object + required: + - content + - commit + properties: + content: + type: object + properties: + name: + type: string + path: + type: string + sha: + type: string + size: + type: integer + url: + type: string + html_url: + type: string + git_url: + type: string + download_url: + type: string + type: + type: string + _links: + type: object + properties: + self: + type: string + git: + type: string + html: + type: string + nullable: true + commit: + type: object + properties: + sha: + type: string + node_id: + type: string + url: + type: string + html_url: + type: string + author: + type: object + properties: + date: + type: string + name: + type: string + email: + type: string + committer: + type: object + properties: + date: + type: string + name: + type: string + email: + type: string + message: + type: string + tree: + type: object + properties: + url: + type: string + sha: + type: string + parents: + type: array + items: + type: object + properties: + url: + type: string + html_url: + type: string + sha: + type: string + verification: + type: object + properties: + verified: + type: boolean + reason: + type: string + signature: + type: string + nullable: true + payload: + type: string + nullable: true + verified_at: + type: string + nullable: true + secret-scanning-push-protection-bypass-placeholder-id: + description: The ID of the push protection bypass placeholder. This value is + returned on any push protected routes. + type: string + repository-rule-violation-error: + description: Repository rule violation was detected + type: object + properties: + message: + type: string + documentation_url: + type: string + status: + type: string + metadata: + type: object + properties: + secret_scanning: + type: object + properties: + bypass_placeholders: + type: array + items: + type: object + properties: + placeholder_id: + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-placeholder-id" + token_type: + type: string + contributor: + title: Contributor + description: Contributor + type: object + properties: + login: + type: string + id: + type: integer + node_id: + type: string + avatar_url: + type: string + format: uri + gravatar_id: + type: string + nullable: true + url: + type: string + format: uri + html_url: + type: string + format: uri + followers_url: + type: string + format: uri + following_url: + type: string + gists_url: + type: string + starred_url: + type: string + subscriptions_url: + type: string + format: uri + organizations_url: + type: string + format: uri + repos_url: + type: string + format: uri + events_url: + type: string + received_events_url: + type: string + format: uri + type: + type: string + site_admin: + type: boolean + contributions: + type: integer + email: + type: string + name: + type: string + user_view_type: + type: string + required: + - contributions + - type + dependabot-alert: + type: object + description: A Dependabot alert. + properties: + number: + "$ref": "#/components/schemas/alert-number" + state: + type: string + description: The state of the Dependabot alert. + readOnly: true + enum: + - auto_dismissed + - dismissed + - fixed + - open + dependency: + type: object + description: Details for the vulnerable dependency. + readOnly: true + properties: + package: + "$ref": "#/components/schemas/dependabot-alert-package" + manifest_path: + type: string + description: The full path to the dependency manifest file, relative + to the root of the repository. + readOnly: true + scope: + type: string + description: The execution scope of the vulnerable dependency. + readOnly: true + nullable: true + enum: + - development + - runtime + relationship: + type: string + description: | + The vulnerable dependency's relationship to your project. + + > [!NOTE] + > We are rolling out support for dependency relationship across ecosystems. This value will be "unknown" for all dependencies in unsupported ecosystems. + readOnly: true + nullable: true + enum: + - unknown + - direct + - transitive + security_advisory: + "$ref": "#/components/schemas/dependabot-alert-security-advisory" + security_vulnerability: + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/alert-updated-at" + dismissed_at: + "$ref": "#/components/schemas/alert-dismissed-at" + dismissed_by: + "$ref": "#/components/schemas/nullable-simple-user" + dismissed_reason: + type: string + description: The reason that the alert was dismissed. + nullable: true + enum: + - fix_started + - inaccurate + - no_bandwidth + - not_used + - tolerable_risk + dismissed_comment: + type: string + description: An optional comment associated with the alert's dismissal. + nullable: true + maxLength: 280 + fixed_at: + "$ref": "#/components/schemas/alert-fixed-at" + auto_dismissed_at: + "$ref": "#/components/schemas/alert-auto-dismissed-at" + dismissal_request: + "$ref": "#/components/schemas/dependabot-alert-dismissal-request-simple" + required: + - number + - state + - dependency + - security_advisory + - security_vulnerability + - url + - html_url + - created_at + - updated_at + - dismissed_at + - dismissed_by + - dismissed_reason + - dismissed_comment + - fixed_at + additionalProperties: false + dependabot-secret: + title: Dependabot Secret + description: Set secrets for Dependabot. + type: object + properties: + name: + description: The name of the secret. + example: MY_ARTIFACTORY_PASSWORD + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - name + - created_at + - updated_at + dependency-graph-diff: + title: Dependency Graph Diff + description: A diff of the dependencies between two commits. + type: array + items: + type: object + properties: + change_type: + type: string + enum: + - added + - removed + manifest: + type: string + example: path/to/package-lock.json + ecosystem: + type: string + example: npm + name: + type: string + example: "@actions/core" + version: + type: string + example: 1.0.0 + package_url: + type: string + nullable: true + example: pkg:/npm/%40actions/core@1.1.0 + license: + type: string + nullable: true + example: MIT + source_repository_url: + type: string + nullable: true + example: https://github.com/github/actions + vulnerabilities: + type: array + items: + type: object + properties: + severity: + type: string + example: critical + advisory_ghsa_id: + type: string + example: GHSA-rf4j-j272-fj86 + advisory_summary: + type: string + example: A summary of the advisory. + advisory_url: + type: string + example: https://github.com/advisories/GHSA-rf4j-j272-fj86 + required: + - severity + - advisory_ghsa_id + - advisory_summary + - advisory_url + scope: + description: Where the dependency is utilized. `development` means that + the dependency is only utilized in the development environment. `runtime` + means that the dependency is utilized at runtime and in the development + environment. + type: string + enum: + - unknown + - runtime + - development + required: + - change_type + - manifest + - ecosystem + - name + - version + - package_url + - license + - source_repository_url + - vulnerabilities + - scope + dependency-graph-spdx-sbom: + title: Dependency Graph SPDX SBOM + description: A schema for the SPDX JSON format returned by the Dependency Graph. + type: object + properties: + sbom: + type: object + properties: + SPDXID: + type: string + example: SPDXRef-DOCUMENT + description: The SPDX identifier for the SPDX document. + spdxVersion: + type: string + example: SPDX-2.3 + description: The version of the SPDX specification that this document + conforms to. + comment: + type: string + example: 'Exact versions could not be resolved for some packages. For + more information: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/' + description: An optional comment about the SPDX document. + creationInfo: + type: object + properties: + created: + type: string + example: '2021-11-03T00:00:00Z' + description: The date and time the SPDX document was created. + creators: + type: array + items: + type: string + example: GitHub + description: The tools that were used to generate the SPDX document. + required: + - created + - creators + name: + type: string + example: github/github + description: The name of the SPDX document. + dataLicense: + type: string + example: CC0-1.0 + description: The license under which the SPDX document is licensed. + documentNamespace: + type: string + example: https://spdx.org/spdxdocs/protobom/15e41dd2-f961-4f4d-b8dc-f8f57ad70d57 + description: The namespace for the SPDX document. + packages: + type: array + items: + type: object + properties: + SPDXID: + type: string + example: SPDXRef-Package + description: A unique SPDX identifier for the package. + name: + type: string + example: github/github + description: The name of the package. + versionInfo: + type: string + example: 1.0.0 + description: |- + The version of the package. If the package does not have an exact version specified, + a version range is given. + downloadLocation: + type: string + example: NOASSERTION + description: |- + The location where the package can be downloaded, + or NOASSERTION if this has not been determined. + filesAnalyzed: + type: boolean + example: false + description: |- + Whether the package's file content has been subjected to + analysis during the creation of the SPDX document. + licenseConcluded: + type: string + example: MIT + description: The license of the package as determined while creating + the SPDX document. + licenseDeclared: + type: string + example: NOASSERTION + description: |- + The license of the package as declared by its author, or NOASSERTION if this information + was not available when the SPDX document was created. + supplier: + type: string + example: NOASSERTION + description: The distribution source of this package, or NOASSERTION + if this was not determined. + copyrightText: + type: string + example: Copyright (c) 1985 GitHub.com + description: The copyright holders of the package, and any dates + present with those notices, if available. + externalRefs: + type: array + items: + type: object + properties: + referenceCategory: + type: string + example: PACKAGE-MANAGER + description: The category of reference to an external resource + this reference refers to. + referenceLocator: + type: string + example: pkg:gem/rails@6.0.1 + description: A locator for the particular external resource + this reference refers to. + referenceType: + type: string + example: purl + description: The category of reference to an external resource + this reference refers to. + required: + - referenceCategory + - referenceLocator + - referenceType + required: + - SPDXID + - name + - versionInfo + - downloadLocation + - filesAnalyzed + relationships: + type: array + items: + type: object + properties: + relationshipType: + type: string + example: DEPENDS_ON + description: The type of relationship between the two SPDX elements. + spdxElementId: + type: string + description: The SPDX identifier of the package that is the source + of the relationship. + relatedSpdxElement: + type: string + description: The SPDX identifier of the package that is the target + of the relationship. + required: + - relationshipType + - spdxElementId + - relatedSpdxElement + required: + - SPDXID + - spdxVersion + - creationInfo + - name + - dataLicense + - documentNamespace + - packages + required: + - sbom + metadata: + title: metadata + description: User-defined metadata to store domain-specific information limited + to 8 keys with scalar values. + type: object + maxProperties: 8 + additionalProperties: + nullable: true + anyOf: + - type: string + - type: number + - type: boolean + dependency: + type: object + properties: + package_url: + type: string + description: Package-url (PURL) of dependency. See https://github.com/package-url/purl-spec + for more details. + example: pkg:/npm/%40actions/http-client@1.0.11 + pattern: "^pkg" + metadata: + "$ref": "#/components/schemas/metadata" + relationship: + type: string + description: A notation of whether a dependency is requested directly by + this manifest or is a dependency of another dependency. + example: direct + enum: + - direct + - indirect + scope: + type: string + description: A notation of whether the dependency is required for the primary + build artifact (runtime) or is only used for development. Future versions + of this specification may allow for more granular scopes. + example: runtime + enum: + - runtime + - development + dependencies: + type: array + description: Array of package-url (PURLs) of direct child dependencies. + example: "@actions/http-client" + items: + type: string + additionalProperties: false + manifest: + type: object + properties: + name: + type: string + description: The name of the manifest. + example: package-lock.json + file: + type: object + properties: + source_location: + type: string + description: The path of the manifest file relative to the root of the + Git repository. + example: "/src/build/package-lock.json" + additionalProperties: false + metadata: + "$ref": "#/components/schemas/metadata" + resolved: + type: object + description: A collection of resolved package dependencies. + additionalProperties: + "$ref": "#/components/schemas/dependency" + required: + - name + additionalProperties: false + snapshot: + title: snapshot + description: Create a new snapshot of a repository's dependencies. + type: object + properties: + version: + description: The version of the repository snapshot submission. + type: integer + job: + type: object + properties: + id: + type: string + description: The external ID of the job. + example: 5622a2b0-63f6-4732-8c34-a1ab27e102a11 + correlator: + type: string + description: Correlator provides a key that is used to group snapshots + submitted over time. Only the "latest" submitted snapshot for a given + combination of `job.correlator` and `detector.name` will be considered + when calculating a repository's current dependencies. Correlator should + be as unique as it takes to distinguish all detection runs for a given + "wave" of CI workflow you run. If you're using GitHub Actions, a good + default value for this could be the environment variables GITHUB_WORKFLOW + and GITHUB_JOB concatenated together. If you're using a build matrix, + then you'll also need to add additional key(s) to distinguish between + each submission inside a matrix variation. + example: yourworkflowname_yourjobname + html_url: + type: string + description: The url for the job. + example: http://example.com/build + required: + - id + - correlator + additionalProperties: false + sha: + description: 'The commit SHA associated with this dependency snapshot. Maximum + length: 40 characters.' + type: string + example: ddc951f4b1293222421f2c8df679786153acf689 + minLength: 40 + maxLength: 40 + ref: + description: The repository branch that triggered this snapshot. + type: string + pattern: "^refs/" + example: refs/heads/main + detector: + type: object + description: A description of the detector used. + properties: + name: + type: string + description: The name of the detector used. + example: docker buildtime detector + version: + type: string + description: The version of the detector used. + example: 1.0.0 + url: + type: string + description: The url of the detector used. + example: http://example.com/docker-buildtimer-detector + required: + - name + - version + - url + additionalProperties: false + metadata: + "$ref": "#/components/schemas/metadata" + manifests: + type: object + description: A collection of package manifests, which are a collection of + related dependencies declared in a file or representing a logical group + of dependencies. + additionalProperties: + "$ref": "#/components/schemas/manifest" + scanned: + type: string + format: date-time + description: The time at which the snapshot was scanned. + example: '2020-06-13T14:52:50-05:00' + required: + - detector + - version + - ref + - sha + - job + - scanned + additionalProperties: false + deployment-status: + title: Deployment Status + description: The status of a deployment. + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + id: + type: integer + format: int64 + example: 1 + node_id: + type: string + example: MDE2OkRlcGxveW1lbnRTdGF0dXMx + state: + description: The state of the status. + enum: + - error + - failure + - inactive + - pending + - success + - queued + - in_progress + example: success + type: string + creator: + "$ref": "#/components/schemas/nullable-simple-user" + description: + description: A short description of the status. + default: '' + type: string + maxLength: 140 + example: Deployment finished successfully. + environment: + description: The environment of the deployment that the status is for. + default: '' + type: string + example: production + target_url: + description: 'Closing down notice: the URL to associate with this status.' + default: '' + type: string + format: uri + example: https://example.com/deployment/42/output + created_at: + type: string + format: date-time + example: '2012-07-20T01:19:13Z' + updated_at: + type: string + format: date-time + example: '2012-07-20T01:19:13Z' + deployment_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example/deployments/42 + repository_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example + environment_url: + description: The URL for accessing your environment. + default: '' + type: string + format: uri + example: https://staging.example.com/ + log_url: + description: The URL to associate with this status. + default: '' + type: string + format: uri + example: https://example.com/deployment/42/output + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + required: + - id + - node_id + - state + - creator + - description + - deployment_url + - target_url + - repository_url + - url + - created_at + - updated_at + wait-timer: + type: integer + example: 30 + description: The amount of time to delay a job after the job is initially triggered. + The time (in minutes) must be an integer between 0 and 43,200 (30 days). + deployment-branch-policy-settings: + type: object + description: The type of deployment branch policy for this environment. To allow + all branches to deploy, set to `null`. + properties: + protected_branches: + type: boolean + description: Whether only branches with branch protection rules can deploy + to this environment. If `protected_branches` is `true`, `custom_branch_policies` + must be `false`; if `protected_branches` is `false`, `custom_branch_policies` + must be `true`. + custom_branch_policies: + type: boolean + description: Whether only branches that match the specified name patterns + can deploy to this environment. If `custom_branch_policies` is `true`, + `protected_branches` must be `false`; if `custom_branch_policies` is `false`, + `protected_branches` must be `true`. + nullable: true + required: + - protected_branches + - custom_branch_policies + environment: + title: Environment + description: Details of a deployment environment + type: object + properties: + id: + description: The id of the environment. + example: 56780428 + type: integer + format: int64 + node_id: + type: string + example: MDExOkVudmlyb25tZW50NTY3ODA0Mjg= + name: + description: The name of the environment. + example: staging + type: string + url: + type: string + example: https://api.github.com/repos/github/hello-world/environments/staging + html_url: + type: string + example: https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging + created_at: + description: The time that the environment was created, in ISO 8601 format. + example: '2020-11-23T22:00:40Z' + format: date-time + type: string + updated_at: + description: The time that the environment was last updated, in ISO 8601 + format. + example: '2020-11-23T22:00:40Z' + format: date-time + type: string + protection_rules: + type: array + description: Built-in deployment protection rules for the environment. + items: + anyOf: + - type: object + properties: + id: + type: integer + example: 3515 + node_id: + type: string + example: MDQ6R2F0ZTM1MTU= + type: + type: string + example: wait_timer + wait_timer: + "$ref": "#/components/schemas/wait-timer" + required: + - id + - node_id + - type + - type: object + properties: + id: + type: integer + example: 3755 + node_id: + type: string + example: MDQ6R2F0ZTM3NTU= + prevent_self_review: + type: boolean + example: false + description: Whether deployments to this environment can be approved + by the user who created the deployment. + type: + type: string + example: required_reviewers + reviewers: + type: array + description: The people or teams that may approve jobs that reference + the environment. You can list up to six users or teams as reviewers. + The reviewers must have at least read access to the repository. + Only one of the required reviewers needs to approve the job for + it to proceed. + items: + type: object + properties: + type: + "$ref": "#/components/schemas/deployment-reviewer-type" + reviewer: + anyOf: + - "$ref": "#/components/schemas/simple-user" + - "$ref": "#/components/schemas/team" + required: + - id + - node_id + - type + - type: object + properties: + id: + type: integer + example: 3515 + node_id: + type: string + example: MDQ6R2F0ZTM1MTU= + type: + type: string + example: branch_policy + required: + - id + - node_id + - type + deployment_branch_policy: + "$ref": "#/components/schemas/deployment-branch-policy-settings" + required: + - id + - node_id + - name + - url + - html_url + - created_at + - updated_at + prevent-self-review: + type: boolean + example: false + description: Whether or not a user who created the job is prevented from approving + their own job. + deployment-branch-policy: + title: Deployment branch policy + description: Details of a deployment branch or tag policy. + type: object + properties: + id: + description: The unique identifier of the branch or tag policy. + type: integer + example: 361471 + node_id: + type: string + example: MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE= + name: + description: The name pattern that branches or tags must match in order + to deploy to the environment. + type: string + example: release/* + type: + description: Whether this rule targets a branch or tag. + type: string + example: branch + enum: + - branch + - tag + deployment-branch-policy-name-pattern-with-type: + title: Deployment branch and tag policy name pattern + type: object + properties: + name: + description: |- + The name pattern that branches or tags must match in order to deploy to the environment. + + Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*/*`. + For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + type: string + example: release/* + type: + description: Whether this rule targets a branch or tag + type: string + example: branch + enum: + - branch + - tag + required: + - name + deployment-branch-policy-name-pattern: + title: Deployment branch policy name pattern + type: object + properties: + name: + description: |- + The name pattern that branches must match in order to deploy to the environment. + + Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*/*`. + For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + type: string + example: release/* + required: + - name + custom-deployment-rule-app: + title: Custom deployment protection rule app + description: A GitHub App that is providing a custom deployment protection rule. + type: object + properties: + id: + type: integer + example: 3515 + description: The unique identifier of the deployment protection rule integration. + slug: + type: string + example: my-custom-app + description: The slugified name of the deployment protection rule integration. + integration_url: + type: string + example: https://api.github.com/apps/custom-app-slug + description: The URL for the endpoint to get details about the app. + node_id: + type: string + example: MDQ6R2F0ZTM1MTU= + description: The node ID for the deployment protection rule integration. + required: + - id + - slug + - integration_url + - node_id + deployment-protection-rule: + title: Deployment protection rule + description: Deployment protection rule + type: object + properties: + id: + type: integer + example: 3515 + description: The unique identifier for the deployment protection rule. + node_id: + type: string + example: MDQ6R2F0ZTM1MTU= + description: The node ID for the deployment protection rule. + enabled: + type: boolean + example: true + description: Whether the deployment protection rule is enabled for the environment. + app: + "$ref": "#/components/schemas/custom-deployment-rule-app" + required: + - id + - node_id + - enabled + - app + short-blob: + title: Short Blob + description: Short Blob + type: object + properties: + url: + type: string + sha: + type: string + required: + - url + - sha + blob: + title: Blob + description: Blob + type: object + properties: + content: + type: string + encoding: + type: string + url: + type: string + format: uri + sha: + type: string + size: + type: integer + nullable: true + node_id: + type: string + highlighted_content: + type: string + required: + - sha + - url + - node_id + - size + - content + - encoding + git-commit: + title: Git Commit + description: Low-level Git commit operations within a repository + type: object + properties: + sha: + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + type: string + node_id: + type: string + url: + type: string + format: uri + author: + description: Identifying information for the git-user + type: object + properties: + date: + description: Timestamp of the commit + example: '2014-08-09T08:02:04+12:00' + format: date-time + type: string + email: + type: string + description: Git email address of the user + example: monalisa.octocat@example.com + name: + description: Name of the git user + example: Monalisa Octocat + type: string + required: + - email + - name + - date + committer: + description: Identifying information for the git-user + type: object + properties: + date: + description: Timestamp of the commit + example: '2014-08-09T08:02:04+12:00' + format: date-time + type: string + email: + type: string + description: Git email address of the user + example: monalisa.octocat@example.com + name: + description: Name of the git user + example: Monalisa Octocat + type: string + required: + - email + - name + - date + message: + description: Message describing the purpose of the commit + example: 'Fix #42' + type: string + tree: + type: object + properties: + sha: + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + type: string + url: + type: string + format: uri + required: + - sha + - url + parents: + type: array + items: + type: object + properties: + sha: + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + type: string + url: + type: string + format: uri + html_url: + type: string + format: uri + required: + - sha + - url + - html_url + verification: + type: object + properties: + verified: + type: boolean + reason: + type: string + signature: + type: string + nullable: true + payload: + type: string + nullable: true + verified_at: + type: string + nullable: true + required: + - verified + - reason + - signature + - payload + - verified_at + html_url: + type: string + format: uri + required: + - sha + - node_id + - url + - html_url + - author + - committer + - tree + - message + - parents + - verification + git-ref: + title: Git Reference + description: Git references within a repository + type: object + properties: + ref: + type: string + node_id: + type: string + url: + type: string + format: uri + object: + type: object + properties: + type: + type: string + sha: + description: SHA for the reference + example: 7638417db6d59f3c431d3e1f261cc637155684cd + type: string + minLength: 40 + maxLength: 40 + url: + type: string + format: uri + required: + - type + - sha + - url + required: + - ref + - node_id + - url + - object + git-tag: + title: Git Tag + description: Metadata for a Git tag + type: object + properties: + node_id: + type: string + example: MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw== + tag: + description: Name of the tag + example: v0.0.1 + type: string + sha: + type: string + example: 940bd336248efae0f9ee5bc7b2d5c985887b16ac + url: + description: URL for the tag + example: https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac + type: string + format: uri + message: + description: Message describing the purpose of the tag + example: Initial public release + type: string + tagger: + type: object + properties: + date: + type: string + email: + type: string + name: + type: string + required: + - date + - email + - name + object: + type: object + properties: + sha: + type: string + type: + type: string + url: + type: string + format: uri + required: + - sha + - type + - url + verification: + "$ref": "#/components/schemas/verification" + required: + - sha + - url + - node_id + - tagger + - object + - tag + - message + git-tree: + title: Git Tree + description: The hierarchy between files in a Git repository. + type: object + properties: + sha: + type: string + url: + type: string + format: uri + truncated: + type: boolean + tree: + description: Objects specifying a tree structure + type: array + items: + type: object + required: + - path + - mode + - type + - sha + properties: + path: + type: string + example: test/file.rb + mode: + type: string + example: '040000' + type: + type: string + example: tree + sha: + type: string + example: 23f6827669e43831def8a7ad935069c8bd418261 + size: + type: integer + example: 12 + url: + type: string + example: https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261 + example: + - path: file.rb + mode: '100644' + type: blob + size: 30 + sha: 44b4fc6d56897b048c772eb4087f854f46256132 + url: https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132 + required: + - sha + - tree + - truncated + hook-response: + title: Hook Response + type: object + properties: + code: + type: integer + nullable: true + status: + type: string + nullable: true + message: + type: string + nullable: true + required: + - code + - status + - message + hook: + title: Webhook + description: Webhooks for repositories. + type: object + properties: + type: + type: string + id: + description: Unique identifier of the webhook. + example: 42 + type: integer + name: + description: The name of a valid service, use 'web' for a webhook. + example: web + type: string + active: + description: Determines whether the hook is actually triggered on pushes. + type: boolean + example: true + events: + description: 'Determines what events the hook is triggered for. Default: + [''push''].' + type: array + items: + type: string + example: + - push + - pull_request + config: + "$ref": "#/components/schemas/webhook-config" + updated_at: + type: string + format: date-time + example: '2011-09-06T20:39:23Z' + created_at: + type: string + format: date-time + example: '2011-09-06T17:26:27Z' + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/hooks/1 + test_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/hooks/1/test + ping_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/hooks/1/pings + deliveries_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries + last_response: + "$ref": "#/components/schemas/hook-response" + required: + - id + - url + - type + - name + - active + - events + - config + - ping_url + - created_at + - updated_at + - last_response + - test_url + check-immutable-releases: + title: Check immutable releases + description: Check immutable releases + type: object + properties: + enabled: + type: boolean + example: true + description: Whether immutable releases are enabled for the repository. + enforced_by_owner: + type: boolean + example: false + description: Whether immutable releases are enforced by the repository owner. + required: + - enabled + - enforced_by_owner + import: + title: Import + description: A repository import from an external source. + type: object + properties: + vcs: + type: string + nullable: true + use_lfs: + type: boolean + vcs_url: + description: The URL of the originating repository. + type: string + svc_root: + type: string + tfvc_project: + type: string + status: + type: string + enum: + - auth + - error + - none + - detecting + - choose + - auth_failed + - importing + - mapping + - waiting_to_push + - pushing + - complete + - setup + - unknown + - detection_found_multiple + - detection_found_nothing + - detection_needs_auth + status_text: + type: string + nullable: true + failed_step: + type: string + nullable: true + error_message: + type: string + nullable: true + import_percent: + type: integer + nullable: true + commit_count: + type: integer + nullable: true + push_percent: + type: integer + nullable: true + has_large_files: + type: boolean + large_files_size: + type: integer + large_files_count: + type: integer + project_choices: + type: array + items: + type: object + properties: + vcs: + type: string + tfvc_project: + type: string + human_name: + type: string + message: + type: string + authors_count: + type: integer + nullable: true + url: + type: string + format: uri + html_url: + type: string + format: uri + authors_url: + type: string + format: uri + repository_url: + type: string + format: uri + svn_root: + type: string + required: + - vcs + - vcs_url + - status + - url + - repository_url + - html_url + - authors_url + porter-author: + title: Porter Author + description: Porter Author + type: object + properties: + id: + type: integer + remote_id: + type: string + remote_name: + type: string + email: + type: string + name: + type: string + url: + type: string + format: uri + import_url: + type: string + format: uri + required: + - id + - remote_id + - remote_name + - email + - name + - url + - import_url + porter-large-file: + title: Porter Large File + description: Porter Large File + type: object + properties: + ref_name: + type: string + path: + type: string + oid: + type: string + size: + type: integer + required: + - oid + - path + - ref_name + - size + nullable-issue: + title: Issue + description: Issues are a great way to keep track of tasks, enhancements, and + bugs for your projects. + type: object + properties: + id: + type: integer + format: int64 + node_id: + type: string + url: + description: URL for the issue + example: https://api.github.com/repositories/42/issues/1 + type: string + format: uri + repository_url: + type: string + format: uri + labels_url: + type: string + comments_url: + type: string + format: uri + events_url: + type: string + format: uri + html_url: + type: string + format: uri + number: + description: Number uniquely identifying the issue within its repository + example: 42 + type: integer + state: + description: State of the issue; either 'open' or 'closed' + example: open + type: string + state_reason: + description: The reason for the current state + example: not_planned + type: string + nullable: true + enum: + - completed + - reopened + - not_planned + - duplicate + title: + description: Title of the issue + example: Widget creation fails in Safari on OS X 10.8 + type: string + body: + description: Contents of the issue + example: It looks like the new widget form is broken on Safari. When I try + and create the widget, Safari crashes. This is reproducible on 10.8, but + not 10.9. Maybe a browser bug? + type: string + nullable: true + user: + "$ref": "#/components/schemas/nullable-simple-user" + labels: + description: Labels to associate with this issue; pass one or more label + names to replace the set of labels on this issue; send an empty array + to clear all labels from the issue; note that the labels are silently + dropped for users without push access to the repository + example: + - bug + - registration + type: array + items: + oneOf: + - type: string + - type: object + properties: + id: + type: integer + format: int64 + node_id: + type: string + url: + type: string + format: uri + name: + type: string + description: + type: string + nullable: true + color: + type: string + nullable: true + default: + type: boolean + assignee: + "$ref": "#/components/schemas/nullable-simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + nullable: true + milestone: + "$ref": "#/components/schemas/nullable-milestone" + locked: + type: boolean + active_lock_reason: + type: string + nullable: true + comments: + type: integer + pull_request: + type: object + properties: + merged_at: + type: string + format: date-time + nullable: true + diff_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + patch_url: + type: string + format: uri + nullable: true + url: + type: string + format: uri + nullable: true + required: + - diff_url + - html_url + - patch_url + - url + closed_at: + type: string + format: date-time + nullable: true + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + draft: + type: boolean + closed_by: + "$ref": "#/components/schemas/nullable-simple-user" + body_html: + type: string + body_text: + type: string + timeline_url: + type: string + format: uri + type: + "$ref": "#/components/schemas/issue-type" + repository: + "$ref": "#/components/schemas/repository" + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + author_association: + "$ref": "#/components/schemas/author-association" + reactions: + "$ref": "#/components/schemas/reaction-rollup" + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + parent_issue_url: + description: URL to get the parent issue of this issue, if it is a sub-issue + type: string + format: uri + nullable: true + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + required: + - assignee + - closed_at + - comments + - comments_url + - events_url + - html_url + - id + - node_id + - labels + - labels_url + - milestone + - number + - repository_url + - state + - locked + - title + - url + - user + - created_at + - updated_at + nullable: true + issue-event-label: + title: Issue Event Label + description: Issue Event Label + type: object + properties: + name: + type: string + nullable: true + color: + type: string + nullable: true + required: + - name + - color + issue-event-dismissed-review: + title: Issue Event Dismissed Review + type: object + properties: + state: + type: string + review_id: + type: integer + dismissal_message: + type: string + nullable: true + dismissal_commit_id: + type: string + nullable: true + required: + - state + - review_id + - dismissal_message + issue-event-milestone: + title: Issue Event Milestone + description: Issue Event Milestone + type: object + properties: + title: + type: string + required: + - title + issue-event-project-card: + title: Issue Event Project Card + description: Issue Event Project Card + type: object + properties: + url: + type: string + format: uri + id: + type: integer + project_url: + type: string + format: uri + project_id: + type: integer + column_name: + type: string + previous_column_name: + type: string + required: + - url + - id + - project_url + - project_id + - column_name + issue-event-rename: + title: Issue Event Rename + description: Issue Event Rename + type: object + properties: + from: + type: string + to: + type: string + required: + - from + - to + issue-event: + title: Issue Event + description: Issue Event + type: object + properties: + id: + type: integer + format: int64 + example: 1 + node_id: + type: string + example: MDEwOklzc3VlRXZlbnQx + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/issues/events/1 + actor: + "$ref": "#/components/schemas/nullable-simple-user" + event: + type: string + example: closed + commit_id: + type: string + example: 6dcb09b5b57875f334f61aebed695e2e4193db5e + nullable: true + commit_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + nullable: true + created_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + issue: + "$ref": "#/components/schemas/nullable-issue" + label: + "$ref": "#/components/schemas/issue-event-label" + assignee: + "$ref": "#/components/schemas/nullable-simple-user" + assigner: + "$ref": "#/components/schemas/nullable-simple-user" + review_requester: + "$ref": "#/components/schemas/nullable-simple-user" + requested_reviewer: + "$ref": "#/components/schemas/nullable-simple-user" + requested_team: + "$ref": "#/components/schemas/team" + dismissed_review: + "$ref": "#/components/schemas/issue-event-dismissed-review" + milestone: + "$ref": "#/components/schemas/issue-event-milestone" + project_card: + "$ref": "#/components/schemas/issue-event-project-card" + rename: + "$ref": "#/components/schemas/issue-event-rename" + author_association: + "$ref": "#/components/schemas/author-association" + lock_reason: + type: string + nullable: true + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + labeled-issue-event: + title: Labeled Issue Event + description: Labeled Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + label: + type: object + properties: + name: + type: string + color: + type: string + required: + - name + - color + required: + - label + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + unlabeled-issue-event: + title: Unlabeled Issue Event + description: Unlabeled Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + label: + type: object + properties: + name: + type: string + color: + type: string + required: + - name + - color + required: + - label + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + assigned-issue-event: + title: Assigned Issue Event + description: Assigned Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/integration" + assignee: + "$ref": "#/components/schemas/simple-user" + assigner: + "$ref": "#/components/schemas/simple-user" + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + - assignee + - assigner + unassigned-issue-event: + title: Unassigned Issue Event + description: Unassigned Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + assignee: + "$ref": "#/components/schemas/simple-user" + assigner: + "$ref": "#/components/schemas/simple-user" + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + - assignee + - assigner + milestoned-issue-event: + title: Milestoned Issue Event + description: Milestoned Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + milestone: + type: object + properties: + title: + type: string + required: + - title + required: + - milestone + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + demilestoned-issue-event: + title: Demilestoned Issue Event + description: Demilestoned Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + milestone: + type: object + properties: + title: + type: string + required: + - title + required: + - milestone + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + renamed-issue-event: + title: Renamed Issue Event + description: Renamed Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + rename: + type: object + properties: + from: + type: string + to: + type: string + required: + - from + - to + required: + - rename + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + review-requested-issue-event: + title: Review Requested Issue Event + description: Review Requested Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + review_requester: + "$ref": "#/components/schemas/simple-user" + requested_team: + "$ref": "#/components/schemas/team" + requested_reviewer: + "$ref": "#/components/schemas/simple-user" + required: + - review_requester + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + review-request-removed-issue-event: + title: Review Request Removed Issue Event + description: Review Request Removed Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + review_requester: + "$ref": "#/components/schemas/simple-user" + requested_team: + "$ref": "#/components/schemas/team" + requested_reviewer: + "$ref": "#/components/schemas/simple-user" + required: + - review_requester + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + review-dismissed-issue-event: + title: Review Dismissed Issue Event + description: Review Dismissed Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + dismissed_review: + type: object + properties: + state: + type: string + review_id: + type: integer + dismissal_message: + nullable: true + type: string + dismissal_commit_id: + type: string + required: + - state + - review_id + - dismissal_message + required: + - dismissed_review + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + locked-issue-event: + title: Locked Issue Event + description: Locked Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + lock_reason: + type: string + example: '"off-topic"' + nullable: true + required: + - lock_reason + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + added-to-project-issue-event: + title: Added to Project Issue Event + description: Added to Project Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + project_card: + type: object + properties: + id: + type: integer + url: + type: string + format: uri + project_id: + type: integer + project_url: + type: string + format: uri + column_name: + type: string + previous_column_name: + type: string + required: + - id + - url + - project_id + - project_url + - column_name + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + moved-column-in-project-issue-event: + title: Moved Column in Project Issue Event + description: Moved Column in Project Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + project_card: + type: object + properties: + id: + type: integer + url: + type: string + format: uri + project_id: + type: integer + project_url: + type: string + format: uri + column_name: + type: string + previous_column_name: + type: string + required: + - id + - url + - project_id + - project_url + - column_name + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + removed-from-project-issue-event: + title: Removed from Project Issue Event + description: Removed from Project Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + project_card: + type: object + properties: + id: + type: integer + url: + type: string + format: uri + project_id: + type: integer + project_url: + type: string + format: uri + column_name: + type: string + previous_column_name: + type: string + required: + - id + - url + - project_id + - project_url + - column_name + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + converted-note-to-issue-issue-event: + title: Converted Note to Issue Issue Event + description: Converted Note to Issue Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/integration" + project_card: + type: object + properties: + id: + type: integer + url: + type: string + format: uri + project_id: + type: integer + project_url: + type: string + format: uri + column_name: + type: string + previous_column_name: + type: string + required: + - id + - url + - project_id + - project_url + - column_name + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + issue-event-for-issue: + title: Issue Event for Issue + description: Issue Event for Issue + anyOf: + - "$ref": "#/components/schemas/labeled-issue-event" + - "$ref": "#/components/schemas/unlabeled-issue-event" + - "$ref": "#/components/schemas/assigned-issue-event" + - "$ref": "#/components/schemas/unassigned-issue-event" + - "$ref": "#/components/schemas/milestoned-issue-event" + - "$ref": "#/components/schemas/demilestoned-issue-event" + - "$ref": "#/components/schemas/renamed-issue-event" + - "$ref": "#/components/schemas/review-requested-issue-event" + - "$ref": "#/components/schemas/review-request-removed-issue-event" + - "$ref": "#/components/schemas/review-dismissed-issue-event" + - "$ref": "#/components/schemas/locked-issue-event" + - "$ref": "#/components/schemas/added-to-project-issue-event" + - "$ref": "#/components/schemas/moved-column-in-project-issue-event" + - "$ref": "#/components/schemas/removed-from-project-issue-event" + - "$ref": "#/components/schemas/converted-note-to-issue-issue-event" + timeline-comment-event: + title: Timeline Comment Event + description: Timeline Comment Event + type: object + properties: + event: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + id: + description: Unique identifier of the issue comment + example: 42 + type: integer + node_id: + type: string + url: + description: URL for the issue comment + example: https://api.github.com/repositories/42/issues/comments/1 + type: string + format: uri + body: + description: Contents of the issue comment + example: What version of Safari were you using when you observed this bug? + type: string + body_text: + type: string + body_html: + type: string + html_url: + type: string + format: uri + user: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + updated_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + issue_url: + type: string + format: uri + author_association: + "$ref": "#/components/schemas/author-association" + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + reactions: + "$ref": "#/components/schemas/reaction-rollup" + required: + - event + - actor + - id + - node_id + - html_url + - issue_url + - author_association + - user + - url + - created_at + - updated_at + timeline-cross-referenced-event: + title: Timeline Cross Referenced Event + description: Timeline Cross Referenced Event + type: object + properties: + event: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + source: + type: object + properties: + type: + type: string + issue: + "$ref": "#/components/schemas/issue" + required: + - event + - created_at + - updated_at + - source + timeline-committed-event: + title: Timeline Committed Event + description: Timeline Committed Event + type: object + properties: + event: + type: string + sha: + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + type: string + node_id: + type: string + url: + type: string + format: uri + author: + description: Identifying information for the git-user + type: object + properties: + date: + description: Timestamp of the commit + example: '2014-08-09T08:02:04+12:00' + format: date-time + type: string + email: + type: string + description: Git email address of the user + example: monalisa.octocat@example.com + name: + description: Name of the git user + example: Monalisa Octocat + type: string + required: + - email + - name + - date + committer: + description: Identifying information for the git-user + type: object + properties: + date: + description: Timestamp of the commit + example: '2014-08-09T08:02:04+12:00' + format: date-time + type: string + email: + type: string + description: Git email address of the user + example: monalisa.octocat@example.com + name: + description: Name of the git user + example: Monalisa Octocat + type: string + required: + - email + - name + - date + message: + description: Message describing the purpose of the commit + example: 'Fix #42' + type: string + tree: + type: object + properties: + sha: + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + type: string + url: + type: string + format: uri + required: + - sha + - url + parents: + type: array + items: + type: object + properties: + sha: + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + type: string + url: + type: string + format: uri + html_url: + type: string + format: uri + required: + - sha + - url + - html_url + verification: + type: object + properties: + verified: + type: boolean + reason: + type: string + signature: + type: string + nullable: true + payload: + type: string + nullable: true + verified_at: + type: string + nullable: true + required: + - verified + - reason + - signature + - payload + - verified_at + html_url: + type: string + format: uri + required: + - sha + - node_id + - url + - html_url + - author + - committer + - tree + - message + - parents + - verification + timeline-reviewed-event: + title: Timeline Reviewed Event + description: Timeline Reviewed Event + type: object + properties: + event: + type: string + id: + description: Unique identifier of the review + example: 42 + type: integer + node_id: + type: string + example: MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= + user: + "$ref": "#/components/schemas/simple-user" + body: + nullable: true + description: The text of the review. + example: This looks great. + type: string + state: + type: string + example: CHANGES_REQUESTED + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/12 + _links: + type: object + properties: + html: + type: object + properties: + href: + type: string + required: + - href + pull_request: + type: object + properties: + href: + type: string + required: + - href + required: + - html + - pull_request + submitted_at: + type: string + format: date-time + updated_at: + type: string + nullable: true + format: date-time + commit_id: + description: A commit SHA for the review. + example: 54bb654c9e6025347f57900a4a5c2313a96b8035 + type: string + body_html: + type: string + body_text: + type: string + author_association: + "$ref": "#/components/schemas/author-association" + required: + - event + - id + - node_id + - user + - body + - state + - commit_id + - html_url + - pull_request_url + - _links + - author_association + pull-request-review-comment: + title: Pull Request Review Comment + description: Pull Request Review Comments are comments on a portion of the Pull + Request's diff. + type: object + properties: + url: + description: URL for the pull request review comment + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + type: string + pull_request_review_id: + description: The ID of the pull request review to which the comment belongs. + type: integer + format: int64 + example: 42 + nullable: true + id: + description: The ID of the pull request review comment. + type: integer + format: int64 + example: 1 + node_id: + description: The node ID of the pull request review comment. + type: string + example: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + diff_hunk: + description: The diff of the line that the comment refers to. + type: string + example: "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + path: + description: The relative path of the file to which the comment applies. + example: config/database.yaml + type: string + position: + description: The line index in the diff to which the comment applies. This + field is closing down; use `line` instead. + example: 1 + type: integer + original_position: + description: The index of the original line in the diff to which the comment + applies. This field is closing down; use `original_line` instead. + example: 4 + type: integer + commit_id: + description: The SHA of the commit to which the comment applies. + example: 6dcb09b5b57875f334f61aebed695e2e4193db5e + type: string + original_commit_id: + description: The SHA of the original commit to which the comment applies. + example: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + type: string + in_reply_to_id: + description: The comment ID to reply to. + example: 8 + type: integer + user: + "$ref": "#/components/schemas/nullable-simple-user" + body: + description: The text of the comment. + example: We should probably include a check for null values here. + type: string + created_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + updated_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + html_url: + description: HTML URL for the pull request review comment. + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request_url: + description: URL for the pull request that the review comment belongs to. + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1 + author_association: + "$ref": "#/components/schemas/author-association" + _links: + type: object + properties: + self: + type: object + properties: + href: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + required: + - href + html: + type: object + properties: + href: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + required: + - href + pull_request: + type: object + properties: + href: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1 + required: + - href + required: + - self + - html + - pull_request + start_line: + type: integer + description: The first line of the range for a multi-line comment. + example: 2 + nullable: true + original_start_line: + type: integer + description: The first line of the range for a multi-line comment. + example: 2 + nullable: true + start_side: + type: string + description: The side of the first line of the range for a multi-line comment. + enum: + - LEFT + - RIGHT + default: RIGHT + nullable: true + line: + description: The line of the blob to which the comment applies. The last + line of the range for a multi-line comment + example: 2 + type: integer + original_line: + description: The line of the blob to which the comment applies. The last + line of the range for a multi-line comment + example: 2 + type: integer + side: + description: The side of the diff to which the comment applies. The side + of the last line of the range for a multi-line comment + enum: + - LEFT + - RIGHT + default: RIGHT + type: string + subject_type: + description: The level at which the comment is targeted, can be a diff line + or a file. + type: string + enum: + - line + - file + reactions: + "$ref": "#/components/schemas/reaction-rollup" + body_html: + type: string + example: '"

comment body

"' + body_text: + type: string + example: '"comment body"' + required: + - url + - id + - node_id + - pull_request_review_id + - diff_hunk + - path + - commit_id + - original_commit_id + - user + - body + - created_at + - updated_at + - html_url + - pull_request_url + - author_association + - _links + timeline-line-commented-event: + title: Timeline Line Commented Event + description: Timeline Line Commented Event + type: object + properties: + event: + type: string + node_id: + type: string + comments: + type: array + items: + "$ref": "#/components/schemas/pull-request-review-comment" + timeline-commit-commented-event: + title: Timeline Commit Commented Event + description: Timeline Commit Commented Event + type: object + properties: + event: + type: string + node_id: + type: string + commit_id: + type: string + comments: + type: array + items: + "$ref": "#/components/schemas/commit-comment" + timeline-assigned-issue-event: + title: Timeline Assigned Issue Event + description: Timeline Assigned Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + assignee: + "$ref": "#/components/schemas/simple-user" + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + - assignee + timeline-unassigned-issue-event: + title: Timeline Unassigned Issue Event + description: Timeline Unassigned Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + assignee: + "$ref": "#/components/schemas/simple-user" + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + - assignee + state-change-issue-event: + title: State Change Issue Event + description: State Change Issue Event + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + actor: + "$ref": "#/components/schemas/simple-user" + event: + type: string + commit_id: + type: string + nullable: true + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + state_reason: + type: string + nullable: true + required: + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + timeline-issue-events: + title: Timeline Event + description: Timeline Event + type: object + anyOf: + - "$ref": "#/components/schemas/labeled-issue-event" + - "$ref": "#/components/schemas/unlabeled-issue-event" + - "$ref": "#/components/schemas/milestoned-issue-event" + - "$ref": "#/components/schemas/demilestoned-issue-event" + - "$ref": "#/components/schemas/renamed-issue-event" + - "$ref": "#/components/schemas/review-requested-issue-event" + - "$ref": "#/components/schemas/review-request-removed-issue-event" + - "$ref": "#/components/schemas/review-dismissed-issue-event" + - "$ref": "#/components/schemas/locked-issue-event" + - "$ref": "#/components/schemas/added-to-project-issue-event" + - "$ref": "#/components/schemas/moved-column-in-project-issue-event" + - "$ref": "#/components/schemas/removed-from-project-issue-event" + - "$ref": "#/components/schemas/converted-note-to-issue-issue-event" + - "$ref": "#/components/schemas/timeline-comment-event" + - "$ref": "#/components/schemas/timeline-cross-referenced-event" + - "$ref": "#/components/schemas/timeline-committed-event" + - "$ref": "#/components/schemas/timeline-reviewed-event" + - "$ref": "#/components/schemas/timeline-line-commented-event" + - "$ref": "#/components/schemas/timeline-commit-commented-event" + - "$ref": "#/components/schemas/timeline-assigned-issue-event" + - "$ref": "#/components/schemas/timeline-unassigned-issue-event" + - "$ref": "#/components/schemas/state-change-issue-event" + deploy-key: + title: Deploy Key + description: An SSH key granting access to a single repository. + type: object + properties: + id: + type: integer + key: + type: string + url: + type: string + title: + type: string + verified: + type: boolean + created_at: + type: string + read_only: + type: boolean + added_by: + type: string + nullable: true + last_used: + nullable: true + type: string + format: date-time + enabled: + type: boolean + required: + - id + - key + - url + - title + - verified + - created_at + - read_only + language: + title: Language + description: Language + type: object + additionalProperties: + type: integer + license-content: + title: License Content + description: License Content + type: object + properties: + name: + type: string + path: + type: string + sha: + type: string + size: + type: integer + url: + type: string + format: uri + html_url: + type: string + format: uri + nullable: true + git_url: + type: string + format: uri + nullable: true + download_url: + type: string + format: uri + nullable: true + type: + type: string + content: + type: string + encoding: + type: string + _links: + type: object + properties: + git: + type: string + format: uri + nullable: true + html: + type: string + format: uri + nullable: true + self: + type: string + format: uri + required: + - git + - html + - self + license: + "$ref": "#/components/schemas/nullable-license-simple" + required: + - _links + - git_url + - html_url + - download_url + - name + - path + - sha + - size + - type + - url + - content + - encoding + - license + merged-upstream: + title: Merged upstream + description: Results of a successful merge upstream request + type: object + properties: + message: + type: string + merge_type: + type: string + enum: + - merge + - fast-forward + - none + base_branch: + type: string + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: + type: integer + example: 1002604 + node_id: + type: string + example: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: + description: The number of the milestone. + type: integer + example: 42 + state: + description: The state of the milestone. + example: open + type: string + enum: + - open + - closed + default: open + title: + description: The title of the milestone. + example: v1.0 + type: string + description: + type: string + example: Tracking milestone for version 1.0 + nullable: true + creator: + "$ref": "#/components/schemas/nullable-simple-user" + open_issues: + type: integer + example: 4 + closed_issues: + type: integer + example: 8 + created_at: + type: string + format: date-time + example: '2011-04-10T20:09:31Z' + updated_at: + type: string + format: date-time + example: '2014-03-03T18:58:10Z' + closed_at: + type: string + format: date-time + example: '2013-02-12T13:22:01Z' + nullable: true + due_on: + type: string + format: date-time + example: '2012-10-09T23:39:01Z' + nullable: true + required: + - closed_issues + - creator + - description + - due_on + - closed_at + - id + - node_id + - labels_url + - html_url + - number + - open_issues + - state + - title + - url + - created_at + - updated_at + pages-source-hash: + title: Pages Source Hash + type: object + properties: + branch: + type: string + path: + type: string + required: + - branch + - path + pages-https-certificate: + title: Pages Https Certificate + type: object + properties: + state: + type: string + enum: + - new + - authorization_created + - authorization_pending + - authorized + - authorization_revoked + - issued + - uploaded + - approved + - errored + - bad_authz + - destroy_pending + - dns_changed + example: approved + description: + type: string + example: Certificate is approved + domains: + type: array + items: + type: string + description: Array of the domain set and its alternate name (if it is configured) + example: + - example.com + - www.example.com + expires_at: + type: string + format: date + required: + - state + - description + - domains + page: + title: GitHub Pages + description: The configuration for GitHub Pages for a repository. + type: object + properties: + url: + type: string + description: The API address for accessing this Page resource. + format: uri + example: https://api.github.com/repos/github/hello-world/pages + status: + type: string + description: The status of the most recent build of the Page. + example: built + enum: + - built + - building + - errored + nullable: true + cname: + description: The Pages site's custom domain + example: example.com + type: string + nullable: true + protected_domain_state: + type: string + description: The state if the domain is verified + example: pending + nullable: true + enum: + - pending + - verified + - unverified + pending_domain_unverified_at: + type: string + description: The timestamp when a pending domain becomes unverified. + nullable: true + format: date-time + custom_404: + type: boolean + description: Whether the Page has a custom 404 page. + example: false + default: false + html_url: + type: string + description: The web address the Page can be accessed from. + format: uri + example: https://example.com + build_type: + type: string + description: The process in which the Page will be built. + example: legacy + nullable: true + enum: + - legacy + - workflow + source: + "$ref": "#/components/schemas/pages-source-hash" + public: + type: boolean + description: Whether the GitHub Pages site is publicly visible. If set to + `true`, the site is accessible to anyone on the internet. If set to `false`, + the site will only be accessible to users who have at least `read` access + to the repository that published the site. + example: true + https_certificate: + "$ref": "#/components/schemas/pages-https-certificate" + https_enforced: + type: boolean + description: Whether https is enabled on the domain + example: true + required: + - url + - status + - cname + - custom_404 + - public + page-build: + title: Page Build + description: Page Build + type: object + properties: + url: + type: string + format: uri + status: + type: string + error: + type: object + properties: + message: + type: string + nullable: true + required: + - message + pusher: + "$ref": "#/components/schemas/nullable-simple-user" + commit: + type: string + duration: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - url + - status + - error + - pusher + - commit + - duration + - created_at + - updated_at + page-build-status: + title: Page Build Status + description: Page Build Status + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/github/hello-world/pages/builds/latest + status: + type: string + example: queued + required: + - url + - status + page-deployment: + title: GitHub Pages + description: The GitHub Pages deployment status. + type: object + properties: + id: + oneOf: + - type: integer + - type: string + description: The ID of the GitHub Pages deployment. This is the Git SHA + of the deployed commit. + status_url: + type: string + description: The URI to monitor GitHub Pages deployment status. + format: uri + example: https://api.github.com/repos/github/hello-world/pages/deployments/4fd754f7e594640989b406850d0bc8f06a121251 + page_url: + type: string + description: The URI to the deployed GitHub Pages. + format: uri + example: hello-world.github.io + preview_url: + type: string + description: The URI to the deployed GitHub Pages preview. + format: uri + example: monalisa-1231a2312sa32-23sda74.drafts.github.io + required: + - id + - status_url + - page_url + pages-deployment-status: + title: GitHub Pages deployment status + type: object + properties: + status: + type: string + description: The current status of the deployment. + enum: + - deployment_in_progress + - syncing_files + - finished_file_sync + - updating_pages + - purging_cdn + - deployment_cancelled + - deployment_failed + - deployment_content_failed + - deployment_attempt_error + - deployment_lost + - succeed + pages-health-check: + title: Pages Health Check Status + description: Pages Health Check Status + type: object + properties: + domain: + type: object + properties: + host: + type: string + uri: + type: string + nameservers: + type: string + dns_resolves: + type: boolean + is_proxied: + type: boolean + nullable: true + is_cloudflare_ip: + type: boolean + nullable: true + is_fastly_ip: + type: boolean + nullable: true + is_old_ip_address: + type: boolean + nullable: true + is_a_record: + type: boolean + nullable: true + has_cname_record: + type: boolean + nullable: true + has_mx_records_present: + type: boolean + nullable: true + is_valid_domain: + type: boolean + is_apex_domain: + type: boolean + should_be_a_record: + type: boolean + nullable: true + is_cname_to_github_user_domain: + type: boolean + nullable: true + is_cname_to_pages_dot_github_dot_com: + type: boolean + nullable: true + is_cname_to_fastly: + type: boolean + nullable: true + is_pointed_to_github_pages_ip: + type: boolean + nullable: true + is_non_github_pages_ip_present: + type: boolean + nullable: true + is_pages_domain: + type: boolean + is_served_by_pages: + type: boolean + nullable: true + is_valid: + type: boolean + reason: + type: string + nullable: true + responds_to_https: + type: boolean + enforces_https: + type: boolean + https_error: + type: string + nullable: true + is_https_eligible: + type: boolean + nullable: true + caa_error: + type: string + nullable: true + alt_domain: + type: object + nullable: true + properties: + host: + type: string + uri: + type: string + nameservers: + type: string + dns_resolves: + type: boolean + is_proxied: + type: boolean + nullable: true + is_cloudflare_ip: + type: boolean + nullable: true + is_fastly_ip: + type: boolean + nullable: true + is_old_ip_address: + type: boolean + nullable: true + is_a_record: + type: boolean + nullable: true + has_cname_record: + type: boolean + nullable: true + has_mx_records_present: + type: boolean + nullable: true + is_valid_domain: + type: boolean + is_apex_domain: + type: boolean + should_be_a_record: + type: boolean + nullable: true + is_cname_to_github_user_domain: + type: boolean + nullable: true + is_cname_to_pages_dot_github_dot_com: + type: boolean + nullable: true + is_cname_to_fastly: + type: boolean + nullable: true + is_pointed_to_github_pages_ip: + type: boolean + nullable: true + is_non_github_pages_ip_present: + type: boolean + nullable: true + is_pages_domain: + type: boolean + is_served_by_pages: + type: boolean + nullable: true + is_valid: + type: boolean + reason: + type: string + nullable: true + responds_to_https: + type: boolean + enforces_https: + type: boolean + https_error: + type: string + nullable: true + is_https_eligible: + type: boolean + nullable: true + caa_error: + type: string + nullable: true + pull-request: + type: object + title: Pull Request + description: Pull requests let you tell others about changes you've pushed to + a repository on GitHub. Once a pull request is sent, interested parties can + review the set of changes, discuss potential modifications, and even push + follow-up commits if necessary. + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + id: + type: integer + format: int64 + example: 1 + node_id: + type: string + example: MDExOlB1bGxSZXF1ZXN0MQ== + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1347 + diff_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1347.patch + issue_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/issues/1347 + commits_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + review_comments_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment_url: + type: string + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + comments_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + statuses_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + number: + description: Number uniquely identifying the pull request within its repository. + example: 42 + type: integer + state: + description: State of this Pull Request. Either `open` or `closed`. + enum: + - open + - closed + example: open + type: string + locked: + type: boolean + example: true + title: + description: The title of the pull request. + example: Amazing new feature + type: string + user: + "$ref": "#/components/schemas/simple-user" + body: + type: string + example: Please pull these awesome changes + nullable: true + labels: + type: array + items: + type: object + properties: + id: + type: integer + format: int64 + node_id: + type: string + url: + type: string + name: + type: string + description: + type: string + nullable: true + color: + type: string + default: + type: boolean + required: + - id + - node_id + - url + - name + - description + - color + - default + milestone: + "$ref": "#/components/schemas/nullable-milestone" + active_lock_reason: + type: string + example: too heated + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + updated_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + closed_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + merged_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + merge_commit_sha: + type: string + example: e5bd3914e2e596debea16f433f57875b5b90bcd6 + nullable: true + assignee: + "$ref": "#/components/schemas/nullable-simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + nullable: true + requested_reviewers: + type: array + items: + "$ref": "#/components/schemas/simple-user" + nullable: true + requested_teams: + type: array + items: + "$ref": "#/components/schemas/team-simple" + nullable: true + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + "$ref": "#/components/schemas/repository" + sha: + type: string + user: + "$ref": "#/components/schemas/simple-user" + required: + - label + - ref + - repo + - sha + - user + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + "$ref": "#/components/schemas/repository" + sha: + type: string + user: + "$ref": "#/components/schemas/simple-user" + required: + - label + - ref + - repo + - sha + - user + _links: + type: object + properties: + comments: + "$ref": "#/components/schemas/link" + commits: + "$ref": "#/components/schemas/link" + statuses: + "$ref": "#/components/schemas/link" + html: + "$ref": "#/components/schemas/link" + issue: + "$ref": "#/components/schemas/link" + review_comments: + "$ref": "#/components/schemas/link" + review_comment: + "$ref": "#/components/schemas/link" + self: + "$ref": "#/components/schemas/link" + required: + - comments + - commits + - statuses + - html + - issue + - review_comments + - review_comment + - self + author_association: + "$ref": "#/components/schemas/author-association" + auto_merge: + "$ref": "#/components/schemas/auto-merge" + draft: + description: Indicates whether or not the pull request is a draft. + example: false + type: boolean + merged: + type: boolean + mergeable: + type: boolean + example: true + nullable: true + rebaseable: + type: boolean + example: true + nullable: true + mergeable_state: + type: string + example: clean + merged_by: + "$ref": "#/components/schemas/nullable-simple-user" + comments: + type: integer + example: 10 + review_comments: + type: integer + example: 0 + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + example: true + type: boolean + commits: + type: integer + example: 3 + additions: + type: integer + example: 100 + deletions: + type: integer + example: 3 + changed_files: + type: integer + example: 5 + required: + - _links + - assignee + - labels + - base + - body + - closed_at + - comments_url + - commits_url + - created_at + - diff_url + - head + - html_url + - id + - node_id + - issue_url + - merge_commit_sha + - merged_at + - milestone + - number + - patch_url + - review_comment_url + - review_comments_url + - statuses_url + - state + - locked + - title + - updated_at + - url + - user + - author_association + - auto_merge + - additions + - changed_files + - comments + - commits + - deletions + - mergeable + - mergeable_state + - merged + - maintainer_can_modify + - merged_by + - review_comments + pull-request-merge-result: + title: Pull Request Merge Result + description: Pull Request Merge Result + type: object + properties: + sha: + type: string + merged: + type: boolean + message: + type: string + required: + - merged + - message + - sha + pull-request-review-request: + title: Pull Request Review Request + description: Pull Request Review Request + type: object + properties: + users: + type: array + items: + "$ref": "#/components/schemas/simple-user" + teams: + type: array + items: + "$ref": "#/components/schemas/team" + required: + - users + - teams + pull-request-review: + title: Pull Request Review + description: Pull Request Reviews are reviews on pull requests. + type: object + properties: + id: + description: Unique identifier of the review + example: 42 + type: integer + format: int64 + node_id: + type: string + example: MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= + user: + "$ref": "#/components/schemas/nullable-simple-user" + body: + description: The text of the review. + example: This looks great. + type: string + state: + type: string + example: CHANGES_REQUESTED + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/12 + _links: + type: object + properties: + html: + type: object + properties: + href: + type: string + required: + - href + pull_request: + type: object + properties: + href: + type: string + required: + - href + required: + - html + - pull_request + submitted_at: + type: string + format: date-time + commit_id: + description: A commit SHA for the review. If the commit object was garbage + collected or forcibly deleted, then it no longer exists in Git and this + value will be `null`. + example: 54bb654c9e6025347f57900a4a5c2313a96b8035 + type: string + nullable: true + body_html: + type: string + body_text: + type: string + author_association: + "$ref": "#/components/schemas/author-association" + required: + - id + - node_id + - user + - body + - state + - commit_id + - html_url + - pull_request_url + - _links + - author_association + review-comment: + title: Legacy Review Comment + description: Legacy Review Comment + type: object + properties: + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + pull_request_review_id: + type: integer + format: int64 + example: 42 + nullable: true + id: + type: integer + format: int64 + example: 10 + node_id: + type: string + example: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + diff_hunk: + type: string + example: "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + path: + type: string + example: file1.txt + position: + type: integer + example: 1 + nullable: true + original_position: + type: integer + example: 4 + commit_id: + type: string + example: 6dcb09b5b57875f334f61aebed695e2e4193db5e + original_commit_id: + type: string + example: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + in_reply_to_id: + type: integer + example: 8 + user: + "$ref": "#/components/schemas/nullable-simple-user" + body: + type: string + example: Great stuff + created_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + updated_at: + type: string + format: date-time + example: '2011-04-14T16:00:49Z' + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World/pulls/1 + author_association: + "$ref": "#/components/schemas/author-association" + _links: + type: object + properties: + self: + "$ref": "#/components/schemas/link" + html: + "$ref": "#/components/schemas/link" + pull_request: + "$ref": "#/components/schemas/link" + required: + - self + - html + - pull_request + body_text: + type: string + body_html: + type: string + reactions: + "$ref": "#/components/schemas/reaction-rollup" + side: + description: The side of the first line of the range for a multi-line comment. + enum: + - LEFT + - RIGHT + default: RIGHT + type: string + start_side: + type: string + description: The side of the first line of the range for a multi-line comment. + enum: + - LEFT + - RIGHT + default: RIGHT + nullable: true + line: + description: The line of the blob to which the comment applies. The last + line of the range for a multi-line comment + example: 2 + type: integer + original_line: + description: The original line of the blob to which the comment applies. + The last line of the range for a multi-line comment + example: 2 + type: integer + start_line: + description: The first line of the range for a multi-line comment. + example: 2 + type: integer + nullable: true + original_start_line: + description: The original first line of the range for a multi-line comment. + example: 2 + type: integer + nullable: true + subject_type: + description: The level at which the comment is targeted, can be a diff line + or a file. + type: string + enum: + - line + - file + required: + - id + - node_id + - url + - body + - diff_hunk + - path + - position + - original_position + - commit_id + - original_commit_id + - user + - pull_request_review_id + - html_url + - pull_request_url + - _links + - author_association + - created_at + - updated_at + release-notes-content: + title: Generated Release Notes Content + description: Generated name and body describing a release + type: object + properties: + name: + description: The generated name of the release + type: string + example: Release v1.0.0 is now available! + body: + description: The generated body describing the contents of the release supporting + markdown formatting + type: string + required: + - name + - body + repository-rule-ruleset-info: + title: repository ruleset data for rule + description: User-defined metadata to store domain-specific information limited + to 8 keys with scalar values. + properties: + ruleset_source_type: + type: string + description: The type of source for the ruleset that includes this rule. + enum: + - Repository + - Organization + ruleset_source: + type: string + description: The name of the source of the ruleset that includes this rule. + ruleset_id: + type: integer + description: The ID of the ruleset that includes this rule. + repository-rule-detailed: + title: Repository Rule + type: object + description: A repository rule with ruleset details. + oneOf: + - allOf: + - "$ref": "#/components/schemas/repository-rule-creation" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-update" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-deletion" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-required-linear-history" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-merge-queue" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-required-deployments" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-required-signatures" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-pull-request" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-required-status-checks" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-non-fast-forward" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-commit-message-pattern" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-commit-author-email-pattern" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-file-path-restriction" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-max-file-path-length" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-max-file-size" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-workflows" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-code-scanning" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + - allOf: + - "$ref": "#/components/schemas/repository-rule-copilot-code-review" + - "$ref": "#/components/schemas/repository-rule-ruleset-info" + secret-scanning-alert: + type: object + properties: + number: + "$ref": "#/components/schemas/alert-number" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/nullable-alert-updated-at" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + locations_url: + type: string + format: uri + description: The REST API URL of the code locations for this alert. + state: + "$ref": "#/components/schemas/secret-scanning-alert-state" + resolution: + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + resolved_at: + type: string + format: date-time + description: 'The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + resolved_by: + "$ref": "#/components/schemas/nullable-simple-user" + resolution_comment: + type: string + description: An optional comment to resolve an alert. + nullable: true + secret_type: + type: string + description: The type of secret that secret scanning detected. + secret_type_display_name: + type: string + description: |- + User-friendly name for the detected secret, matching the `secret_type`. + For a list of built-in patterns, see "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)." + secret: + type: string + description: The secret that was detected. + push_protection_bypassed: + type: boolean + description: Whether push protection was bypassed for the detected secret. + nullable: true + push_protection_bypassed_by: + "$ref": "#/components/schemas/nullable-simple-user" + push_protection_bypassed_at: + type: string + format: date-time + description: 'The time that push protection was bypassed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + push_protection_bypass_request_reviewer: + "$ref": "#/components/schemas/nullable-simple-user" + push_protection_bypass_request_reviewer_comment: + type: string + description: An optional comment when reviewing a push protection bypass. + nullable: true + push_protection_bypass_request_comment: + type: string + description: An optional comment when requesting a push protection bypass. + nullable: true + push_protection_bypass_request_html_url: + type: string + format: uri + description: The URL to a push protection bypass request. + nullable: true + validity: + type: string + description: The token status as of the latest validity check. + enum: + - active + - inactive + - unknown + publicly_leaked: + type: boolean + description: Whether the detected secret was publicly leaked. + nullable: true + multi_repo: + type: boolean + description: Whether the detected secret was found in multiple repositories + under the same organization or enterprise. + nullable: true + is_base64_encoded: + type: boolean + description: A boolean value representing whether or not alert is base64 + encoded + nullable: true + first_location_detected: + "$ref": "#/components/schemas/nullable-secret-scanning-first-detected-location" + has_more_locations: + type: boolean + description: A boolean value representing whether or not the token in the + alert was detected in more than one location. + assigned_to: + "$ref": "#/components/schemas/nullable-simple-user" + secret-scanning-alert-resolution-comment: + description: An optional comment when closing or reopening an alert. Cannot + be updated or deleted. + type: string + nullable: true + secret-scanning-alert-assignee: + description: The username of the user to assign to the alert. Set to `null` + to unassign the alert. + type: string + nullable: true + secret-scanning-location: + type: object + properties: + type: + type: string + enum: + - commit + - wiki_commit + - issue_title + - issue_body + - issue_comment + - discussion_title + - discussion_body + - discussion_comment + - pull_request_title + - pull_request_body + - pull_request_comment + - pull_request_review + - pull_request_review_comment + description: The location type. Because secrets may be found in different + types of resources (ie. code, comments, issues, pull requests, discussions), + this field identifies the type of resource where the secret was found. + example: commit + details: + oneOf: + - "$ref": "#/components/schemas/secret-scanning-location-commit" + - "$ref": "#/components/schemas/secret-scanning-location-wiki-commit" + - "$ref": "#/components/schemas/secret-scanning-location-issue-title" + - "$ref": "#/components/schemas/secret-scanning-location-issue-body" + - "$ref": "#/components/schemas/secret-scanning-location-issue-comment" + - "$ref": "#/components/schemas/secret-scanning-location-discussion-title" + - "$ref": "#/components/schemas/secret-scanning-location-discussion-body" + - "$ref": "#/components/schemas/secret-scanning-location-discussion-comment" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-title" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-body" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-comment" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-review" + - "$ref": "#/components/schemas/secret-scanning-location-pull-request-review-comment" + secret-scanning-push-protection-bypass-reason: + description: The reason for bypassing push protection. + type: string + enum: + - false_positive + - used_in_tests + - will_fix_later + secret-scanning-push-protection-bypass: + type: object + properties: + reason: + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-reason" + expire_at: + type: string + format: date-time + description: 'The time that the bypass will expire in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + token_type: + type: string + description: The token type this bypass is for. + secret-scanning-scan: + description: Information on a single scan performed by secret scanning on the + repository + type: object + properties: + type: + type: string + description: The type of scan + status: + type: string + description: The state of the scan. Either "completed", "running", or "pending" + completed_at: + type: string + format: date-time + description: The time that the scan was completed. Empty if the scan is + running + nullable: true + started_at: + type: string + format: date-time + description: The time that the scan was started. Empty if the scan is pending + nullable: true + secret-scanning-scan-history: + type: object + properties: + incremental_scans: + type: array + items: + "$ref": "#/components/schemas/secret-scanning-scan" + pattern_update_scans: + type: array + items: + "$ref": "#/components/schemas/secret-scanning-scan" + backfill_scans: + type: array + items: + "$ref": "#/components/schemas/secret-scanning-scan" + custom_pattern_backfill_scans: + type: array + items: + allOf: + - "$ref": "#/components/schemas/secret-scanning-scan" + - type: object + properties: + pattern_name: + type: string + description: Name of the custom pattern for custom pattern scans + pattern_scope: + type: string + description: Level at which the custom pattern is defined, one of + "repository", "organization", or "enterprise" + repository-advisory-create: + type: object + properties: + summary: + type: string + description: A short summary of the advisory. + maxLength: 1024 + description: + type: string + description: A detailed description of what the advisory impacts. + maxLength: 65535 + cve_id: + type: string + description: The Common Vulnerabilities and Exposures (CVE) ID. + nullable: true + vulnerabilities: + type: array + description: A product affected by the vulnerability detailed in a repository + security advisory. + items: + type: object + properties: + package: + description: The name of the package affected by the vulnerability. + type: object + properties: + ecosystem: + "$ref": "#/components/schemas/security-advisory-ecosystems" + name: + type: string + description: The unique package name within its ecosystem. + nullable: true + required: + - ecosystem + vulnerable_version_range: + type: string + description: The range of the package versions affected by the vulnerability. + nullable: true + patched_versions: + type: string + description: The package version(s) that resolve the vulnerability. + nullable: true + vulnerable_functions: + type: array + description: The functions in the package that are affected. + nullable: true + items: + type: string + required: + - package + additionalProperties: false + cwe_ids: + type: array + description: A list of Common Weakness Enumeration (CWE) IDs. + nullable: true + items: + type: string + credits: + type: array + description: A list of users receiving credit for their participation in + the security advisory. + nullable: true + items: + type: object + properties: + login: + type: string + description: The username of the user credited. + type: + "$ref": "#/components/schemas/security-advisory-credit-types" + required: + - login + - type + additionalProperties: false + severity: + type: string + description: The severity of the advisory. You must choose between setting + this field or `cvss_vector_string`. + nullable: true + enum: + - critical + - high + - medium + - low + cvss_vector_string: + type: string + description: The CVSS vector that calculates the severity of the advisory. + You must choose between setting this field or `severity`. + nullable: true + start_private_fork: + type: boolean + description: Whether to create a temporary private fork of the repository + to collaborate on a fix. + default: false + required: + - summary + - description + - vulnerabilities + additionalProperties: false + private-vulnerability-report-create: + type: object + properties: + summary: + type: string + description: A short summary of the advisory. + maxLength: 1024 + description: + type: string + description: A detailed description of what the advisory impacts. + maxLength: 65535 + vulnerabilities: + type: array + description: An array of products affected by the vulnerability detailed + in a repository security advisory. + nullable: true + items: + type: object + properties: + package: + description: The name of the package affected by the vulnerability. + type: object + properties: + ecosystem: + "$ref": "#/components/schemas/security-advisory-ecosystems" + name: + type: string + description: The unique package name within its ecosystem. + nullable: true + required: + - ecosystem + vulnerable_version_range: + type: string + description: The range of the package versions affected by the vulnerability. + nullable: true + patched_versions: + type: string + description: The package version(s) that resolve the vulnerability. + nullable: true + vulnerable_functions: + type: array + description: The functions in the package that are affected. + nullable: true + items: + type: string + required: + - package + additionalProperties: false + cwe_ids: + type: array + description: A list of Common Weakness Enumeration (CWE) IDs. + nullable: true + items: + type: string + severity: + type: string + description: The severity of the advisory. You must choose between setting + this field or `cvss_vector_string`. + nullable: true + enum: + - critical + - high + - medium + - low + cvss_vector_string: + type: string + description: The CVSS vector that calculates the severity of the advisory. + You must choose between setting this field or `severity`. + nullable: true + start_private_fork: + type: boolean + description: Whether to create a temporary private fork of the repository + to collaborate on a fix. + default: false + required: + - summary + - description + additionalProperties: false + repository-advisory-update: + type: object + properties: + summary: + type: string + description: A short summary of the advisory. + maxLength: 1024 + description: + type: string + description: A detailed description of what the advisory impacts. + maxLength: 65535 + cve_id: + type: string + description: The Common Vulnerabilities and Exposures (CVE) ID. + nullable: true + vulnerabilities: + type: array + description: A product affected by the vulnerability detailed in a repository + security advisory. + items: + type: object + properties: + package: + description: The name of the package affected by the vulnerability. + type: object + properties: + ecosystem: + "$ref": "#/components/schemas/security-advisory-ecosystems" + name: + type: string + description: The unique package name within its ecosystem. + nullable: true + required: + - ecosystem + vulnerable_version_range: + type: string + description: The range of the package versions affected by the vulnerability. + nullable: true + patched_versions: + type: string + description: The package version(s) that resolve the vulnerability. + nullable: true + vulnerable_functions: + type: array + description: The functions in the package that are affected. + nullable: true + items: + type: string + required: + - package + additionalProperties: false + cwe_ids: + type: array + description: A list of Common Weakness Enumeration (CWE) IDs. + nullable: true + items: + type: string + credits: + type: array + description: A list of users receiving credit for their participation in + the security advisory. + nullable: true + items: + type: object + properties: + login: + type: string + description: The username of the user credited. + type: + "$ref": "#/components/schemas/security-advisory-credit-types" + required: + - login + - type + additionalProperties: false + severity: + type: string + description: The severity of the advisory. You must choose between setting + this field or `cvss_vector_string`. + nullable: true + enum: + - critical + - high + - medium + - low + cvss_vector_string: + type: string + description: The CVSS vector that calculates the severity of the advisory. + You must choose between setting this field or `severity`. + nullable: true + state: + type: string + description: The state of the advisory. + enum: + - published + - closed + - draft + collaborating_users: + type: array + description: A list of usernames who have been granted write access to the + advisory. + nullable: true + items: + type: string + collaborating_teams: + type: array + description: A list of team slugs which have been granted write access to + the advisory. + nullable: true + items: + type: string + additionalProperties: false + stargazer: + title: Stargazer + description: Stargazer + type: object + properties: + starred_at: + type: string + format: date-time + user: + "$ref": "#/components/schemas/nullable-simple-user" + required: + - starred_at + - user + code-frequency-stat: + title: Code Frequency Stat + description: Code Frequency Stat + type: array + items: + type: integer + commit-activity: + title: Commit Activity + description: Commit Activity + type: object + properties: + days: + type: array + example: + - 0 + - 3 + - 26 + - 20 + - 39 + - 1 + - 0 + items: + type: integer + total: + type: integer + example: 89 + week: + type: integer + example: 1336280400 + required: + - days + - total + - week + contributor-activity: + title: Contributor Activity + description: Contributor Activity + type: object + properties: + author: + "$ref": "#/components/schemas/nullable-simple-user" + total: + type: integer + example: 135 + weeks: + type: array + example: + - w: '1367712000' + a: 6898 + d: 77 + c: 10 + items: + type: object + properties: + w: + type: integer + a: + type: integer + d: + type: integer + c: + type: integer + required: + - author + - total + - weeks + participation-stats: + title: Participation Stats + type: object + properties: + all: + type: array + items: + type: integer + owner: + type: array + items: + type: integer + required: + - all + - owner + repository-subscription: + title: Repository Invitation + description: Repository invitations let you manage who you collaborate with. + type: object + properties: + subscribed: + description: Determines if notifications should be received from this repository. + type: boolean + example: true + ignored: + description: Determines if all notifications should be blocked from this + repository. + type: boolean + reason: + type: string + nullable: true + created_at: + type: string + format: date-time + example: '2012-10-06T21:34:12Z' + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example/subscription + repository_url: + type: string + format: uri + example: https://api.github.com/repos/octocat/example + required: + - created_at + - ignored + - reason + - subscribed + - url + - repository_url + tag: + title: Tag + description: Tag + type: object + properties: + name: + type: string + example: v0.1 + commit: + type: object + properties: + sha: + type: string + url: + type: string + format: uri + required: + - sha + - url + zipball_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/zipball/v0.1 + tarball_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World/tarball/v0.1 + node_id: + type: string + required: + - name + - node_id + - commit + - zipball_url + - tarball_url + tag-protection: + title: Tag protection + description: Tag protection + type: object + properties: + id: + type: integer + example: 2 + created_at: + type: string + example: '2011-01-26T19:01:12Z' + updated_at: + type: string + example: '2011-01-26T19:01:12Z' + enabled: + type: boolean + example: true + pattern: + type: string + example: v1.* + required: + - pattern + topic: + title: Topic + description: A topic aggregates entities that are related to a subject. + type: object + properties: + names: + type: array + items: + type: string + required: + - names + traffic: + title: Traffic + type: object + properties: + timestamp: + type: string + format: date-time + uniques: + type: integer + count: + type: integer + required: + - timestamp + - uniques + - count + clone-traffic: + title: Clone Traffic + description: Clone Traffic + type: object + properties: + count: + type: integer + example: 173 + uniques: + type: integer + example: 128 + clones: + type: array + items: + "$ref": "#/components/schemas/traffic" + required: + - uniques + - count + - clones + content-traffic: + title: Content Traffic + description: Content Traffic + type: object + properties: + path: + type: string + example: "/github/hubot" + title: + type: string + example: 'github/hubot: A customizable life embetterment robot.' + count: + type: integer + example: 3542 + uniques: + type: integer + example: 2225 + required: + - path + - title + - uniques + - count + referrer-traffic: + title: Referrer Traffic + description: Referrer Traffic + type: object + properties: + referrer: + type: string + example: Google + count: + type: integer + example: 4 + uniques: + type: integer + example: 3 + required: + - referrer + - uniques + - count + view-traffic: + title: View Traffic + description: View Traffic + type: object + properties: + count: + type: integer + example: 14850 + uniques: + type: integer + example: 3782 + views: + type: array + items: + "$ref": "#/components/schemas/traffic" + required: + - uniques + - count + - views + search-result-text-matches: + title: Search Result Text Matches + type: array + items: + type: object + properties: + object_url: + type: string + object_type: + nullable: true + type: string + property: + type: string + fragment: + type: string + matches: + type: array + items: + type: object + properties: + text: + type: string + indices: + type: array + items: + type: integer + code-search-result-item: + 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: + "$ref": "#/components/schemas/minimal-repository" + score: + type: number + file_size: + type: integer + language: + type: string + nullable: true + last_modified_at: + type: string + format: date-time + line_numbers: + type: array + items: + type: string + example: + - 73..77 + - 77..78 + text_matches: + "$ref": "#/components/schemas/search-result-text-matches" + required: + - score + - name + - path + - sha + - git_url + - html_url + - url + - repository + commit-search-result-item: + title: Commit Search Result Item + description: Commit Search Result Item + type: object + properties: + url: + type: string + format: uri + sha: + type: string + html_url: + type: string + format: uri + comments_url: + type: string + format: uri + commit: + type: object + properties: + author: + type: object + properties: + name: + type: string + email: + type: string + date: + type: string + format: date-time + required: + - name + - email + - date + committer: + "$ref": "#/components/schemas/nullable-git-user" + comment_count: + type: integer + message: + type: string + tree: + type: object + properties: + sha: + type: string + url: + type: string + format: uri + required: + - sha + - url + url: + type: string + format: uri + verification: + "$ref": "#/components/schemas/verification" + required: + - author + - committer + - comment_count + - message + - tree + - url + author: + "$ref": "#/components/schemas/nullable-simple-user" + committer: + "$ref": "#/components/schemas/nullable-git-user" + parents: + type: array + items: + type: object + properties: + url: + type: string + html_url: + type: string + sha: + type: string + repository: + "$ref": "#/components/schemas/minimal-repository" + score: + type: number + node_id: + type: string + text_matches: + "$ref": "#/components/schemas/search-result-text-matches" + required: + - sha + - node_id + - url + - html_url + - author + - committer + - parents + - comments_url + - commit + - repository + - score + issue-search-result-item: + title: Issue Search Result Item + description: Issue Search Result Item + type: object + properties: + url: + type: string + format: uri + repository_url: + type: string + format: uri + labels_url: + type: string + comments_url: + type: string + format: uri + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + node_id: + type: string + number: + type: integer + title: + type: string + locked: + type: boolean + active_lock_reason: + type: string + nullable: true + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + nullable: true + user: + "$ref": "#/components/schemas/nullable-simple-user" + labels: + type: array + items: + type: object + properties: + id: + type: integer + format: int64 + node_id: + type: string + url: + type: string + name: + type: string + color: + type: string + default: + type: boolean + description: + type: string + nullable: true + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + type: string + state_reason: + type: string + nullable: true + assignee: + "$ref": "#/components/schemas/nullable-simple-user" + milestone: + "$ref": "#/components/schemas/nullable-milestone" + comments: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + closed_at: + type: string + format: date-time + nullable: true + text_matches: + "$ref": "#/components/schemas/search-result-text-matches" + pull_request: + type: object + properties: + merged_at: + type: string + format: date-time + nullable: true + diff_url: + type: string + format: uri + nullable: true + html_url: + type: string + format: uri + nullable: true + patch_url: + type: string + format: uri + nullable: true + url: + type: string + format: uri + nullable: true + required: + - diff_url + - html_url + - patch_url + - url + body: + type: string + score: + type: number + author_association: + "$ref": "#/components/schemas/author-association" + draft: + type: boolean + repository: + "$ref": "#/components/schemas/repository" + body_html: + type: string + body_text: + type: string + timeline_url: + type: string + format: uri + type: + "$ref": "#/components/schemas/issue-type" + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + reactions: + "$ref": "#/components/schemas/reaction-rollup" + required: + - assignee + - closed_at + - comments + - comments_url + - events_url + - html_url + - id + - node_id + - labels + - labels_url + - milestone + - number + - repository_url + - state + - locked + - title + - url + - user + - author_association + - created_at + - updated_at + - score + label-search-result-item: + title: Label Search Result Item + description: Label Search Result Item + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + format: uri + name: + type: string + color: + type: string + default: + type: boolean + description: + type: string + nullable: true + score: + type: number + text_matches: + "$ref": "#/components/schemas/search-result-text-matches" + required: + - id + - node_id + - url + - name + - color + - default + - description + - score + repo-search-result-item: + title: Repo Search Result Item + description: Repo Search Result Item + type: object + properties: + id: + type: integer + node_id: + type: string + name: + type: string + full_name: + type: string + owner: + "$ref": "#/components/schemas/nullable-simple-user" + private: + type: boolean + html_url: + type: string + format: uri + description: + type: string + nullable: true + fork: + type: boolean + url: + type: string + format: uri + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + pushed_at: + type: string + format: date-time + homepage: + type: string + format: uri + nullable: true + size: + type: integer + stargazers_count: + type: integer + watchers_count: + type: integer + language: + type: string + nullable: true + forks_count: + type: integer + open_issues_count: + type: integer + master_branch: + type: string + default_branch: + type: string + score: + type: number + forks_url: + type: string + format: uri + keys_url: + type: string + collaborators_url: + type: string + teams_url: + type: string + format: uri + hooks_url: + type: string + format: uri + issue_events_url: + type: string + events_url: + type: string + format: uri + assignees_url: + type: string + branches_url: + type: string + tags_url: + type: string + format: uri + blobs_url: + type: string + git_tags_url: + type: string + git_refs_url: + type: string + trees_url: + type: string + statuses_url: + type: string + languages_url: + type: string + format: uri + stargazers_url: + type: string + format: uri + contributors_url: + type: string + format: uri + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + commits_url: + type: string + git_commits_url: + type: string + comments_url: + type: string + issue_comment_url: + type: string + contents_url: + type: string + compare_url: + type: string + merges_url: + type: string + format: uri + archive_url: + type: string + downloads_url: + type: string + format: uri + issues_url: + type: string + pulls_url: + type: string + milestones_url: + type: string + notifications_url: + type: string + labels_url: + type: string + releases_url: + type: string + deployments_url: + type: string + format: uri + git_url: + type: string + ssh_url: + type: string + clone_url: + type: string + svn_url: + type: string + format: uri + forks: + type: integer + open_issues: + type: integer + watchers: + type: integer + topics: + type: array + items: + type: string + mirror_url: + type: string + format: uri + nullable: true + has_issues: + type: boolean + has_projects: + type: boolean + has_pages: + type: boolean + has_wiki: + type: boolean + has_downloads: + type: boolean + has_discussions: + type: boolean + archived: + type: boolean + disabled: + type: boolean + description: Returns whether or not this repository disabled. + visibility: + description: 'The repository visibility: public, private, or internal.' + type: string + license: + "$ref": "#/components/schemas/nullable-license-simple" + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + push: + type: boolean + triage: + type: boolean + pull: + type: boolean + required: + - admin + - pull + - push + text_matches: + "$ref": "#/components/schemas/search-result-text-matches" + temp_clone_token: + type: string + allow_merge_commit: + type: boolean + allow_squash_merge: + type: boolean + allow_rebase_merge: + type: boolean + allow_auto_merge: + type: boolean + delete_branch_on_merge: + type: boolean + allow_forking: + type: boolean + is_template: + type: boolean + web_commit_signoff_required: + type: boolean + example: false + 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 + - score + topic-search-result-item: + title: Topic Search Result Item + description: Topic Search Result Item + type: object + properties: + name: + type: string + display_name: + type: string + nullable: true + short_description: + type: string + nullable: true + description: + type: string + nullable: true + created_by: + type: string + nullable: true + released: + type: string + nullable: true + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + featured: + type: boolean + curated: + type: boolean + score: + type: number + repository_count: + type: integer + nullable: true + logo_url: + type: string + format: uri + nullable: true + text_matches: + "$ref": "#/components/schemas/search-result-text-matches" + related: + type: array + nullable: true + items: + type: object + properties: + topic_relation: + type: object + properties: + id: + type: integer + name: + type: string + topic_id: + type: integer + relation_type: + type: string + aliases: + type: array + nullable: true + items: + type: object + properties: + topic_relation: + type: object + properties: + id: + type: integer + name: + type: string + topic_id: + type: integer + relation_type: + type: string + required: + - name + - display_name + - short_description + - description + - created_by + - released + - created_at + - updated_at + - featured + - curated + - score + user-search-result-item: + title: User Search Result Item + description: User Search Result Item + type: object + properties: + login: + type: string + id: + type: integer + format: int64 + node_id: + type: string + avatar_url: + type: string + format: uri + gravatar_id: + type: string + nullable: true + url: + type: string + format: uri + html_url: + type: string + format: uri + followers_url: + type: string + format: uri + subscriptions_url: + type: string + format: uri + organizations_url: + type: string + format: uri + repos_url: + type: string + format: uri + received_events_url: + type: string + format: uri + type: + type: string + score: + type: number + following_url: + type: string + gists_url: + type: string + starred_url: + type: string + events_url: + type: string + public_repos: + type: integer + public_gists: + type: integer + followers: + type: integer + following: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + name: + type: string + nullable: true + bio: + type: string + nullable: true + email: + type: string + format: email + nullable: true + location: + type: string + nullable: true + site_admin: + type: boolean + hireable: + type: boolean + nullable: true + text_matches: + "$ref": "#/components/schemas/search-result-text-matches" + blog: + type: string + nullable: true + company: + type: string + nullable: true + suspended_at: + type: string + format: date-time + nullable: true + user_view_type: + type: string + 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 + - score + private-user: + title: Private User + description: Private User + type: object + properties: + login: + type: string + example: octocat + id: + type: integer + format: int64 + example: 1 + user_view_type: + type: string + node_id: + type: string + example: MDQ6VXNlcjE= + avatar_url: + type: string + format: uri + example: https://github.com/images/error/octocat_happy.gif + gravatar_id: + type: string + example: 41d064eb2195891e12d0413f63227ea7 + nullable: true + url: + type: string + format: uri + example: https://api.github.com/users/octocat + html_url: + type: string + format: uri + example: https://github.com/octocat + followers_url: + type: string + format: uri + example: https://api.github.com/users/octocat/followers + following_url: + type: string + example: https://api.github.com/users/octocat/following{/other_user} + gists_url: + type: string + example: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: + type: string + example: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: + type: string + format: uri + example: https://api.github.com/users/octocat/subscriptions + organizations_url: + type: string + format: uri + example: https://api.github.com/users/octocat/orgs + repos_url: + type: string + format: uri + example: https://api.github.com/users/octocat/repos + events_url: + type: string + example: https://api.github.com/users/octocat/events{/privacy} + received_events_url: + type: string + format: uri + example: https://api.github.com/users/octocat/received_events + type: + type: string + example: User + site_admin: + type: boolean + name: + type: string + example: monalisa octocat + nullable: true + company: + type: string + example: GitHub + nullable: true + blog: + type: string + example: https://github.com/blog + nullable: true + location: + type: string + example: San Francisco + nullable: true + email: + type: string + format: email + example: octocat@github.com + nullable: true + notification_email: + type: string + format: email + example: octocat@github.com + nullable: true + hireable: + type: boolean + nullable: true + bio: + type: string + example: There once was... + nullable: true + twitter_username: + type: string + example: monalisa + nullable: true + public_repos: + type: integer + example: 2 + public_gists: + type: integer + example: 1 + followers: + type: integer + example: 20 + following: + type: integer + example: 0 + created_at: + type: string + format: date-time + example: '2008-01-14T04:33:35Z' + updated_at: + type: string + format: date-time + example: '2008-01-14T04:33:35Z' + private_gists: + type: integer + example: 81 + total_private_repos: + type: integer + example: 100 + owned_private_repos: + type: integer + example: 100 + disk_usage: + type: integer + example: 10000 + collaborators: + type: integer + example: 8 + two_factor_authentication: + type: boolean + example: true + plan: + type: object + properties: + collaborators: + type: integer + name: + type: string + space: + type: integer + private_repos: + type: integer + required: + - collaborators + - name + - space + - private_repos + business_plus: + type: boolean + ldap_dn: + type: string + 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 + - bio + - blog + - company + - email + - followers + - following + - hireable + - location + - name + - public_gists + - public_repos + - created_at + - updated_at + - collaborators + - disk_usage + - owned_private_repos + - private_gists + - total_private_repos + - two_factor_authentication + codespaces-secret: + title: Codespaces Secret + description: Secrets for a GitHub Codespace. + type: object + properties: + name: + description: The name of the secret + example: SECRET_NAME + type: string + created_at: + description: The date and time at which the secret was created, in ISO 8601 + format':' YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + updated_at: + description: The date and time at which the secret was last updated, in + ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + type: string + format: date-time + visibility: + description: The type of repositories in the organization that the secret + is visible to + enum: + - all + - private + - selected + type: string + selected_repositories_url: + description: The API URL at which the list of repositories this secret is + visible to can be retrieved + type: string + format: uri + example: https://api.github.com/user/secrets/SECRET_NAME/repositories + required: + - name + - created_at + - updated_at + - visibility + - selected_repositories_url + codespaces-user-public-key: + title: CodespacesUserPublicKey + description: The public key used for setting user Codespaces' Secrets. + type: object + properties: + key_id: + description: The identifier for the key. + type: string + example: '1234567' + key: + description: The Base64 encoded public key. + type: string + example: hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + required: + - key_id + - key + codespace-export-details: + type: object + title: Fetches information about an export of a codespace. + description: An export of a codespace. Also, latest export details for a codespace + can be fetched with id = latest + properties: + state: + type: string + description: State of the latest export + nullable: true + example: succeeded | failed | in_progress + completed_at: + description: Completion time of the last export operation + type: string + format: date-time + nullable: true + example: '2021-01-01T19:01:12Z' + branch: + type: string + description: Name of the exported branch + nullable: true + example: codespace-monalisa-octocat-hello-world-g4wpq6h95q + sha: + type: string + description: Git commit SHA of the exported branch + nullable: true + example: fd95a81ca01e48ede9f39c799ecbcef817b8a3b2 + id: + type: string + description: Id for the export details + example: latest + export_url: + type: string + description: Url for fetching export details + example: https://api.github.com/user/codespaces/:name/exports/latest + html_url: + type: string + nullable: true + description: Web url for the exported branch + example: https://github.com/octocat/hello-world/tree/:branch + codespace-with-full-repository: + type: object + title: Codespace + description: A codespace. + properties: + id: + type: integer + format: int64 + example: 1 + name: + description: Automatically generated name of this codespace. + type: string + example: monalisa-octocat-hello-world-g4wpq6h95q + display_name: + description: Display name for this codespace. + type: string + example: bookish space pancake + nullable: true + environment_id: + description: UUID identifying this codespace's environment. + type: string + example: 26a7c758-7299-4a73-b978-5a92a7ae98a0 + nullable: true + owner: + "$ref": "#/components/schemas/simple-user" + billable_owner: + "$ref": "#/components/schemas/simple-user" + repository: + "$ref": "#/components/schemas/full-repository" + machine: + "$ref": "#/components/schemas/nullable-codespace-machine" + devcontainer_path: + description: Path to devcontainer.json from repo root used to create Codespace. + type: string + example: ".devcontainer/example/devcontainer.json" + nullable: true + prebuild: + description: Whether the codespace was created from a prebuild. + type: boolean + example: false + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + updated_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + last_used_at: + description: Last known time this codespace was started. + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + state: + description: State of this codespace. + enum: + - Unknown + - Created + - Queued + - Provisioning + - Available + - Awaiting + - Unavailable + - Deleted + - Moved + - Shutdown + - Archived + - Starting + - ShuttingDown + - Failed + - Exporting + - Updating + - Rebuilding + example: Available + type: string + url: + description: API URL for this codespace. + type: string + format: uri + git_status: + description: Details about the codespace's git repository. + type: object + properties: + ahead: + description: The number of commits the local repository is ahead of + the remote. + type: integer + example: 0 + behind: + description: The number of commits the local repository is behind the + remote. + type: integer + example: 0 + has_unpushed_changes: + description: Whether the local repository has unpushed changes. + type: boolean + has_uncommitted_changes: + description: Whether the local repository has uncommitted changes. + type: boolean + ref: + description: The current branch (or SHA if in detached HEAD state) of + the local repository. + type: string + example: main + location: + description: The initally assigned location of a new codespace. + enum: + - EastUs + - SouthEastAsia + - WestEurope + - WestUs2 + example: WestUs2 + type: string + idle_timeout_minutes: + description: The number of minutes of inactivity after which this codespace + will be automatically stopped. + type: integer + example: 60 + nullable: true + web_url: + description: URL to access this codespace on the web. + type: string + format: uri + machines_url: + description: API URL to access available alternate machine types for this + codespace. + type: string + format: uri + start_url: + description: API URL to start this codespace. + type: string + format: uri + stop_url: + description: API URL to stop this codespace. + type: string + format: uri + publish_url: + description: API URL to publish this codespace to a new repository. + type: string + format: uri + nullable: true + pulls_url: + description: API URL for the Pull Request associated with this codespace, + if any. + type: string + format: uri + nullable: true + recent_folders: + type: array + items: + type: string + runtime_constraints: + type: object + properties: + allowed_port_privacy_settings: + description: The privacy settings a user can select from when forwarding + a port. + type: array + items: + type: string + nullable: true + pending_operation: + description: Whether or not a codespace has a pending async operation. This + would mean that the codespace is temporarily unavailable. The only thing + that you can do with a codespace in this state is delete it. + type: boolean + nullable: true + pending_operation_disabled_reason: + description: Text to show user when codespace is disabled by a pending operation + type: string + nullable: true + idle_timeout_notice: + description: Text to show user when codespace idle timeout minutes has been + overriden by an organization policy + type: string + nullable: true + retention_period_minutes: + description: Duration in minutes after codespace has gone idle in which + it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + type: integer + example: 60 + nullable: true + retention_expires_at: + description: When a codespace will be auto-deleted based on the "retention_period_minutes" + and "last_used_at" + type: string + format: date-time + example: '2011-01-26T20:01:12Z' + nullable: true + required: + - id + - name + - environment_id + - owner + - billable_owner + - repository + - machine + - prebuild + - created_at + - updated_at + - last_used_at + - state + - url + - git_status + - location + - idle_timeout_minutes + - web_url + - machines_url + - start_url + - stop_url + - pulls_url + - recent_folders + email: + title: Email + description: Email + type: object + properties: + email: + type: string + format: email + example: octocat@github.com + primary: + type: boolean + example: true + verified: + type: boolean + example: true + visibility: + type: string + example: public + nullable: true + required: + - email + - primary + - verified + - visibility + gpg-key: + title: GPG Key + description: A unique encryption key + type: object + properties: + id: + type: integer + format: int64 + example: 3 + name: + type: string + example: Octocat's GPG Key + nullable: true + primary_key_id: + type: integer + nullable: true + key_id: + type: string + example: 3262EFF25BA0D270 + public_key: + type: string + example: xsBNBFayYZ... + emails: + type: array + example: + - email: octocat@users.noreply.github.com + verified: true + items: + type: object + properties: + email: + type: string + verified: + type: boolean + subkeys: + type: array + example: + - id: 4 + primary_key_id: 3 + key_id: 4A595D4C72EE49C7 + public_key: zsBNBFayYZ... + emails: [] + can_sign: false + can_encrypt_comms: true + can_encrypt_storage: true + can_certify: false + created_at: '2016-03-24T11:31:04-06:00' + expires_at: + revoked: false + items: + type: object + properties: + id: + type: integer + format: int64 + primary_key_id: + type: integer + key_id: + type: string + public_key: + type: string + emails: + type: array + items: + type: object + properties: + email: + type: string + verified: + type: boolean + subkeys: + type: array + items: {} + can_sign: + type: boolean + can_encrypt_comms: + type: boolean + can_encrypt_storage: + type: boolean + can_certify: + type: boolean + created_at: + type: string + expires_at: + type: string + nullable: true + raw_key: + type: string + nullable: true + revoked: + type: boolean + can_sign: + type: boolean + example: true + can_encrypt_comms: + type: boolean + can_encrypt_storage: + type: boolean + can_certify: + type: boolean + example: true + created_at: + type: string + format: date-time + example: '2016-03-24T11:31:04-06:00' + expires_at: + type: string + format: date-time + nullable: true + revoked: + type: boolean + example: true + raw_key: + type: string + nullable: true + required: + - id + - primary_key_id + - key_id + - raw_key + - public_key + - created_at + - expires_at + - can_sign + - can_encrypt_comms + - can_encrypt_storage + - can_certify + - emails + - subkeys + - revoked + key: + title: Key + description: Key + type: object + properties: + key: + type: string + id: + type: integer + format: int64 + url: + type: string + title: + type: string + created_at: + type: string + format: date-time + verified: + type: boolean + read_only: + type: boolean + last_used: + nullable: true + type: string + format: date-time + required: + - key + - id + - url + - title + - created_at + - verified + - read_only + marketplace-account: + title: Marketplace Account + type: object + properties: + url: + type: string + format: uri + id: + type: integer + type: + type: string + node_id: + type: string + login: + type: string + email: + type: string + nullable: true + format: email + organization_billing_email: + type: string + nullable: true + format: email + required: + - url + - id + - type + - login + user-marketplace-purchase: + title: User Marketplace Purchase + description: User Marketplace Purchase + type: object + properties: + billing_cycle: + type: string + example: monthly + next_billing_date: + type: string + format: date-time + example: '2017-11-11T00:00:00Z' + nullable: true + unit_count: + type: integer + nullable: true + on_free_trial: + type: boolean + example: true + free_trial_ends_on: + type: string + format: date-time + example: '2017-11-11T00:00:00Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2017-11-02T01:12:12Z' + nullable: true + account: + "$ref": "#/components/schemas/marketplace-account" + plan: + "$ref": "#/components/schemas/marketplace-listing-plan" + required: + - billing_cycle + - next_billing_date + - unit_count + - updated_at + - on_free_trial + - free_trial_ends_on + - account + - plan + social-account: + title: Social account + description: Social media account + type: object + properties: + provider: + type: string + example: linkedin + url: + type: string + example: https://www.linkedin.com/company/github/ + required: + - provider + - url + ssh-signing-key: + title: SSH Signing Key + description: A public SSH key used to sign Git commits + type: object + properties: + key: + type: string + id: + type: integer + title: + type: string + created_at: + type: string + format: date-time + required: + - key + - id + - title + - created_at + starred-repository: + title: Starred Repository + description: Starred Repository + type: object + properties: + starred_at: + type: string + format: date-time + repo: + "$ref": "#/components/schemas/repository" + required: + - starred_at + - repo + hovercard: + title: Hovercard + description: Hovercard + type: object + properties: + contexts: + type: array + items: + type: object + properties: + message: + type: string + octicon: + type: string + required: + - message + - octicon + required: + - contexts + key-simple: + title: Key Simple + description: Key Simple + type: object + properties: + id: + type: integer + key: + type: string + created_at: + type: string + format: date-time + last_used: + nullable: true + type: string + format: date-time + required: + - key + - id + billing-premium-request-usage-report-user: + type: object + properties: + timePeriod: + type: object + properties: + year: + type: integer + description: The year for the usage report. + month: + type: integer + description: The month for the usage report. + day: + type: integer + description: The day for the usage report. + required: + - year + user: + type: string + description: The unique identifier of the user. + product: + type: string + description: The product for the usage report. + model: + type: string + description: The model for the usage report. + usageItems: + type: array + items: + type: object + properties: + product: + type: string + description: Product name. + sku: + type: string + description: SKU name. + model: + type: string + description: Model name. + unitType: + type: string + description: Unit type of the usage line item. + pricePerUnit: + type: number + description: Price per unit of the usage line item. + grossQuantity: + type: number + description: Gross quantity of the usage line item. + grossAmount: + type: number + description: Gross amount of the usage line item. + discountQuantity: + type: number + description: Discount quantity of the usage line item. + discountAmount: + type: number + description: Discount amount of the usage line item. + netQuantity: + type: number + description: Net quantity of the usage line item. + netAmount: + type: number + description: Net amount of the usage line item. + required: + - product + - sku + - model + - unitType + - pricePerUnit + - grossQuantity + - grossAmount + - discountQuantity + - discountAmount + - netQuantity + - netAmount + required: + - timePeriod + - user + - usageItems + billing-usage-report-user: + type: object + properties: + usageItems: + type: array + items: + type: object + properties: + date: + type: string + description: Date of the usage line item. + product: + type: string + description: Product name. + sku: + type: string + description: SKU name. + quantity: + type: integer + description: Quantity of the usage line item. + unitType: + type: string + description: Unit type of the usage line item. + pricePerUnit: + type: number + description: Price per unit of the usage line item. + grossAmount: + type: number + description: Gross amount of the usage line item. + discountAmount: + type: number + description: Discount amount of the usage line item. + netAmount: + type: number + description: Net amount of the usage line item. + repositoryName: + type: string + description: Name of the repository. + required: + - date + - product + - sku + - quantity + - unitType + - pricePerUnit + - grossAmount + - discountAmount + - netAmount + billing-usage-summary-report-user: + type: object + properties: + timePeriod: + type: object + properties: + year: + type: integer + description: The year for the usage report. + month: + type: integer + description: The month for the usage report. + day: + type: integer + description: The day for the usage report. + required: + - year + user: + type: string + description: The unique identifier of the user. + repository: + type: string + description: The name of the repository for the usage report. + product: + type: string + description: The product for the usage report. + sku: + type: string + description: The SKU for the usage report. + usageItems: + type: array + items: + type: object + properties: + product: + type: string + description: Product name. + sku: + type: string + description: SKU name. + unitType: + type: string + description: Unit type of the usage line item. + pricePerUnit: + type: number + description: Price per unit of the usage line item. + grossQuantity: + type: number + description: Gross quantity of the usage line item. + grossAmount: + type: number + description: Gross amount of the usage line item. + discountQuantity: + type: number + description: Discount quantity of the usage line item. + discountAmount: + type: number + description: Discount amount of the usage line item. + netQuantity: + type: number + description: Net quantity of the usage line item. + netAmount: + type: number + description: Net amount of the usage line item. + required: + - product + - sku + - unitType + - pricePerUnit + - grossQuantity + - grossAmount + - discountQuantity + - discountAmount + - netQuantity + - netAmount + required: + - timePeriod + - user + - usageItems + enterprise-webhooks: + title: Enterprise + description: |- + An enterprise on GitHub. Webhook payloads contain the `enterprise` property when the webhook is configured + on an enterprise account or an organization that's part of an enterprise account. For more information, + see "[About enterprise accounts](https://docs.github.com/admin/overview/about-enterprise-accounts)." + type: object + properties: + description: + description: A short description of the enterprise. + type: string + nullable: true + html_url: + type: string + format: uri + example: https://github.com/enterprises/octo-business + website_url: + description: The enterprise's website URL. + type: string + nullable: true + format: uri + id: + description: Unique identifier of the enterprise + example: 42 + type: integer + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + description: The name of the enterprise. + type: string + example: Octo Business + slug: + description: The slug url identifier for the enterprise. + type: string + example: octo-business + created_at: + type: string + nullable: true + format: date-time + example: '2019-01-26T19:01:12Z' + updated_at: + type: string + nullable: true + format: date-time + example: '2019-01-26T19:14:43Z' + avatar_url: + type: string + format: uri + required: + - id + - node_id + - name + - slug + - html_url + - created_at + - updated_at + - avatar_url + simple-installation: + title: Simple Installation + description: |- + The GitHub App installation. Webhook payloads contain the `installation` property when the event is configured + for and sent to a GitHub App. For more information, + see "[Using webhooks with GitHub Apps](https://docs.github.com/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps)." + type: object + properties: + id: + description: The ID of the installation. + type: integer + example: 1 + node_id: + description: The global node ID of the installation. + type: string + example: MDQ6VXNlcjU4MzIzMQ== + required: + - id + - node_id + organization-simple-webhooks: + title: Organization Simple + description: |- + A GitHub organization. Webhook payloads contain the `organization` property when the webhook is configured for an + organization, or when the event occurs from activity in a repository owned by an organization. + type: object + properties: + login: + type: string + example: github + id: + type: integer + example: 1 + node_id: + type: string + example: MDEyOk9yZ2FuaXphdGlvbjE= + url: + type: string + format: uri + example: https://api.github.com/orgs/github + repos_url: + type: string + format: uri + example: https://api.github.com/orgs/github/repos + events_url: + type: string + format: uri + example: https://api.github.com/orgs/github/events + hooks_url: + type: string + example: https://api.github.com/orgs/github/hooks + issues_url: + type: string + example: https://api.github.com/orgs/github/issues + members_url: + type: string + example: https://api.github.com/orgs/github/members{/member} + public_members_url: + type: string + example: https://api.github.com/orgs/github/public_members{/member} + avatar_url: + type: string + example: https://github.com/images/error/octocat_happy.gif + description: + type: string + example: A great organization + nullable: true + required: + - login + - url + - id + - node_id + - repos_url + - events_url + - hooks_url + - issues_url + - members_url + - public_members_url + - avatar_url + - description + repository-webhooks: + title: Repository + description: |- + The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + when the event occurs from activity in a repository. + type: object + properties: + id: + description: Unique identifier of the repository + example: 42 + type: integer + format: int64 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + description: The name of the repository. + type: string + example: Team Environment + full_name: + type: string + example: octocat/Hello-World + license: + "$ref": "#/components/schemas/nullable-license-simple" + organization: + "$ref": "#/components/schemas/nullable-simple-user" + 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: + "$ref": "#/components/schemas/simple-user" + private: + description: Whether the repository is private or public. + default: false + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + example: git:github.com/octocat/Hello-World.git + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + example: git@github.com:octocat/Hello-World.git + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + example: https://github.com/octocat/Hello-World.git + mirror_url: + type: string + format: uri + example: git:git.example.com/octocat/Hello-World + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + format: uri + example: https://svn.github.com/octocat/Hello-World + homepage: + type: string + format: uri + example: https://github.com + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + example: 9 + stargazers_count: + type: integer + example: 80 + watchers_count: + type: integer + example: 80 + size: + description: The size of the repository, in kilobytes. Size is calculated + hourly. When a repository is initially created, the size is 0. + type: integer + example: 108 + default_branch: + description: The default branch of the repository. + type: string + example: master + open_issues_count: + type: integer + example: 0 + is_template: + description: Whether this repository acts as a template that can be used + to generate new repositories. + default: false + type: boolean + example: true + topics: + type: array + items: + type: string + custom_properties: + type: object + 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. + additionalProperties: true + has_issues: + description: Whether issues are enabled. + default: true + type: boolean + example: true + has_projects: + description: Whether projects are enabled. + default: true + type: boolean + example: true + has_wiki: + description: Whether the wiki is enabled. + default: true + type: boolean + example: true + has_pages: + type: boolean + has_downloads: + description: Whether downloads are enabled. + default: true + type: boolean + example: true + has_discussions: + description: Whether discussions are enabled. + default: false + type: boolean + example: 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 + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + default: true + type: boolean + example: true + template_repository: + nullable: true + type: object + 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 + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + 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 + example: true + allow_auto_merge: + description: Whether to allow Auto-merge to be used on pull requests. + default: false + type: boolean + example: false + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are merged + default: false + type: boolean + example: 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 + example: false + use_squash_pr_title_as_default: + type: boolean + 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. + default: false + deprecated: true + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + default: true + type: boolean + example: true + allow_forking: + description: Whether to allow forking this repo + type: boolean + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based commits + default: false + 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 + example: '"2020-07-09T00:17:42Z"' + anonymous_access_enabled: + type: boolean + description: Whether anonymous git access is enabled for this repository + 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 + webhooks_rule: + title: branch protection rule + description: The branch protection rule. Includes a `name` and all the [branch + protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) + applied to branches that match the name. Binary settings are boolean. Multi-level + configurations are one of `off`, `non_admins`, or `everyone`. Actor and build + lists are arrays of strings. + type: object + properties: + admin_enforced: + type: boolean + allow_deletions_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + allow_force_pushes_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + authorized_actor_names: + type: array + items: + type: string + authorized_actors_only: + type: boolean + authorized_dismissal_actors_only: + type: boolean + create_protected: + type: boolean + created_at: + type: string + format: date-time + dismiss_stale_reviews_on_push: + type: boolean + id: + type: integer + ignore_approvals_from_contributors: + type: boolean + linear_history_requirement_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + lock_branch_enforcement_level: + description: The enforcement level of the branch lock setting. `off` means + the branch is not locked, `non_admins` means the branch is read-only for + non_admins, and `everyone` means the branch is read-only for everyone. + type: string + enum: + - 'off' + - non_admins + - everyone + lock_allows_fork_sync: + description: Whether users can pull changes from upstream when the branch + is locked. Set to `true` to allow users to pull changes from upstream + when the branch is locked. This setting is only applicable for forks. + type: boolean + merge_queue_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + name: + type: string + pull_request_reviews_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + repository_id: + type: integer + require_code_owner_review: + type: boolean + require_last_push_approval: + description: Whether the most recent push must be approved by someone other + than the person who pushed it + type: boolean + required_approving_review_count: + type: integer + required_conversation_resolution_level: + type: string + enum: + - 'off' + - non_admins + - everyone + required_deployments_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + required_status_checks: + type: array + items: + type: string + required_status_checks_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + signature_requirement_enforcement_level: + type: string + enum: + - 'off' + - non_admins + - everyone + strict_required_status_checks_policy: + type: boolean + updated_at: + type: string + format: date-time + required: + - id + - repository_id + - name + - created_at + - updated_at + - pull_request_reviews_enforcement_level + - required_approving_review_count + - dismiss_stale_reviews_on_push + - require_code_owner_review + - authorized_dismissal_actors_only + - ignore_approvals_from_contributors + - required_status_checks + - required_status_checks_enforcement_level + - strict_required_status_checks_policy + - signature_requirement_enforcement_level + - linear_history_requirement_enforcement_level + - lock_branch_enforcement_level + - admin_enforced + - allow_force_pushes_enforcement_level + - allow_deletions_enforcement_level + - merge_queue_enforcement_level + - required_deployments_enforcement_level + - required_conversation_resolution_level + - authorized_actors_only + - authorized_actor_names + simple-check-suite: + description: A suite of checks performed on the code of a given code change + type: object + properties: + after: + example: d6fde92930d4715a2b49857d24b940956b26d2d3 + type: string + nullable: true + app: + "$ref": "#/components/schemas/integration" + before: + example: 146e867f55c26428e5f9fade55a9bbf5e95a7912 + type: string + nullable: true + conclusion: + example: neutral + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - skipped + - timed_out + - action_required + - stale + - startup_failure + created_at: + type: string + format: date-time + head_branch: + example: master + type: string + nullable: true + head_sha: + description: The SHA of the head commit that is being checked. + example: '009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d' + type: string + id: + example: 5 + type: integer + node_id: + example: MDEwOkNoZWNrU3VpdGU1 + type: string + pull_requests: + type: array + items: + "$ref": "#/components/schemas/pull-request-minimal" + repository: + "$ref": "#/components/schemas/minimal-repository" + status: + example: completed + type: string + enum: + - queued + - in_progress + - completed + - pending + - waiting + updated_at: + type: string + format: date-time + url: + example: https://api.github.com/repos/github/hello-world/check-suites/5 + type: string + check-run-with-simple-check-suite: + title: CheckRun + description: A check performed on the code of a given code change + type: object + properties: + app: + "$ref": "#/components/schemas/integration" + check_suite: + "$ref": "#/components/schemas/simple-check-suite" + completed_at: + example: '2018-05-04T01:14:52Z' + type: string + nullable: true + format: date-time + conclusion: + example: neutral + type: string + nullable: true + enum: + - waiting + - pending + - startup_failure + - stale + - success + - failure + - neutral + - cancelled + - skipped + - timed_out + - action_required + deployment: + "$ref": "#/components/schemas/deployment-simple" + details_url: + example: https://example.com + type: string + external_id: + example: '42' + type: string + head_sha: + description: The SHA of the commit that is being checked. + example: '009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d' + type: string + html_url: + example: https://github.com/github/hello-world/runs/4 + type: string + id: + description: The id of the check. + example: 21 + type: integer + name: + description: The name of the check. + example: test-coverage + type: string + node_id: + example: MDg6Q2hlY2tSdW40 + type: string + output: + type: object + properties: + annotations_count: + type: integer + annotations_url: + type: string + format: uri + summary: + type: string + nullable: true + text: + type: string + nullable: true + title: + type: string + nullable: true + required: + - title + - summary + - text + - annotations_count + - annotations_url + pull_requests: + type: array + items: + "$ref": "#/components/schemas/pull-request-minimal" + started_at: + example: '2018-05-04T01:14:52Z' + type: string + format: date-time + status: + description: The phase of the lifecycle that the check is currently in. + example: queued + type: string + enum: + - queued + - in_progress + - completed + - pending + url: + example: https://api.github.com/repos/github/hello-world/check-runs/4 + type: string + required: + - id + - node_id + - head_sha + - name + - url + - html_url + - details_url + - status + - conclusion + - started_at + - completed_at + - external_id + - check_suite + - output + - app + - pull_requests + webhooks_code_scanning_commit_oid: + description: The commit SHA of the code scanning alert. When the action is `reopened_by_user` + or `closed_by_user`, the event was triggered by the `sender` and this value + will be empty. + type: string + webhooks_code_scanning_ref: + description: The Git reference of the code scanning alert. When the action is + `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` + and this value will be empty. + type: string + webhooks_deploy_pusher_type: + description: The pusher type for the event. Can be either `user` or a deploy + key. + type: string + webhooks_ref_0: + description: The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) + resource. + type: string + webhooks_deploy_key: + description: The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) + resource. + type: object + properties: + added_by: + type: string + nullable: true + created_at: + type: string + id: + type: integer + key: + type: string + last_used: + type: string + nullable: true + read_only: + type: boolean + title: + type: string + url: + type: string + format: uri + verified: + type: boolean + enabled: + type: boolean + required: + - id + - key + - url + - title + - verified + - created_at + - read_only + webhooks_workflow: + title: Workflow + type: object + nullable: true + properties: + badge_url: + type: string + format: uri + created_at: + type: string + format: date-time + html_url: + type: string + format: uri + id: + type: integer + name: + type: string + node_id: + type: string + path: + type: string + state: + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - badge_url + - created_at + - html_url + - id + - name + - node_id + - path + - state + - updated_at + - url + webhooks_approver: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + webhooks_reviewers: + type: array + items: + type: object + properties: + reviewer: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + type: + type: string + enum: + - User + webhooks_workflow_job_run: + type: object + properties: + conclusion: + nullable: true + created_at: + type: string + environment: + type: string + html_url: + type: string + id: + type: integer + name: + nullable: true + status: + type: string + updated_at: + type: string + required: + - id + - name + - status + - conclusion + - html_url + - created_at + - updated_at + - environment + webhooks_user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + webhooks_answer: + type: object + properties: + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + type: string + child_comment_count: + type: integer + created_at: + type: string + format: date-time + discussion_id: + type: integer + html_url: + type: string + id: + type: integer + node_id: + type: string + parent_id: + nullable: true + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + updated_at: + type: string + format: date-time + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - id + - node_id + - html_url + - parent_id + - child_comment_count + - repository_url + - discussion_id + - author_association + - user + - created_at + - updated_at + - body + webhooks_comment: + type: object + properties: + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + type: string + child_comment_count: + type: integer + created_at: + type: string + discussion_id: + type: integer + html_url: + type: string + id: + type: integer + node_id: + type: string + parent_id: + type: integer + nullable: true + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + updated_at: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - id + - node_id + - html_url + - parent_id + - child_comment_count + - repository_url + - discussion_id + - author_association + - user + - created_at + - updated_at + - body + - reactions + webhooks_label: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying the + color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + webhooks_repositories: + description: An array of repository objects that the installation can access. + type: array + items: + type: object + properties: + full_name: + type: string + id: + description: Unique identifier of the repository + type: integer + name: + description: The name of the repository. + type: string + node_id: + type: string + private: + description: Whether the repository is private or public. + type: boolean + required: + - id + - node_id + - name + - full_name + - private + webhooks_repositories_added: + description: An array of repository objects, which were added to the installation. + type: array + items: + type: object + properties: + full_name: + type: string + id: + description: Unique identifier of the repository + type: integer + name: + description: The name of the repository. + type: string + node_id: + type: string + private: + description: Whether the repository is private or public. + type: boolean + required: + - id + - node_id + - name + - full_name + - private + webhooks_repository_selection: + description: Describe whether all repositories have been selected or there's + a selection involved + type: string + enum: + - all + - selected + webhooks_issue_comment: + title: issue comment + description: The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) + itself. + type: object + properties: + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue comment + type: string + created_at: + type: string + format: date-time + html_url: + type: string + format: uri + id: + description: Unique identifier of the issue comment + type: integer + format: int64 + issue_url: + type: string + format: uri + node_id: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/integration" + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + updated_at: + type: string + format: date-time + url: + description: URL for the issue comment + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - html_url + - issue_url + - id + - node_id + - user + - created_at + - updated_at + - author_association + - performed_via_github_app + - body + - reactions + webhooks_changes: + description: The changes to the comment. + type: object + properties: + body: + type: object + properties: + from: + description: The previous version of the body. + type: string + required: + - from + webhooks_issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be installed + directly on organizations and user accounts and granted access to specific + repositories. They come with granular permissions and built-in webhooks. + GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - reminder + - pull_request_review_thread + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + webhooks_milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + webhooks_issue_2: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be installed + directly on organizations and user accounts and granted access to specific + repositories. They come with granular permissions and built-in webhooks. + GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + webhooks_user_mannequin: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + webhooks_marketplace_purchase: + title: Marketplace Purchase + type: object + required: + - account + - billing_cycle + - free_trial_ends_on + - next_billing_date + - on_free_trial + - plan + - unit_count + properties: + account: + type: object + required: + - type + - id + - node_id + - login + - organization_billing_email + properties: + id: + type: integer + login: + type: string + node_id: + type: string + organization_billing_email: + type: string + nullable: true + type: + type: string + billing_cycle: + type: string + free_trial_ends_on: + type: string + nullable: true + next_billing_date: + type: string + nullable: true + on_free_trial: + type: boolean + plan: + type: object + required: + - id + - name + - description + - monthly_price_in_cents + - yearly_price_in_cents + - price_model + - has_free_trial + - unit_name + - bullets + properties: + bullets: + type: array + items: + type: string + nullable: true + description: + type: string + has_free_trial: + type: boolean + id: + type: integer + monthly_price_in_cents: + type: integer + name: + type: string + price_model: + type: string + enum: + - FREE + - FLAT_RATE + - PER_UNIT + unit_name: + type: string + nullable: true + yearly_price_in_cents: + type: integer + unit_count: + type: integer + webhooks_previous_marketplace_purchase: + title: Marketplace Purchase + type: object + properties: + account: + type: object + properties: + id: + type: integer + login: + type: string + node_id: + type: string + organization_billing_email: + type: string + nullable: true + type: + type: string + required: + - type + - id + - node_id + - login + - organization_billing_email + billing_cycle: + type: string + free_trial_ends_on: + nullable: true + next_billing_date: + type: string + nullable: true + on_free_trial: + type: boolean + plan: + type: object + properties: + bullets: + type: array + items: + type: string + description: + type: string + has_free_trial: + type: boolean + id: + type: integer + monthly_price_in_cents: + type: integer + name: + type: string + price_model: + type: string + enum: + - FREE + - FLAT_RATE + - PER_UNIT + unit_name: + type: string + nullable: true + yearly_price_in_cents: + type: integer + required: + - id + - name + - description + - monthly_price_in_cents + - yearly_price_in_cents + - price_model + - has_free_trial + - unit_name + - bullets + unit_count: + type: integer + required: + - account + - billing_cycle + - unit_count + - on_free_trial + - free_trial_ends_on + - plan + webhooks_team: + title: Team + description: Groups of organization members that gives permissions on specified + repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + notification_setting: + description: Whether team members will receive notifications when their + team is @mentioned + type: string + enum: + - notifications_enabled + - notifications_disabled + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team + belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team + belongs + example: 42 + required: + - name + - id + - node_id + - slug + - description + - privacy + - notification_setting + - url + - html_url + - members_url + - repositories_url + - permission + - type + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + notification_setting: + type: string + enum: + - notifications_enabled + - notifications_disabled + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team belongs + example: 42 + required: + - name + - id + merge-group: + type: object + title: Merge Group + description: A group of pull requests that the merge queue has grouped together + to be merged. + properties: + head_sha: + description: The SHA of the merge group. + type: string + head_ref: + description: The full ref of the merge group. + type: string + base_sha: + description: The SHA of the merge group's parent commit. + type: string + base_ref: + description: The full ref of the branch the merge group will be merged into. + type: string + head_commit: + "$ref": "#/components/schemas/simple-commit" + required: + - head_sha + - head_ref + - base_sha + - base_ref + - head_commit + nullable-repository-webhooks: + title: Repository + description: |- + The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + when the event occurs from activity in a repository. + type: object + properties: + id: + description: Unique identifier of the repository + example: 42 + type: integer + format: int64 + node_id: + type: string + example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: + description: The name of the repository. + type: string + example: Team Environment + full_name: + type: string + example: octocat/Hello-World + license: + "$ref": "#/components/schemas/nullable-license-simple" + organization: + "$ref": "#/components/schemas/nullable-simple-user" + 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: + "$ref": "#/components/schemas/simple-user" + private: + description: Whether the repository is private or public. + default: false + type: boolean + html_url: + type: string + format: uri + example: https://github.com/octocat/Hello-World + description: + type: string + example: This your first repo! + nullable: true + fork: + type: boolean + url: + type: string + format: uri + example: https://api.github.com/repos/octocat/Hello-World + archive_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/downloads + events_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/events + forks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: + type: string + example: git:github.com/octocat/Hello-World.git + issue_comment_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/languages + merges_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/merges + milestones_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: + type: string + example: git@github.com:octocat/Hello-World.git + stargazers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/subscription + tags_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/tags + teams_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/teams + trees_url: + type: string + example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: + type: string + example: https://github.com/octocat/Hello-World.git + mirror_url: + type: string + format: uri + example: git:git.example.com/octocat/Hello-World + nullable: true + hooks_url: + type: string + format: uri + example: http://api.github.com/repos/octocat/Hello-World/hooks + svn_url: + type: string + format: uri + example: https://svn.github.com/octocat/Hello-World + homepage: + type: string + format: uri + example: https://github.com + nullable: true + language: + type: string + nullable: true + forks_count: + type: integer + example: 9 + stargazers_count: + type: integer + example: 80 + watchers_count: + type: integer + example: 80 + size: + description: The size of the repository, in kilobytes. Size is calculated + hourly. When a repository is initially created, the size is 0. + type: integer + example: 108 + default_branch: + description: The default branch of the repository. + type: string + example: master + open_issues_count: + type: integer + example: 0 + is_template: + description: Whether this repository acts as a template that can be used + to generate new repositories. + default: false + type: boolean + example: true + topics: + type: array + items: + type: string + custom_properties: + type: object + 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. + additionalProperties: true + has_issues: + description: Whether issues are enabled. + default: true + type: boolean + example: true + has_projects: + description: Whether projects are enabled. + default: true + type: boolean + example: true + has_wiki: + description: Whether the wiki is enabled. + default: true + type: boolean + example: true + has_pages: + type: boolean + has_downloads: + description: Whether downloads are enabled. + default: true + type: boolean + example: true + has_discussions: + description: Whether discussions are enabled. + default: false + type: boolean + example: 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 + format: date-time + example: '2011-01-26T19:06:43Z' + nullable: true + created_at: + type: string + format: date-time + example: '2011-01-26T19:01:12Z' + nullable: true + updated_at: + type: string + format: date-time + example: '2011-01-26T19:14:43Z' + nullable: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + default: true + type: boolean + example: true + template_repository: + nullable: true + type: object + 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 + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + 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 + example: true + allow_auto_merge: + description: Whether to allow Auto-merge to be used on pull requests. + default: false + type: boolean + example: false + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are merged + default: false + type: boolean + example: 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 + example: false + use_squash_pr_title_as_default: + type: boolean + 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. + default: false + deprecated: true + squash_merge_commit_title: + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `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. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + default: true + type: boolean + example: true + allow_forking: + description: Whether to allow forking this repo + type: boolean + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based commits + default: false + 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 + example: '"2020-07-09T00:17:42Z"' + anonymous_access_enabled: + type: boolean + description: Whether anonymous git access is enabled for this repository + 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 + nullable: true + webhooks_milestone_3: + title: Milestone + description: A collection of related issues and pull requests. + type: object + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + webhooks_membership: + title: Membership + description: The membership between the user and the organization. Not present + when the action is `member_invited`. + type: object + properties: + organization_url: + type: string + format: uri + role: + type: string + direct_membership: + type: boolean + description: Whether the user has direct membership in the organization. + example: true + enterprise_teams_providing_indirect_membership: + type: array + description: |- + The slugs of the enterprise teams providing the user with indirect membership in the organization. + A limit of 100 enterprise team slugs is returned. + maxItems: 100 + items: + type: string + example: + - ent:team-one + - ent:team-two + state: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - state + - role + - organization_url + - user + personal-access-token-request: + title: Personal Access Token Request + description: Details of a Personal Access Token Request. + type: object + properties: + id: + type: integer + description: Unique identifier of the request for access via fine-grained + personal access token. Used as the `pat_request_id` parameter in the list + and review API calls. + owner: + "$ref": "#/components/schemas/simple-user" + permissions_added: + type: object + description: New requested permissions, categorized by type of permission. + properties: + organization: + type: object + additionalProperties: + type: string + repository: + type: object + additionalProperties: + type: string + other: + type: object + additionalProperties: + type: string + permissions_upgraded: + type: object + description: Requested permissions that elevate access for a previously + approved request for access, categorized by type of permission. + properties: + organization: + type: object + additionalProperties: + type: string + repository: + type: object + additionalProperties: + type: string + other: + type: object + additionalProperties: + type: string + permissions_result: + type: object + description: Permissions requested, categorized by type of permission. This + field incorporates `permissions_added` and `permissions_upgraded`. + properties: + organization: + type: object + additionalProperties: + type: string + repository: + type: object + additionalProperties: + type: string + other: + type: object + additionalProperties: + type: string + repository_selection: + type: string + description: Type of repository selection requested. + enum: + - none + - all + - subset + repository_count: + description: The number of repositories the token is requesting access to. + This field is only populated when `repository_selection` is `subset`. + type: integer + nullable: true + repositories: + type: array + description: An array of repository objects the token is requesting access + to. This field is only populated when `repository_selection` is `subset`. + items: + type: object + properties: + full_name: + type: string + id: + description: Unique identifier of the repository + type: integer + name: + description: The name of the repository. + type: string + node_id: + type: string + private: + description: Whether the repository is private or public. + type: boolean + required: + - id + - node_id + - name + - full_name + - private + nullable: true + created_at: + type: string + description: Date and time when the request for access was created. + token_id: + type: integer + description: Unique identifier of the user's token. This field can also + be found in audit log events and the organization's settings for their + PAT grants. + token_name: + type: string + description: The name given to the user's token. This field can also be + found in an organization's settings page for Active Tokens. + token_expired: + type: boolean + description: Whether the associated fine-grained personal access token has + expired. + token_expires_at: + type: string + description: Date and time when the associated fine-grained personal access + token expires. + nullable: true + token_last_used_at: + type: string + description: Date and time when the associated fine-grained personal access + token was last used for authentication. + nullable: true + required: + - id + - owner + - permissions_added + - permissions_upgraded + - permissions_result + - repository_selection + - repository_count + - repositories + - created_at + - token_id + - token_name + - token_expired + - token_expires_at + - token_last_used_at + webhooks_project_card: + title: Project Card + type: object + properties: + after_id: + type: integer + nullable: true + archived: + description: Whether or not the card is archived + type: boolean + column_id: + type: integer + column_url: + type: string + format: uri + content_url: + type: string + format: uri + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + id: + description: The project card's ID + type: integer + node_id: + type: string + note: + type: string + nullable: true + project_url: + type: string + format: uri + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - project_url + - column_url + - column_id + - id + - node_id + - note + - archived + - creator + - created_at + - updated_at + webhooks_project: + title: Project + type: object + properties: + body: + description: Body of the project + type: string + nullable: true + columns_url: + type: string + format: uri + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + html_url: + type: string + format: uri + id: + type: integer + name: + description: Name of the project + type: string + node_id: + type: string + number: + type: integer + owner_url: + type: string + format: uri + state: + description: State of the project; either 'open' or 'closed' + type: string + enum: + - open + - closed + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - owner_url + - url + - html_url + - columns_url + - id + - node_id + - name + - body + - number + - state + - creator + - created_at + - updated_at + webhooks_project_column: + title: Project Column + type: object + properties: + after_id: + type: integer + nullable: true + cards_url: + type: string + format: uri + created_at: + type: string + format: date-time + id: + description: The unique identifier of the project column + type: integer + name: + description: Name of the project column + type: string + node_id: + type: string + project_url: + type: string + format: uri + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - project_url + - cards_url + - id + - node_id + - name + - created_at + - updated_at + webhooks_project_changes: + type: object + properties: + archived_at: + type: object + properties: + from: + type: string + nullable: true + format: date-time + to: + type: string + nullable: true + format: date-time + projects-v2-item: + title: Projects v2 Item + description: An item belonging to a project + type: object + properties: + id: + type: number + description: The unique identifier of the project item. + node_id: + type: string + description: The node ID of the project item. + project_node_id: + type: string + description: The node ID of the project that contains this item. + content_node_id: + type: string + description: The node ID of the content represented by this item. + content_type: + "$ref": "#/components/schemas/projects-v2-item-content-type" + creator: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the item was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the item was last updated. + archived_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + nullable: true + description: The time when the item was archived. + required: + - id + - content_node_id + - content_type + - created_at + - updated_at + - archived_at + projects-v2-single-select-option: + title: Projects v2 Single Select Option + description: An option for a single select field + type: object + properties: + id: + type: string + description: The unique identifier of the option. + name: + type: string + description: The display name of the option. + color: + type: string + nullable: true + description: The color associated with the option. + description: + type: string + nullable: true + description: A short description of the option. + required: + - id + - name + projects-v2-iteration-setting: + title: Projects v2 Iteration Setting + description: An iteration setting for an iteration field + type: object + properties: + id: + type: string + description: The unique identifier of the iteration setting. + title: + type: string + description: The iteration title. + title_html: + type: string + description: The iteration title, rendered as HTML. + duration: + type: number + nullable: true + description: The duration of the iteration in days. + start_date: + type: string + nullable: true + description: The start date of the iteration. + completed: + type: boolean + description: Whether the iteration has been completed. + required: + - id + - title + projects-v2-status-update: + title: Projects v2 Status Update + description: An status update belonging to a project + type: object + properties: + id: + type: number + description: The unique identifier of the status update. + node_id: + type: string + description: The node ID of the status update. + project_node_id: + type: string + description: The node ID of the project that this status update belongs + to. + creator: + "$ref": "#/components/schemas/simple-user" + created_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the status update was created. + updated_at: + type: string + format: date-time + example: '2022-04-28T12:00:00Z' + description: The time when the status update was last updated. + status: + type: string + enum: + - INACTIVE + - ON_TRACK + - AT_RISK + - OFF_TRACK + - COMPLETE + nullable: true + description: The current status. + start_date: + type: string + format: date + example: '2022-04-28' + description: The start date of the period covered by the update. + target_date: + type: string + format: date + example: '2022-04-28' + description: The target date associated with the update. + body: + description: Body of the status update + example: The project is off to a great start! + type: string + nullable: true + required: + - id + - node_id + - created_at + - updated_at + webhooks_number: + description: The pull request number. + type: integer + pull-request-webhook: + allOf: + - "$ref": "#/components/schemas/pull-request" + - type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_update_branch: + description: Whether to allow updating the pull request's branch. + type: boolean + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are merged. + type: boolean + default: false + merge_commit_message: + description: |- + The default value for a merge commit message. + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + use_squash_pr_title_as_default: + 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.** + type: boolean + default: false + webhooks_pull_request_5: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + description: Whether a squash merge commit can use the pull request + title as default. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based + commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + description: Whether a squash merge commit can use the pull request + title as default. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based + commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions on + specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions on + specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + webhooks_review_comment: + title: Pull Request Review Comment + description: The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) + itself. + type: object + properties: + _links: + type: object + properties: + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + pull_request: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - pull_request + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: The text of the comment. + type: string + commit_id: + description: The SHA of the commit to which the comment applies. + type: string + created_at: + type: string + format: date-time + diff_hunk: + description: The diff of the line that the comment refers to. + type: string + html_url: + description: HTML URL for the pull request review comment. + type: string + format: uri + id: + description: The ID of the pull request review comment. + type: integer + in_reply_to_id: + description: The comment ID to reply to. + type: integer + line: + description: The line of the blob to which the comment applies. The last + line of the range for a multi-line comment + type: integer + nullable: true + node_id: + description: The node ID of the pull request review comment. + type: string + original_commit_id: + description: The SHA of the original commit to which the comment applies. + type: string + original_line: + description: The line of the blob to which the comment applies. The last + line of the range for a multi-line comment + type: integer + original_position: + description: The index of the original line in the diff to which the comment + applies. + type: integer + original_start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + path: + description: The relative path of the file to which the comment applies. + type: string + position: + description: The line index in the diff to which the comment applies. + type: integer + nullable: true + pull_request_review_id: + description: The ID of the pull request review to which the comment belongs. + type: integer + nullable: true + pull_request_url: + description: URL for the pull request that the review comment belongs to. + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + side: + description: The side of the first line of the range for a multi-line comment. + type: string + enum: + - LEFT + - RIGHT + start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + start_side: + description: The side of the first line of the range for a multi-line comment. + type: string + nullable: true + enum: + - LEFT + - RIGHT + - null + default: RIGHT + subject_type: + description: The level at which the comment is targeted, can be a diff line + or a file. + type: string + enum: + - line + - file + updated_at: + type: string + format: date-time + url: + description: URL for the pull request review comment + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - pull_request_review_id + - id + - node_id + - diff_hunk + - path + - position + - original_position + - commit_id + - original_commit_id + - user + - body + - created_at + - updated_at + - html_url + - pull_request_url + - author_association + - _links + - start_line + - original_start_line + - original_line + - line + - start_side + - side + - reactions + webhooks_review: + description: The review that was affected. + type: object + properties: + _links: + type: object + properties: + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + pull_request: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - html + - pull_request + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: The text of the review. + type: string + nullable: true + commit_id: + description: A commit SHA for the review. + type: string + html_url: + type: string + format: uri + id: + description: Unique identifier of the review + type: integer + node_id: + type: string + pull_request_url: + type: string + format: uri + state: + type: string + submitted_at: + type: string + nullable: true + format: date-time + updated_at: + type: string + nullable: true + format: date-time + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - id + - node_id + - user + - body + - commit_id + - submitted_at + - state + - html_url + - pull_request_url + - author_association + - _links + webhooks_nullable_string: + type: string + nullable: true + webhooks_release: + title: Release + description: The [release](https://docs.github.com/rest/releases/releases/#get-a-release) + object. + type: object + properties: + assets: + type: array + items: + title: Release Asset + description: Data related to a release. + type: object + properties: + browser_download_url: + type: string + format: uri + content_type: + type: string + created_at: + type: string + format: date-time + download_count: + type: integer + id: + type: integer + label: + type: string + nullable: true + name: + description: The file name of the asset. + type: string + node_id: + type: string + size: + type: integer + digest: + type: string + nullable: true + state: + description: State of the release asset. + type: string + enum: + - uploaded + updated_at: + type: string + format: date-time + uploader: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + url: + type: string + format: uri + required: + - url + - browser_download_url + - id + - node_id + - name + - label + - state + - digest + - content_type + - size + - download_count + - created_at + - updated_at + assets_url: + type: string + format: uri + author: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + body: + type: string + nullable: true + created_at: + type: string + nullable: true + format: date-time + updated_at: + type: string + nullable: true + format: date-time + discussion_url: + type: string + format: uri + draft: + description: Whether the release is a draft or published + type: boolean + html_url: + type: string + format: uri + id: + type: integer + immutable: + description: Whether or not the release is immutable. + type: boolean + name: + type: string + nullable: true + node_id: + type: string + prerelease: + description: Whether the release is identified as a prerelease or a full + release. + type: boolean + published_at: + type: string + nullable: true + format: date-time + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + tag_name: + description: The name of the tag. + type: string + tarball_url: + type: string + nullable: true + format: uri + target_commitish: + description: Specifies the commitish value that determines where the Git + tag is created from. + type: string + upload_url: + type: string + format: uri-template + url: + type: string + format: uri + zipball_url: + type: string + nullable: true + format: uri + required: + - url + - assets_url + - upload_url + - html_url + - id + - node_id + - tag_name + - target_commitish + - name + - draft + - author + - prerelease + - immutable + - created_at + - published_at + - assets + - tarball_url + - updated_at + - zipball_url + - body + webhooks_release_1: + title: Release + description: The [release](https://docs.github.com/rest/releases/releases/#get-a-release) + object. + type: object + required: + - assets + - assets_url + - author + - body + - created_at + - draft + - html_url + - id + - name + - node_id + - prerelease + - immutable + - published_at + - tag_name + - tarball_url + - target_commitish + - updated_at + - upload_url + - url + - zipball_url + properties: + assets: + type: array + items: + title: Release Asset + description: Data related to a release. + type: object + required: + - url + - browser_download_url + - id + - node_id + - name + - label + - state + - content_type + - size + - digest + - download_count + - created_at + - updated_at + nullable: true + properties: + browser_download_url: + type: string + format: uri + content_type: + type: string + created_at: + type: string + format: date-time + download_count: + type: integer + id: + type: integer + label: + type: string + nullable: true + name: + description: The file name of the asset. + type: string + node_id: + type: string + size: + type: integer + digest: + type: string + nullable: true + state: + description: State of the release asset. + type: string + enum: + - uploaded + updated_at: + type: string + format: date-time + uploader: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + url: + type: string + format: uri + assets_url: + type: string + format: uri + author: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + body: + type: string + nullable: true + created_at: + type: string + nullable: true + format: date-time + discussion_url: + type: string + format: uri + draft: + description: Whether the release is a draft or published + type: boolean + html_url: + type: string + format: uri + id: + type: integer + immutable: + description: Whether or not the release is immutable. + type: boolean + name: + type: string + nullable: true + node_id: + type: string + prerelease: + description: Whether the release is identified as a prerelease or a full + release. + type: boolean + published_at: + type: string + nullable: true + format: date-time + reactions: + title: Reactions + type: object + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + tag_name: + description: The name of the tag. + type: string + tarball_url: + type: string + nullable: true + format: uri + target_commitish: + description: Specifies the commitish value that determines where the Git + tag is created from. + type: string + updated_at: + type: string + nullable: true + format: date-time + upload_url: + type: string + format: uri-template + url: + type: string + format: uri + zipball_url: + type: string + nullable: true + format: uri + webhooks_alert: + title: Repository Vulnerability Alert Alert + description: The security alert of the vulnerable dependency. + type: object + required: + - affected_package_name + - affected_range + - created_at + - external_identifier + - external_reference + - ghsa_id + - id + - node_id + - number + - severity + - state + properties: + affected_package_name: + type: string + affected_range: + type: string + created_at: + type: string + dismiss_reason: + type: string + dismissed_at: + type: string + dismisser: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + external_identifier: + type: string + external_reference: + type: string + nullable: true + format: uri + fix_reason: + type: string + fixed_at: + type: string + format: date-time + fixed_in: + type: string + ghsa_id: + type: string + id: + type: integer + node_id: + type: string + number: + type: integer + severity: + type: string + state: + type: string + enum: + - open + secret-scanning-alert-resolution-webhook: + type: string + description: The reason for resolving the alert. + nullable: true + enum: + - false_positive + - wont_fix + - revoked + - used_in_tests + - pattern_deleted + - pattern_edited + secret-scanning-alert-webhook: + type: object + properties: + number: + "$ref": "#/components/schemas/alert-number" + created_at: + "$ref": "#/components/schemas/alert-created-at" + updated_at: + "$ref": "#/components/schemas/nullable-alert-updated-at" + url: + "$ref": "#/components/schemas/alert-url" + html_url: + "$ref": "#/components/schemas/alert-html-url" + locations_url: + type: string + format: uri + description: The REST API URL of the code locations for this alert. + resolution: + "$ref": "#/components/schemas/secret-scanning-alert-resolution-webhook" + resolved_at: + type: string + format: date-time + description: 'The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + resolved_by: + "$ref": "#/components/schemas/nullable-simple-user" + resolution_comment: + type: string + description: An optional comment to resolve an alert. + nullable: true + secret_type: + type: string + description: The type of secret that secret scanning detected. + secret_type_display_name: + type: string + description: |- + User-friendly name for the detected secret, matching the `secret_type`. + For a list of built-in patterns, see "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)." + validity: + type: string + description: The token status as of the latest validity check. + enum: + - active + - inactive + - unknown + push_protection_bypassed: + type: boolean + description: Whether push protection was bypassed for the detected secret. + nullable: true + push_protection_bypassed_by: + "$ref": "#/components/schemas/nullable-simple-user" + push_protection_bypassed_at: + type: string + format: date-time + description: 'The time that push protection was bypassed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + push_protection_bypass_request_reviewer: + "$ref": "#/components/schemas/nullable-simple-user" + push_protection_bypass_request_reviewer_comment: + type: string + description: An optional comment when reviewing a push protection bypass. + nullable: true + push_protection_bypass_request_comment: + type: string + description: An optional comment when requesting a push protection bypass. + nullable: true + push_protection_bypass_request_html_url: + type: string + format: uri + description: The URL to a push protection bypass request. + nullable: true + publicly_leaked: + type: boolean + description: Whether the detected secret was publicly leaked. + nullable: true + multi_repo: + type: boolean + description: Whether the detected secret was found in multiple repositories + in the same organization or business. + nullable: true + assigned_to: + "$ref": "#/components/schemas/nullable-simple-user" + webhooks_security_advisory: + description: The details of the security advisory, including summary, description, + and severity. + type: object + properties: + cvss: + type: object + properties: + score: + type: number + vector_string: + type: string + nullable: true + required: + - vector_string + - score + cvss_severities: + "$ref": "#/components/schemas/cvss-severities" + cwes: + type: array + items: + type: object + properties: + cwe_id: + type: string + name: + type: string + required: + - cwe_id + - name + description: + type: string + ghsa_id: + type: string + identifiers: + type: array + items: + type: object + properties: + type: + type: string + value: + type: string + required: + - value + - type + published_at: + type: string + references: + type: array + items: + type: object + properties: + url: + type: string + format: uri + required: + - url + severity: + type: string + summary: + type: string + updated_at: + type: string + vulnerabilities: + type: array + items: + type: object + properties: + first_patched_version: + type: object + nullable: true + properties: + identifier: + type: string + required: + - identifier + package: + type: object + properties: + ecosystem: + type: string + name: + type: string + required: + - ecosystem + - name + severity: + type: string + vulnerable_version_range: + type: string + required: + - package + - severity + - vulnerable_version_range + - first_patched_version + withdrawn_at: + type: string + nullable: true + required: + - cvss + - cwes + - ghsa_id + - summary + - description + - severity + - identifiers + - references + - published_at + - updated_at + - withdrawn_at + - vulnerabilities + webhooks_sponsorship: + type: object + properties: + created_at: + type: string + maintainer: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + node_id: + type: string + privacy_level: + type: string + sponsor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + sponsorable: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + tier: + title: Sponsorship Tier + description: The `tier_changed` and `pending_tier_change` will include the + original tier before the change or pending change. For more information, + see the pending tier change payload. + type: object + properties: + created_at: + type: string + description: + type: string + is_custom_ammount: + type: boolean + is_custom_amount: + type: boolean + is_one_time: + type: boolean + monthly_price_in_cents: + type: integer + monthly_price_in_dollars: + type: integer + name: + type: string + node_id: + type: string + required: + - node_id + - created_at + - description + - monthly_price_in_cents + - monthly_price_in_dollars + - name + - is_one_time + required: + - node_id + - created_at + - sponsorable + - sponsor + - privacy_level + - tier + webhooks_effective_date: + description: The `pending_cancellation` and `pending_tier_change` event types + will include the date the cancellation or tier change will take effect. + type: string + webhooks_changes_8: + type: object + properties: + tier: + type: object + properties: + from: + title: Sponsorship Tier + description: The `tier_changed` and `pending_tier_change` will include + the original tier before the change or pending change. For more information, + see the pending tier change payload. + type: object + properties: + created_at: + type: string + description: + type: string + is_custom_ammount: + type: boolean + is_custom_amount: + type: boolean + is_one_time: + type: boolean + monthly_price_in_cents: + type: integer + monthly_price_in_dollars: + type: integer + name: + type: string + node_id: + type: string + required: + - node_id + - created_at + - description + - monthly_price_in_cents + - monthly_price_in_dollars + - name + - is_one_time + required: + - from + required: + - tier + webhooks_team_1: + title: Team + description: Groups of organization members that gives permissions on specified + repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + notification_setting: + description: Whether team members will receive notifications when their + team is @mentioned + type: string + enum: + - notifications_enabled + - notifications_disabled + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team + belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team + belongs + example: 42 + required: + - name + - id + - node_id + - slug + - description + - privacy + - notification_setting + - url + - html_url + - members_url + - repositories_url + - permission + - type + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + notification_setting: + description: Whether team members will receive notifications when their + team is @mentioned + type: string + enum: + - notifications_enabled + - notifications_disabled + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + type: + description: The ownership type of the team + type: string + enum: + - enterprise + - organization + organization_id: + type: integer + description: Unique identifier of the organization to which this team belongs + example: 37 + enterprise_id: + type: integer + description: Unique identifier of the enterprise to which this team belongs + example: 42 + required: + - name + - id + webhook-branch-protection-configuration-disabled: + title: branch protection configuration disabled event + type: object + properties: + action: + type: string + enum: + - disabled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-branch-protection-configuration-enabled: + title: branch protection configuration enabled event + type: object + properties: + action: + type: string + enum: + - enabled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-branch-protection-rule-created: + title: branch protection rule created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + rule: + "$ref": "#/components/schemas/webhooks_rule" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - rule + - repository + - sender + webhook-branch-protection-rule-deleted: + title: branch protection rule deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + rule: + "$ref": "#/components/schemas/webhooks_rule" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - rule + - repository + - sender + webhook-branch-protection-rule-edited: + title: branch protection rule edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: If the action was `edited`, the changes to the rule. + type: object + properties: + admin_enforced: + type: object + properties: + from: + type: boolean + nullable: true + required: + - from + authorized_actor_names: + type: object + properties: + from: + type: array + items: + type: string + required: + - from + authorized_actors_only: + type: object + properties: + from: + type: boolean + nullable: true + required: + - from + authorized_dismissal_actors_only: + type: object + properties: + from: + type: boolean + nullable: true + required: + - from + linear_history_requirement_enforcement_level: + type: object + properties: + from: + type: string + enum: + - 'off' + - non_admins + - everyone + required: + - from + lock_branch_enforcement_level: + type: object + properties: + from: + type: string + enum: + - 'off' + - non_admins + - everyone + required: + - from + lock_allows_fork_sync: + type: object + properties: + from: + type: boolean + nullable: true + required: + - from + pull_request_reviews_enforcement_level: + type: object + properties: + from: + type: string + enum: + - 'off' + - non_admins + - everyone + required: + - from + require_last_push_approval: + type: object + properties: + from: + type: boolean + nullable: true + required: + - from + required_status_checks: + type: object + properties: + from: + type: array + items: + type: string + required: + - from + required_status_checks_enforcement_level: + type: object + properties: + from: + type: string + enum: + - 'off' + - non_admins + - everyone + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + rule: + "$ref": "#/components/schemas/webhooks_rule" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - rule + - repository + - sender + webhook-check-run-completed: + title: Check Run Completed Event + type: object + properties: + action: + type: string + enum: + - completed + check_run: + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + installation: + "$ref": "#/components/schemas/simple-installation" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - check_run + - repository + - sender + webhook-check-run-completed-form-encoded: + title: Check Run Completed Event + description: The check_run.completed webhook encoded with URL encoding + type: object + properties: + payload: + description: A URL-encoded string of the check_run.completed JSON payload. + The decoded payload is a JSON object. + type: string + required: + - payload + webhook-check-run-created: + title: Check Run Created Event + type: object + properties: + action: + type: string + enum: + - created + check_run: + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + installation: + "$ref": "#/components/schemas/simple-installation" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - check_run + - repository + - sender + webhook-check-run-created-form-encoded: + title: Check Run Created Event + description: The check_run.created webhook encoded with URL encoding + type: object + properties: + payload: + description: A URL-encoded string of the check_run.created JSON payload. + The decoded payload is a JSON object. + type: string + required: + - payload + webhook-check-run-requested-action: + title: Check Run Requested Action Event + type: object + properties: + action: + type: string + enum: + - requested_action + check_run: + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + installation: + "$ref": "#/components/schemas/simple-installation" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + requested_action: + description: The action requested by the user. + type: object + properties: + identifier: + description: The integrator reference of the action requested by the + user. + type: string + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - check_run + - repository + - sender + webhook-check-run-requested-action-form-encoded: + title: Check Run Requested Action Event + description: The check_run.requested_action webhook encoded with URL encoding + type: object + properties: + payload: + description: A URL-encoded string of the check_run.requested_action JSON + payload. The decoded payload is a JSON object. + type: string + required: + - payload + webhook-check-run-rerequested: + title: Check Run Re-Requested Event + type: object + properties: + action: + type: string + enum: + - rerequested + check_run: + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + installation: + "$ref": "#/components/schemas/simple-installation" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - check_run + - repository + - sender + webhook-check-run-rerequested-form-encoded: + title: Check Run Re-Requested Event + description: The check_run.rerequested webhook encoded with URL encoding + type: object + properties: + payload: + description: A URL-encoded string of the check_run.rerequested JSON payload. + The decoded payload is a JSON object. + type: string + required: + - payload + webhook-check-suite-completed: + title: check_suite completed event + type: object + properties: + action: + type: string + enum: + - completed + check_suite: + description: The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). + type: object + properties: + after: + type: string + nullable: true + app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - merge_group + - pull_request_review_thread + - workflow_job + - merge_queue_entry + - security_and_analysis + - projects_v2_item + - secret_scanning_alert_location + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + client_id: + description: The client ID of the GitHub app + type: string + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + - admin + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + before: + type: string + nullable: true + check_runs_url: + type: string + format: uri + conclusion: + description: The summary conclusion for all check runs that are part + of the check suite. This value will be `null` until the check run + has `completed`. + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + - skipped + - startup_failure + created_at: + type: string + format: date-time + head_branch: + description: The head branch name the changes are on. + type: string + nullable: true + head_commit: + title: SimpleCommit + type: object + properties: + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + id: + type: string + message: + type: string + timestamp: + type: string + tree_id: + type: string + required: + - id + - tree_id + - message + - timestamp + - author + - committer + head_sha: + description: The SHA of the head commit that is being checked. + type: string + id: + type: integer + latest_check_runs_count: + type: integer + node_id: + type: string + pull_requests: + description: An array of pull requests that match this check suite. + A pull request matches a check suite if they have the same `head_sha` + and `head_branch`. When the check suite's `head_branch` is in a forked + repository it will be `null` and the `pull_requests` array will be + empty. + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + rerequestable: + type: boolean + runs_rerequestable: + type: boolean + status: + description: The summary status for all check runs that are part of + the check suite. Can be `requested`, `in_progress`, or `completed`. + type: string + nullable: true + enum: + - requested + - in_progress + - completed + - queued + - null + - pending + updated_at: + type: string + format: date-time + url: + description: URL that points to the check suite API resource. + type: string + format: uri + required: + - id + - node_id + - head_branch + - head_sha + - status + - conclusion + - url + - before + - after + - pull_requests + - app + - created_at + - updated_at + - latest_check_runs_count + - check_runs_url + - head_commit + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - check_suite + - repository + - sender + webhook-check-suite-requested: + title: check_suite requested event + type: object + properties: + action: + type: string + enum: + - requested + check_suite: + description: The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). + type: object + properties: + after: + type: string + nullable: true + app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - pull_request_review_thread + - workflow_job + - merge_queue_entry + - security_and_analysis + - secret_scanning_alert_location + - projects_v2_item + - merge_group + - repository_import + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + client_id: + description: Client ID of the GitHub app + type: string + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + artifact_metadata: + type: string + enum: + - read + - write + attestations: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + copilot_requests: + type: string + enum: + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + merge_queues: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + models: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + - admin + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + before: + type: string + nullable: true + check_runs_url: + type: string + format: uri + conclusion: + description: The summary conclusion for all check runs that are part + of the check suite. This value will be `null` until the check run + has completed. + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + - skipped + created_at: + type: string + format: date-time + head_branch: + description: The head branch name the changes are on. + type: string + nullable: true + head_commit: + title: SimpleCommit + type: object + properties: + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + id: + type: string + message: + type: string + timestamp: + type: string + tree_id: + type: string + required: + - id + - tree_id + - message + - timestamp + - author + - committer + head_sha: + description: The SHA of the head commit that is being checked. + type: string + id: + type: integer + latest_check_runs_count: + type: integer + node_id: + type: string + pull_requests: + description: An array of pull requests that match this check suite. + A pull request matches a check suite if they have the same `head_sha` + and `head_branch`. When the check suite's `head_branch` is in a forked + repository it will be `null` and the `pull_requests` array will be + empty. + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + rerequestable: + type: boolean + runs_rerequestable: + type: boolean + status: + description: The summary status for all check runs that are part of + the check suite. Can be `requested`, `in_progress`, or `completed`. + type: string + nullable: true + enum: + - requested + - in_progress + - completed + - queued + - null + updated_at: + type: string + format: date-time + url: + description: URL that points to the check suite API resource. + type: string + format: uri + required: + - id + - node_id + - head_branch + - head_sha + - status + - conclusion + - url + - before + - after + - pull_requests + - app + - created_at + - updated_at + - latest_check_runs_count + - check_runs_url + - head_commit + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - check_suite + - repository + - sender + webhook-check-suite-rerequested: + title: check_suite rerequested event + type: object + properties: + action: + type: string + enum: + - rerequested + check_suite: + description: The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). + type: object + properties: + after: + type: string + nullable: true + app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - pull_request_review_thread + - merge_queue_entry + - workflow_job + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + client_id: + description: The Client ID for the GitHub app + type: string + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + artifact_metadata: + type: string + enum: + - read + - write + attestations: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + copilot_requests: + type: string + enum: + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + merge_queues: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + models: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + - admin + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + before: + type: string + nullable: true + check_runs_url: + type: string + format: uri + conclusion: + description: The summary conclusion for all check runs that are part + of the check suite. This value will be `null` until the check run + has completed. + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + created_at: + type: string + format: date-time + head_branch: + description: The head branch name the changes are on. + type: string + nullable: true + head_commit: + title: SimpleCommit + type: object + properties: + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + id: + type: string + message: + type: string + timestamp: + type: string + tree_id: + type: string + required: + - id + - tree_id + - message + - timestamp + - author + - committer + head_sha: + description: The SHA of the head commit that is being checked. + type: string + id: + type: integer + latest_check_runs_count: + type: integer + node_id: + type: string + pull_requests: + description: An array of pull requests that match this check suite. + A pull request matches a check suite if they have the same `head_sha` + and `head_branch`. When the check suite's `head_branch` is in a forked + repository it will be `null` and the `pull_requests` array will be + empty. + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + rerequestable: + type: boolean + runs_rerequestable: + type: boolean + status: + description: The summary status for all check runs that are part of + the check suite. Can be `requested`, `in_progress`, or `completed`. + type: string + nullable: true + enum: + - requested + - in_progress + - completed + - queued + - null + updated_at: + type: string + format: date-time + url: + description: URL that points to the check suite API resource. + type: string + format: uri + required: + - id + - node_id + - head_branch + - head_sha + - status + - conclusion + - url + - before + - after + - pull_requests + - app + - created_at + - updated_at + - latest_check_runs_count + - check_runs_url + - head_commit + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - check_suite + - repository + - sender + webhook-code-scanning-alert-appeared-in-branch: + title: code_scanning_alert appeared_in_branch event + type: object + properties: + action: + type: string + enum: + - appeared_in_branch + alert: + description: The code scanning alert involved in the event. + type: object + properties: + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + created_at: + description: 'The time that the alert was created in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ.`' + type: string + format: date-time + dismissed_at: + description: 'The time that the alert was dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + type: string + nullable: true + format: date-time + dismissed_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + dismissed_reason: + description: The reason for dismissing or closing the alert. + type: string + nullable: true + enum: + - false positive + - won't fix + - used in tests + - null + fixed_at: + description: 'The time that the alert was fixed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + html_url: + description: The GitHub URL of the alert resource. + type: string + format: uri + most_recent_instance: + title: Alert Instance + type: object + nullable: true + properties: + analysis_key: + description: Identifies the configuration under which the analysis + was executed. For example, in GitHub Actions this includes the + workflow filename and job name. + type: string + category: + description: Identifies the configuration under which the analysis + was executed. + type: string + classifications: + type: array + items: + type: string + commit_sha: + type: string + environment: + description: Identifies the variable values associated with the + environment in which the analysis that generated this alert instance + was performed, such as the language that was analyzed. + type: string + location: + type: object + properties: + end_column: + type: integer + end_line: + type: integer + path: + type: string + start_column: + type: integer + start_line: + type: integer + message: + type: object + properties: + text: + type: string + ref: + description: The full Git reference, formatted as `refs/heads/`. + type: string + state: + description: State of a code scanning alert. + type: string + enum: + - open + - dismissed + - fixed + required: + - ref + - analysis_key + - environment + - state + number: + description: The code scanning alert number. + type: integer + rule: + type: object + properties: + description: + description: A short description of the rule used to detect the + alert. + type: string + id: + description: A unique identifier for the rule used to detect the + alert. + type: string + severity: + description: The severity of the alert. + type: string + nullable: true + enum: + - none + - note + - warning + - error + - null + required: + - id + - severity + - description + state: + description: State of a code scanning alert. Events for alerts found + outside the default branch will return a `null` value until they are + dismissed or fixed. + nullable: true + type: string + enum: + - open + - dismissed + - fixed + tool: + type: object + properties: + name: + description: The name of the tool used to generate the code scanning + analysis alert. + type: string + version: + description: The version of the tool used to detect the alert. + type: string + nullable: true + required: + - name + - version + url: + type: string + format: uri + required: + - number + - created_at + - url + - html_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + commit_oid: + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + ref: + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - ref + - commit_oid + - repository + - sender + webhook-code-scanning-alert-closed-by-user: + title: code_scanning_alert closed_by_user event + type: object + properties: + action: + type: string + enum: + - closed_by_user + alert: + description: The code scanning alert involved in the event. + type: object + properties: + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + created_at: + description: 'The time that the alert was created in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ.`' + type: string + format: date-time + dismissed_at: + description: 'The time that the alert was dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + type: string + format: date-time + dismissed_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + dismissed_reason: + description: The reason for dismissing or closing the alert. + type: string + nullable: true + enum: + - false positive + - won't fix + - used in tests + - null + fixed_at: + description: 'The time that the alert was fixed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + html_url: + description: The GitHub URL of the alert resource. + type: string + format: uri + most_recent_instance: + title: Alert Instance + type: object + nullable: true + properties: + analysis_key: + description: Identifies the configuration under which the analysis + was executed. For example, in GitHub Actions this includes the + workflow filename and job name. + type: string + category: + description: Identifies the configuration under which the analysis + was executed. + type: string + classifications: + type: array + items: + type: string + commit_sha: + type: string + environment: + description: Identifies the variable values associated with the + environment in which the analysis that generated this alert instance + was performed, such as the language that was analyzed. + type: string + location: + type: object + properties: + end_column: + type: integer + end_line: + type: integer + path: + type: string + start_column: + type: integer + start_line: + type: integer + message: + type: object + properties: + text: + type: string + ref: + description: The full Git reference, formatted as `refs/heads/`. + type: string + state: + description: State of a code scanning alert. + type: string + enum: + - open + - dismissed + - fixed + required: + - ref + - analysis_key + - environment + - state + number: + description: The code scanning alert number. + type: integer + rule: + type: object + properties: + description: + description: A short description of the rule used to detect the + alert. + type: string + full_description: + type: string + help: + type: string + nullable: true + help_uri: + description: A link to the documentation for the rule used to detect + the alert. + type: string + nullable: true + id: + description: A unique identifier for the rule used to detect the + alert. + type: string + name: + type: string + severity: + description: The severity of the alert. + type: string + nullable: true + enum: + - none + - note + - warning + - error + - null + tags: + type: array + nullable: true + items: + type: string + required: + - id + - severity + - description + state: + description: State of a code scanning alert. + type: string + enum: + - dismissed + - fixed + tool: + type: object + properties: + guid: + type: string + nullable: true + name: + description: The name of the tool used to generate the code scanning + analysis alert. + type: string + version: + description: The version of the tool used to detect the alert. + type: string + nullable: true + required: + - name + - version + url: + type: string + format: uri + dismissal_approved_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - number + - created_at + - url + - html_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + commit_oid: + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + ref: + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - ref + - commit_oid + - repository + - sender + webhook-code-scanning-alert-created: + title: code_scanning_alert created event + type: object + properties: + action: + type: string + enum: + - created + alert: + description: The code scanning alert involved in the event. + type: object + properties: + created_at: + description: 'The time that the alert was created in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ.`' + type: string + nullable: true + format: date-time + dismissed_at: + description: 'The time that the alert was dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + dismissed_by: + nullable: true + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + dismissed_reason: + description: 'The reason for dismissing or closing the alert. Can be + one of: `false positive`, `won''t fix`, and `used in tests`.' + nullable: true + fixed_at: + description: 'The time that the alert was fixed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + html_url: + description: The GitHub URL of the alert resource. + type: string + format: uri + instances_url: + type: string + most_recent_instance: + title: Alert Instance + type: object + nullable: true + properties: + analysis_key: + description: Identifies the configuration under which the analysis + was executed. For example, in GitHub Actions this includes the + workflow filename and job name. + type: string + category: + description: Identifies the configuration under which the analysis + was executed. + type: string + classifications: + type: array + items: + type: string + commit_sha: + type: string + environment: + description: Identifies the variable values associated with the + environment in which the analysis that generated this alert instance + was performed, such as the language that was analyzed. + type: string + location: + type: object + properties: + end_column: + type: integer + end_line: + type: integer + path: + type: string + start_column: + type: integer + start_line: + type: integer + message: + type: object + properties: + text: + type: string + ref: + description: The full Git reference, formatted as `refs/heads/`. + type: string + state: + description: State of a code scanning alert. + type: string + enum: + - open + - dismissed + - fixed + required: + - ref + - analysis_key + - environment + - state + number: + description: The code scanning alert number. + type: integer + rule: + type: object + properties: + description: + description: A short description of the rule used to detect the + alert. + type: string + full_description: + type: string + help: + type: string + nullable: true + help_uri: + description: A link to the documentation for the rule used to detect + the alert. + type: string + nullable: true + id: + description: A unique identifier for the rule used to detect the + alert. + type: string + name: + type: string + severity: + description: The severity of the alert. + type: string + nullable: true + enum: + - none + - note + - warning + - error + - null + tags: + type: array + nullable: true + items: + type: string + required: + - id + - severity + - description + state: + description: State of a code scanning alert. Events for alerts found + outside the default branch will return a `null` value until they are + dismissed or fixed. + type: string + nullable: true + enum: + - open + - dismissed + tool: + type: object + nullable: true + properties: + guid: + type: string + nullable: true + name: + description: The name of the tool used to generate the code scanning + analysis alert. + type: string + version: + description: The version of the tool used to detect the alert. + type: string + nullable: true + required: + - name + - version + updated_at: + type: string + nullable: true + url: + type: string + format: uri + dismissal_approved_by: + nullable: true + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + required: + - number + - created_at + - url + - html_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + commit_oid: + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + ref: + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - ref + - commit_oid + - repository + - sender + webhook-code-scanning-alert-fixed: + title: code_scanning_alert fixed event + type: object + properties: + action: + type: string + enum: + - fixed + alert: + description: The code scanning alert involved in the event. + type: object + properties: + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + created_at: + description: 'The time that the alert was created in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ.`' + type: string + format: date-time + dismissed_at: + description: 'The time that the alert was dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + type: string + nullable: true + format: date-time + dismissed_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + dismissed_reason: + description: The reason for dismissing or closing the alert. + type: string + nullable: true + enum: + - false positive + - won't fix + - used in tests + - null + fixed_at: + description: 'The time that the alert was fixed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + html_url: + description: The GitHub URL of the alert resource. + type: string + format: uri + instances_url: + type: string + format: uri + most_recent_instance: + title: Alert Instance + type: object + nullable: true + properties: + analysis_key: + description: Identifies the configuration under which the analysis + was executed. For example, in GitHub Actions this includes the + workflow filename and job name. + type: string + category: + description: Identifies the configuration under which the analysis + was executed. + type: string + classifications: + type: array + items: + type: string + commit_sha: + type: string + environment: + description: Identifies the variable values associated with the + environment in which the analysis that generated this alert instance + was performed, such as the language that was analyzed. + type: string + location: + type: object + properties: + end_column: + type: integer + end_line: + type: integer + path: + type: string + start_column: + type: integer + start_line: + type: integer + message: + type: object + properties: + text: + type: string + ref: + description: The full Git reference, formatted as `refs/heads/`. + type: string + state: + description: State of a code scanning alert. + type: string + enum: + - open + - dismissed + - fixed + required: + - ref + - analysis_key + - environment + - state + number: + description: The code scanning alert number. + type: integer + rule: + type: object + properties: + description: + description: A short description of the rule used to detect the + alert. + type: string + full_description: + type: string + help: + type: string + nullable: true + help_uri: + description: A link to the documentation for the rule used to detect + the alert. + type: string + nullable: true + id: + description: A unique identifier for the rule used to detect the + alert. + type: string + name: + type: string + severity: + description: The severity of the alert. + type: string + nullable: true + enum: + - none + - note + - warning + - error + - null + tags: + type: array + nullable: true + items: + type: string + required: + - id + - severity + - description + state: + description: State of a code scanning alert. Events for alerts found + outside the default branch will return a `null` value until they are + dismissed or fixed. + nullable: true + type: string + enum: + - fixed + tool: + type: object + properties: + guid: + type: string + nullable: true + name: + description: The name of the tool used to generate the code scanning + analysis alert. + type: string + version: + description: The version of the tool used to detect the alert. + type: string + nullable: true + required: + - name + - version + url: + type: string + format: uri + required: + - number + - created_at + - url + - html_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + commit_oid: + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + ref: + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - ref + - commit_oid + - repository + - sender + webhook-code-scanning-alert-reopened: + title: code_scanning_alert reopened event + type: object + properties: + action: + type: string + enum: + - reopened + alert: + description: The code scanning alert involved in the event. + type: object + properties: + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + created_at: + description: 'The time that the alert was created in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ.`' + type: string + format: date-time + dismissed_at: + description: 'The time that the alert was dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + type: string + nullable: true + dismissed_by: + type: object + nullable: true + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + dismissed_reason: + description: 'The reason for dismissing or closing the alert. Can be + one of: `false positive`, `won''t fix`, and `used in tests`.' + type: string + nullable: true + fixed_at: + description: 'The time that the alert was fixed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + html_url: + description: The GitHub URL of the alert resource. + type: string + format: uri + instances_url: + type: string + most_recent_instance: + title: Alert Instance + type: object + nullable: true + properties: + analysis_key: + description: Identifies the configuration under which the analysis + was executed. For example, in GitHub Actions this includes the + workflow filename and job name. + type: string + category: + description: Identifies the configuration under which the analysis + was executed. + type: string + classifications: + type: array + items: + type: string + commit_sha: + type: string + environment: + description: Identifies the variable values associated with the + environment in which the analysis that generated this alert instance + was performed, such as the language that was analyzed. + type: string + location: + type: object + properties: + end_column: + type: integer + end_line: + type: integer + path: + type: string + start_column: + type: integer + start_line: + type: integer + message: + type: object + properties: + text: + type: string + ref: + description: The full Git reference, formatted as `refs/heads/`. + type: string + state: + description: State of a code scanning alert. + type: string + enum: + - open + - dismissed + - fixed + required: + - ref + - analysis_key + - environment + - state + number: + description: The code scanning alert number. + type: integer + rule: + type: object + properties: + description: + description: A short description of the rule used to detect the + alert. + type: string + full_description: + type: string + help: + type: string + nullable: true + help_uri: + description: A link to the documentation for the rule used to detect + the alert. + type: string + nullable: true + id: + description: A unique identifier for the rule used to detect the + alert. + type: string + name: + type: string + severity: + description: The severity of the alert. + type: string + nullable: true + enum: + - none + - note + - warning + - error + - null + tags: + type: array + nullable: true + items: + type: string + required: + - id + - severity + - description + state: + description: State of a code scanning alert. Events for alerts found + outside the default branch will return a `null` value until they are + dismissed or fixed. + nullable: true + type: string + enum: + - open + - dismissed + - fixed + tool: + type: object + properties: + guid: + type: string + nullable: true + name: + description: The name of the tool used to generate the code scanning + analysis alert. + type: string + version: + description: The version of the tool used to detect the alert. + type: string + nullable: true + required: + - name + - version + updated_at: + type: string + nullable: true + url: + type: string + format: uri + dismissal_approved_by: + nullable: true + required: + - number + - created_at + - url + - html_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + commit_oid: + description: The commit SHA of the code scanning alert. When the action + is `reopened_by_user` or `closed_by_user`, the event was triggered by + the `sender` and this value will be empty. + type: string + nullable: true + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + ref: + description: The Git reference of the code scanning alert. When the action + is `reopened_by_user` or `closed_by_user`, the event was triggered by + the `sender` and this value will be empty. + type: string + nullable: true + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - ref + - commit_oid + - repository + - sender + webhook-code-scanning-alert-reopened-by-user: + title: code_scanning_alert reopened_by_user event + type: object + properties: + action: + type: string + enum: + - reopened_by_user + alert: + description: The code scanning alert involved in the event. + type: object + properties: + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + created_at: + description: 'The time that the alert was created in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ.`' + type: string + format: date-time + dismissed_at: + description: 'The time that the alert was dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + dismissed_by: + nullable: true + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + dismissed_reason: + description: 'The reason for dismissing or closing the alert. Can be + one of: `false positive`, `won''t fix`, and `used in tests`.' + nullable: true + fixed_at: + description: 'The time that the alert was fixed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + html_url: + description: The GitHub URL of the alert resource. + type: string + format: uri + most_recent_instance: + title: Alert Instance + type: object + nullable: true + properties: + analysis_key: + description: Identifies the configuration under which the analysis + was executed. For example, in GitHub Actions this includes the + workflow filename and job name. + type: string + category: + description: Identifies the configuration under which the analysis + was executed. + type: string + classifications: + type: array + items: + type: string + commit_sha: + type: string + environment: + description: Identifies the variable values associated with the + environment in which the analysis that generated this alert instance + was performed, such as the language that was analyzed. + type: string + location: + type: object + properties: + end_column: + type: integer + end_line: + type: integer + path: + type: string + start_column: + type: integer + start_line: + type: integer + message: + type: object + properties: + text: + type: string + ref: + description: The full Git reference, formatted as `refs/heads/`. + type: string + state: + description: State of a code scanning alert. + type: string + enum: + - open + - dismissed + - fixed + required: + - ref + - analysis_key + - environment + - state + number: + description: The code scanning alert number. + type: integer + rule: + type: object + properties: + description: + description: A short description of the rule used to detect the + alert. + type: string + id: + description: A unique identifier for the rule used to detect the + alert. + type: string + severity: + description: The severity of the alert. + type: string + nullable: true + enum: + - none + - note + - warning + - error + - null + required: + - id + - severity + - description + state: + description: State of a code scanning alert. Events for alerts found + outside the default branch will return a `null` value until they are + dismissed or fixed. + nullable: true + type: string + enum: + - open + - fixed + tool: + type: object + properties: + name: + description: The name of the tool used to generate the code scanning + analysis alert. + type: string + version: + description: The version of the tool used to detect the alert. + type: string + nullable: true + required: + - name + - version + url: + type: string + format: uri + required: + - number + - created_at + - url + - html_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + commit_oid: + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + ref: + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - ref + - commit_oid + - repository + - sender + webhook-code-scanning-alert-updated-assignment: + title: code_scanning_alert updated_assignment event + type: object + properties: + action: + type: string + enum: + - updated_assignment + alert: + description: The code scanning alert involved in the event. + type: object + properties: + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + created_at: + description: 'The time that the alert was created in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ.`' + type: string + format: date-time + dismissed_at: + description: 'The time that the alert was dismissed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + type: string + nullable: true + format: date-time + dismissed_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + dismissed_comment: + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + dismissed_reason: + description: The reason for dismissing or closing the alert. + type: string + nullable: true + enum: + - false positive + - won't fix + - used in tests + - null + fixed_at: + description: 'The time that the alert was fixed in ISO 8601 format: + `YYYY-MM-DDTHH:MM:SSZ`.' + nullable: true + html_url: + description: The GitHub URL of the alert resource. + type: string + format: uri + most_recent_instance: + title: Alert Instance + type: object + nullable: true + properties: + analysis_key: + description: Identifies the configuration under which the analysis + was executed. For example, in GitHub Actions this includes the + workflow filename and job name. + type: string + category: + description: Identifies the configuration under which the analysis + was executed. + type: string + classifications: + type: array + items: + type: string + commit_sha: + type: string + environment: + description: Identifies the variable values associated with the + environment in which the analysis that generated this alert instance + was performed, such as the language that was analyzed. + type: string + location: + type: object + properties: + end_column: + type: integer + end_line: + type: integer + path: + type: string + start_column: + type: integer + start_line: + type: integer + message: + type: object + properties: + text: + type: string + ref: + description: The full Git reference, formatted as `refs/heads/`. + type: string + state: + description: State of a code scanning alert. + type: string + enum: + - open + - dismissed + - fixed + required: + - ref + - analysis_key + - environment + - state + number: + description: The code scanning alert number. + type: integer + rule: + type: object + properties: + description: + description: A short description of the rule used to detect the + alert. + type: string + id: + description: A unique identifier for the rule used to detect the + alert. + type: string + severity: + description: The severity of the alert. + type: string + nullable: true + enum: + - none + - note + - warning + - error + - null + required: + - id + - severity + - description + state: + description: State of a code scanning alert. Events for alerts found + outside the default branch will return a `null` value until they are + dismissed or fixed. + nullable: true + type: string + enum: + - open + - dismissed + - fixed + tool: + type: object + properties: + name: + description: The name of the tool used to generate the code scanning + analysis alert. + type: string + version: + description: The version of the tool used to detect the alert. + type: string + nullable: true + required: + - name + - version + url: + type: string + format: uri + required: + - number + - created_at + - url + - html_url + - state + - dismissed_by + - dismissed_at + - dismissed_reason + - rule + - tool + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-commit-comment-created: + title: commit_comment created event + type: object + properties: + action: + description: The action performed. Can be `created`. + type: string + enum: + - created + comment: + description: The [commit comment](${externalDocsUpapp/api/description/components/schemas/webhooks/issue-comment-created.yamlrl}/rest/commits/comments#get-a-commit-comment) + resource. + type: object + properties: + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: The text of the comment. + type: string + commit_id: + description: The SHA of the commit to which the comment applies. + type: string + created_at: + type: string + html_url: + type: string + format: uri + id: + description: The ID of the commit comment. + type: integer + line: + description: The line of the blob to which the comment applies. The + last line of the range for a multi-line comment + type: integer + nullable: true + node_id: + description: The node ID of the commit comment. + type: string + path: + description: The relative path of the file to which the comment applies. + type: string + nullable: true + position: + description: The line index in the diff to which the comment applies. + type: integer + nullable: true + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - html_url + - id + - node_id + - user + - position + - line + - path + - commit_id + - created_at + - updated_at + - author_association + - body + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - comment + - repository + - sender + webhook-create: + title: create event + type: object + properties: + description: + description: The repository's current description. + type: string + nullable: true + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + master_branch: + description: The name of the repository's default branch (usually `main`). + type: string + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pusher_type: + "$ref": "#/components/schemas/webhooks_deploy_pusher_type" + ref: + "$ref": "#/components/schemas/webhooks_ref_0" + ref_type: + description: The type of Git ref object created in the repository. + type: string + enum: + - tag + - branch + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - ref + - ref_type + - master_branch + - description + - pusher_type + - repository + - sender + webhook-custom-property-created: + title: custom property created event + type: object + properties: + action: + type: string + enum: + - created + definition: + "$ref": "#/components/schemas/custom-property" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - definition + webhook-custom-property-deleted: + title: custom property deleted event + type: object + properties: + action: + type: string + enum: + - deleted + definition: + type: object + properties: + property_name: + type: string + description: The name of the property that was deleted. + required: + - property_name + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - definition + webhook-custom-property-promoted-to-enterprise: + title: custom property promoted to business event + type: object + properties: + action: + type: string + enum: + - promote_to_enterprise + definition: + "$ref": "#/components/schemas/custom-property" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - definition + webhook-custom-property-updated: + title: custom property updated event + type: object + properties: + action: + type: string + enum: + - updated + definition: + "$ref": "#/components/schemas/custom-property" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - definition + webhook-custom-property-values-updated: + title: Custom property values updated event + type: object + properties: + action: + type: string + enum: + - updated + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + repository: + "$ref": "#/components/schemas/repository-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + new_property_values: + type: array + description: The new custom property values for the repository. + items: + "$ref": "#/components/schemas/custom-property-value" + old_property_values: + type: array + description: The old custom property values for the repository. + items: + "$ref": "#/components/schemas/custom-property-value" + required: + - action + - repository + - organization + - new_property_values + - old_property_values + webhook-delete: + title: delete event + type: object + properties: + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pusher_type: + "$ref": "#/components/schemas/webhooks_deploy_pusher_type" + ref: + "$ref": "#/components/schemas/webhooks_ref_0" + ref_type: + description: The type of Git ref object deleted in the repository. + type: string + enum: + - tag + - branch + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - ref + - ref_type + - pusher_type + - repository + - sender + webhook-dependabot-alert-auto-dismissed: + title: Dependabot alert auto-dismissed event + type: object + properties: + action: + type: string + enum: + - auto_dismissed + alert: + "$ref": "#/components/schemas/dependabot-alert" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-dependabot-alert-auto-reopened: + title: Dependabot alert auto-reopened event + type: object + properties: + action: + type: string + enum: + - auto_reopened + alert: + "$ref": "#/components/schemas/dependabot-alert" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-dependabot-alert-created: + title: Dependabot alert created event + type: object + properties: + action: + type: string + enum: + - created + alert: + "$ref": "#/components/schemas/dependabot-alert" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-dependabot-alert-dismissed: + title: Dependabot alert dismissed event + type: object + properties: + action: + type: string + enum: + - dismissed + alert: + "$ref": "#/components/schemas/dependabot-alert" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-dependabot-alert-fixed: + title: Dependabot alert fixed event + type: object + properties: + action: + type: string + enum: + - fixed + alert: + "$ref": "#/components/schemas/dependabot-alert" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-dependabot-alert-reintroduced: + title: Dependabot alert reintroduced event + type: object + properties: + action: + type: string + enum: + - reintroduced + alert: + "$ref": "#/components/schemas/dependabot-alert" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-dependabot-alert-reopened: + title: Dependabot alert reopened event + type: object + properties: + action: + type: string + enum: + - reopened + alert: + "$ref": "#/components/schemas/dependabot-alert" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-deploy-key-created: + title: deploy_key created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + key: + "$ref": "#/components/schemas/webhooks_deploy_key" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - key + - repository + - sender + webhook-deploy-key-deleted: + title: deploy_key deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + key: + "$ref": "#/components/schemas/webhooks_deploy_key" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - key + - repository + - sender + webhook-deployment-created: + title: deployment created event + type: object + properties: + action: + type: string + enum: + - created + deployment: + title: Deployment + description: The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + type: object + properties: + created_at: + type: string + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + environment: + type: string + id: + type: integer + node_id: + type: string + original_environment: + type: string + payload: + oneOf: + - type: object + - type: string + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - workflow_job + - pull_request_review_thread + - merge_queue_entry + - secret_scanning_alert_location + - merge_group + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + production_environment: + type: boolean + ref: + type: string + repository_url: + type: string + format: uri + sha: + type: string + statuses_url: + type: string + format: uri + task: + type: string + transient_environment: + type: boolean + updated_at: + type: string + url: + type: string + format: uri + required: + - url + - id + - node_id + - sha + - ref + - task + - payload + - original_environment + - environment + - description + - creator + - created_at + - updated_at + - statuses_url + - repository_url + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow: + "$ref": "#/components/schemas/webhooks_workflow" + workflow_run: + title: Deployment Workflow Run + type: object + nullable: true + properties: + actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + artifacts_url: + type: string + cancel_url: + type: string + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + conclusion: + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + created_at: + type: string + format: date-time + display_title: + type: string + event: + type: string + head_branch: + type: string + head_commit: + nullable: true + head_repository: + type: object + properties: + 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 + description: + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + logs_url: + type: string + name: + type: string + node_id: + type: string + path: + type: string + previous_attempt_url: + nullable: true + pull_requests: + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + referenced_workflows: + type: array + nullable: true + items: + type: object + properties: + path: + type: string + ref: + type: string + sha: + type: string + required: + - path + - sha + repository: + type: object + properties: + 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 + description: + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + rerun_url: + type: string + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - waiting + - pending + triggering_actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + required: + - id + - name + - node_id + - head_branch + - head_sha + - run_number + - event + - status + - conclusion + - workflow_id + - check_suite_id + - check_suite_node_id + - url + - html_url + - path + - pull_requests + - created_at + - updated_at + - actor + - run_attempt + - run_started_at + - display_title + required: + - action + - deployment + - workflow + - workflow_run + - repository + - sender + webhook-deployment-protection-rule-requested: + title: deployment protection rule requested event + type: object + properties: + action: + type: string + enum: + - requested + environment: + description: The name of the environment that has the deployment protection + rule. + type: string + event: + description: The event that triggered the deployment protection rule. + type: string + deployment_callback_url: + description: The URL to review the deployment protection rule. + type: string + format: uri + deployment: + "$ref": "#/components/schemas/deployment" + pull_requests: + type: array + items: + "$ref": "#/components/schemas/pull-request" + repository: + "$ref": "#/components/schemas/repository-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + sender: + "$ref": "#/components/schemas/simple-user" + webhook-deployment-review-approved: + type: object + properties: + action: + type: string + enum: + - approved + approver: + "$ref": "#/components/schemas/webhooks_approver" + comment: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + reviewers: + "$ref": "#/components/schemas/webhooks_reviewers" + sender: + "$ref": "#/components/schemas/simple-user" + since: + type: string + workflow_job_run: + "$ref": "#/components/schemas/webhooks_workflow_job_run" + workflow_job_runs: + type: array + items: + type: object + properties: + conclusion: + nullable: true + created_at: + type: string + environment: + type: string + html_url: + type: string + id: + type: integer + name: + type: string + nullable: true + status: + type: string + updated_at: + type: string + workflow_run: + title: Deployment Workflow Run + type: object + nullable: true + properties: + actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + artifacts_url: + type: string + cancel_url: + type: string + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + conclusion: + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + created_at: + type: string + format: date-time + display_title: + type: string + event: + type: string + head_branch: + type: string + head_commit: + type: object + nullable: true + head_repository: + type: object + properties: + 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 + description: + type: string + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + logs_url: + type: string + name: + type: string + node_id: + type: string + path: + type: string + previous_attempt_url: + type: string + nullable: true + pull_requests: + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + referenced_workflows: + type: array + nullable: true + items: + type: object + properties: + path: + type: string + ref: + type: string + sha: + type: string + required: + - path + - sha + repository: + type: object + properties: + 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 + description: + type: string + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + rerun_url: + type: string + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - waiting + - pending + triggering_actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + required: + - id + - name + - node_id + - head_branch + - head_sha + - run_number + - event + - status + - conclusion + - workflow_id + - check_suite_id + - check_suite_node_id + - url + - html_url + - path + - pull_requests + - created_at + - updated_at + - actor + - triggering_actor + - run_attempt + - run_started_at + - display_title + required: + - action + - workflow_run + - since + - repository + - organization + - sender + webhook-deployment-review-rejected: + type: object + properties: + action: + type: string + enum: + - rejected + approver: + "$ref": "#/components/schemas/webhooks_approver" + comment: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + reviewers: + "$ref": "#/components/schemas/webhooks_reviewers" + sender: + "$ref": "#/components/schemas/simple-user" + since: + type: string + workflow_job_run: + "$ref": "#/components/schemas/webhooks_workflow_job_run" + workflow_job_runs: + type: array + items: + type: object + properties: + conclusion: + type: string + nullable: true + created_at: + type: string + environment: + type: string + html_url: + type: string + id: + type: integer + name: + type: string + nullable: true + status: + type: string + updated_at: + type: string + workflow_run: + title: Deployment Workflow Run + type: object + nullable: true + properties: + actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + artifacts_url: + type: string + cancel_url: + type: string + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + conclusion: + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + created_at: + type: string + format: date-time + event: + type: string + head_branch: + type: string + head_commit: + type: object + nullable: true + head_repository: + type: object + properties: + 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 + description: + type: string + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + logs_url: + type: string + name: + type: string + node_id: + type: string + path: + type: string + previous_attempt_url: + type: string + nullable: true + pull_requests: + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + referenced_workflows: + type: array + nullable: true + items: + type: object + properties: + path: + type: string + ref: + type: string + sha: + type: string + required: + - path + - sha + repository: + type: object + properties: + 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 + description: + type: string + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + rerun_url: + type: string + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - waiting + triggering_actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + display_title: + type: string + required: + - id + - name + - node_id + - head_branch + - head_sha + - run_number + - event + - status + - conclusion + - workflow_id + - check_suite_id + - check_suite_node_id + - url + - html_url + - path + - pull_requests + - created_at + - updated_at + - actor + - triggering_actor + - run_attempt + - run_started_at + - display_title + required: + - action + - workflow_run + - since + - repository + - organization + - sender + webhook-deployment-review-requested: + type: object + properties: + action: + type: string + enum: + - requested + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + environment: + type: string + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + requestor: + "$ref": "#/components/schemas/webhooks_user" + reviewers: + type: array + items: + type: object + properties: + reviewer: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - id + type: + type: string + enum: + - User + - Team + sender: + "$ref": "#/components/schemas/simple-user" + since: + type: string + workflow_job_run: + type: object + properties: + conclusion: + nullable: true + created_at: + type: string + environment: + type: string + html_url: + type: string + id: + type: integer + name: + type: string + nullable: true + status: + type: string + updated_at: + type: string + required: + - id + - name + - status + - conclusion + - html_url + - created_at + - updated_at + - environment + workflow_run: + title: Deployment Workflow Run + type: object + nullable: true + properties: + actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + artifacts_url: + type: string + cancel_url: + type: string + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + conclusion: + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + created_at: + type: string + format: date-time + event: + type: string + head_branch: + type: string + head_commit: + type: object + nullable: true + head_repository: + type: object + properties: + 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 + description: + type: string + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + logs_url: + type: string + name: + type: string + node_id: + type: string + path: + type: string + previous_attempt_url: + type: string + nullable: true + pull_requests: + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + referenced_workflows: + type: array + nullable: true + items: + type: object + properties: + path: + type: string + ref: + type: string + sha: + type: string + required: + - path + - sha + repository: + type: object + properties: + 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 + description: + type: string + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + rerun_url: + type: string + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - waiting + - pending + triggering_actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + display_title: + type: string + required: + - id + - name + - node_id + - head_branch + - head_sha + - run_number + - event + - status + - conclusion + - workflow_id + - check_suite_id + - check_suite_node_id + - url + - html_url + - path + - pull_requests + - created_at + - updated_at + - actor + - triggering_actor + - run_attempt + - run_started_at + - display_title + required: + - action + - workflow_run + - since + - workflow_job_run + - environment + - reviewers + - requestor + - repository + - organization + - sender + webhook-deployment-status-created: + title: deployment_status created event + type: object + properties: + action: + type: string + enum: + - created + check_run: + type: object + nullable: true + properties: + completed_at: + type: string + nullable: true + format: date-time + conclusion: + description: The result of the completed check run. This value will + be `null` until the check run has completed. + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - skipped + - null + details_url: + type: string + format: uri + external_id: + type: string + head_sha: + description: The SHA of the commit that is being checked. + type: string + html_url: + type: string + format: uri + id: + description: The id of the check. + type: integer + name: + description: The name of the check run. + type: string + node_id: + type: string + started_at: + type: string + format: date-time + status: + description: The current status of the check run. Can be `queued`, `in_progress`, + or `completed`. + type: string + enum: + - queued + - in_progress + - completed + - waiting + - pending + url: + type: string + format: uri + required: + - id + - name + - node_id + - head_sha + - external_id + - url + - html_url + - details_url + - status + - conclusion + - started_at + - completed_at + deployment: + title: Deployment + description: The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + type: object + properties: + created_at: + type: string + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + environment: + type: string + id: + type: integer + node_id: + type: string + original_environment: + type: string + payload: + oneOf: + - type: string + - type: object + nullable: true + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - merge_queue_entry + - workflow_job + - pull_request_review_thread + - secret_scanning_alert_location + - merge_group + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + production_environment: + type: boolean + ref: + type: string + repository_url: + type: string + format: uri + sha: + type: string + statuses_url: + type: string + format: uri + task: + type: string + transient_environment: + type: boolean + updated_at: + type: string + url: + type: string + format: uri + required: + - url + - id + - node_id + - sha + - ref + - task + - payload + - original_environment + - environment + - description + - creator + - created_at + - updated_at + - statuses_url + - repository_url + deployment_status: + description: The [deployment status](https://docs.github.com/rest/deployments/statuses#list-deployment-statuses). + type: object + properties: + created_at: + type: string + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + deployment_url: + type: string + format: uri + description: + description: The optional human-readable description added to the status. + type: string + environment: + type: string + environment_url: + type: string + format: uri + id: + type: integer + log_url: + type: string + format: uri + node_id: + type: string + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - pull_request_review_thread + - merge_queue_entry + - workflow_job + - merge_group + - secret_scanning_alert_location + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + repository_url: + type: string + format: uri + state: + description: The new state. Can be `pending`, `success`, `failure`, + or `error`. + type: string + target_url: + description: The optional link added to the status. + type: string + updated_at: + type: string + url: + type: string + format: uri + required: + - url + - id + - node_id + - state + - creator + - description + - environment + - target_url + - created_at + - updated_at + - deployment_url + - repository_url + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow: + "$ref": "#/components/schemas/webhooks_workflow" + workflow_run: + title: Deployment Workflow Run + type: object + nullable: true + properties: + actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + artifacts_url: + type: string + cancel_url: + type: string + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + conclusion: + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + - startup_failure + created_at: + type: string + format: date-time + display_title: + type: string + event: + type: string + head_branch: + type: string + head_commit: + nullable: true + head_repository: + type: object + properties: + 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 + description: + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + logs_url: + type: string + name: + type: string + node_id: + type: string + path: + type: string + previous_attempt_url: + nullable: true + pull_requests: + type: array + items: + title: Check Run Pull Request + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: integer + number: + type: integer + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + referenced_workflows: + type: array + nullable: true + items: + type: object + properties: + path: + type: string + ref: + type: string + sha: + type: string + required: + - path + - sha + repository: + type: object + properties: + 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 + description: + nullable: true + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + hooks_url: + type: string + html_url: + type: string + id: + type: integer + 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 + name: + type: string + node_id: + type: string + notifications_url: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + private: + type: boolean + pulls_url: + type: string + releases_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 + url: + type: string + rerun_url: + type: string + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - waiting + - pending + triggering_actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + required: + - id + - name + - node_id + - head_branch + - head_sha + - run_number + - event + - status + - conclusion + - workflow_id + - check_suite_id + - check_suite_node_id + - url + - html_url + - path + - pull_requests + - created_at + - updated_at + - actor + - triggering_actor + - run_attempt + - run_started_at + - display_title + required: + - action + - deployment_status + - deployment + - repository + - sender + webhook-discussion-answered: + title: discussion answered event + type: object + properties: + action: + type: string + enum: + - answered + answer: + "$ref": "#/components/schemas/webhooks_answer" + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - answer + - repository + - sender + webhook-discussion-category-changed: + title: discussion category changed event + type: object + properties: + action: + type: string + enum: + - category_changed + changes: + type: object + properties: + category: + type: object + properties: + from: + type: object + properties: + created_at: + type: string + format: date-time + description: + type: string + emoji: + type: string + id: + type: integer + is_answerable: + type: boolean + name: + type: string + node_id: + type: string + repository_id: + type: integer + slug: + type: string + updated_at: + type: string + required: + - id + - repository_id + - emoji + - name + - description + - created_at + - updated_at + - slug + - is_answerable + required: + - from + required: + - category + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - discussion + - repository + - sender + webhook-discussion-closed: + title: discussion closed event + type: object + properties: + action: + type: string + enum: + - closed + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-comment-created: + title: discussion_comment created event + type: object + properties: + action: + type: string + enum: + - created + comment: + "$ref": "#/components/schemas/webhooks_comment" + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - comment + - discussion + - repository + - sender + webhook-discussion-comment-deleted: + title: discussion_comment deleted event + type: object + properties: + action: + type: string + enum: + - deleted + comment: + "$ref": "#/components/schemas/webhooks_comment" + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - comment + - discussion + - repository + - sender + webhook-discussion-comment-edited: + title: discussion_comment edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + body: + type: object + properties: + from: + type: string + required: + - from + required: + - body + comment: + "$ref": "#/components/schemas/webhooks_comment" + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - comment + - discussion + - repository + - sender + webhook-discussion-created: + title: discussion created event + type: object + properties: + action: + type: string + enum: + - created + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-deleted: + title: discussion deleted event + type: object + properties: + action: + type: string + enum: + - deleted + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-edited: + title: discussion edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + body: + type: object + properties: + from: + type: string + required: + - from + title: + type: object + properties: + from: + type: string + required: + - from + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-labeled: + title: discussion labeled event + type: object + properties: + action: + type: string + enum: + - labeled + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - label + - repository + - sender + webhook-discussion-locked: + title: discussion locked event + type: object + properties: + action: + type: string + enum: + - locked + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-pinned: + title: discussion pinned event + type: object + properties: + action: + type: string + enum: + - pinned + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-reopened: + title: discussion reopened event + type: object + properties: + action: + type: string + enum: + - reopened + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-transferred: + title: discussion transferred event + type: object + properties: + action: + type: string + enum: + - transferred + changes: + type: object + properties: + new_discussion: + "$ref": "#/components/schemas/discussion" + new_repository: + "$ref": "#/components/schemas/repository-webhooks" + required: + - new_discussion + - new_repository + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - discussion + - repository + - sender + webhook-discussion-unanswered: + title: discussion unanswered event + type: object + properties: + action: + type: string + enum: + - unanswered + discussion: + "$ref": "#/components/schemas/discussion" + old_answer: + "$ref": "#/components/schemas/webhooks_answer" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - old_answer + - repository + webhook-discussion-unlabeled: + title: discussion unlabeled event + type: object + properties: + action: + type: string + enum: + - unlabeled + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - label + - repository + - sender + webhook-discussion-unlocked: + title: discussion unlocked event + type: object + properties: + action: + type: string + enum: + - unlocked + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-discussion-unpinned: + title: discussion unpinned event + type: object + properties: + action: + type: string + enum: + - unpinned + discussion: + "$ref": "#/components/schemas/discussion" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - discussion + - repository + - sender + webhook-fork: + title: fork event + description: A user forks a repository. + type: object + properties: + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + forkee: + description: The created [`repository`](https://docs.github.com/rest/repos/repos#get-a-repository) + resource. + allOf: + - title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are + merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based + commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + - type: object + properties: + allow_forking: + type: boolean + archive_url: + type: string + archived: + type: boolean + assignees_url: + type: string + blobs_url: + type: string + branches_url: + type: string + clone_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 + created_at: + type: string + default_branch: + type: string + deployments_url: + type: string + description: + type: string + nullable: true + disabled: + type: boolean + downloads_url: + type: string + events_url: + type: string + fork: + type: boolean + enum: + - true + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + full_name: + type: string + git_commits_url: + type: string + git_refs_url: + type: string + git_tags_url: + type: string + git_url: + type: string + has_downloads: + type: boolean + has_issues: + type: boolean + has_pages: + type: boolean + has_projects: + type: boolean + has_wiki: + type: boolean + homepage: + type: string + nullable: true + hooks_url: + type: string + html_url: + type: string + id: + type: integer + is_template: + type: boolean + issue_comment_url: + type: string + issue_events_url: + type: string + issues_url: + type: string + keys_url: + type: string + labels_url: + type: string + language: + nullable: true + languages_url: + type: string + license: + type: object + nullable: true + merges_url: + type: string + milestones_url: + type: string + mirror_url: + nullable: true + name: + type: string + node_id: + type: string + notifications_url: + type: string + open_issues: + type: integer + open_issues_count: + type: integer + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + private: + type: boolean + public: + type: boolean + pulls_url: + type: string + pushed_at: + type: string + releases_url: + type: string + size: + type: integer + ssh_url: + type: string + stargazers_count: + type: integer + stargazers_url: + type: string + statuses_url: + type: string + subscribers_url: + type: string + subscription_url: + type: string + svn_url: + type: string + tags_url: + type: string + teams_url: + type: string + topics: + type: array + items: + nullable: true + trees_url: + type: string + updated_at: + type: string + url: + type: string + visibility: + type: string + watchers: + type: integer + watchers_count: + type: integer + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - forkee + - repository + - sender + webhook-github-app-authorization-revoked: + title: github_app_authorization revoked event + type: object + properties: + action: + type: string + enum: + - revoked + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - sender + webhook-gollum: + title: gollum event + type: object + properties: + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pages: + description: The pages that were updated. + type: array + items: + type: object + properties: + action: + description: The action that was performed on the page. Can be `created` + or `edited`. + type: string + enum: + - created + - edited + html_url: + description: Points to the HTML wiki page. + type: string + format: uri + page_name: + description: The name of the page. + type: string + sha: + description: The latest commit SHA of the page. + type: string + summary: + type: string + nullable: true + title: + description: The current page title. + type: string + required: + - page_name + - title + - summary + - action + - sha + - html_url + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - pages + - repository + - sender + webhook-installation-created: + title: installation created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repositories: + "$ref": "#/components/schemas/webhooks_repositories" + repository: + "$ref": "#/components/schemas/repository-webhooks" + requester: + "$ref": "#/components/schemas/webhooks_user" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - installation + - sender + webhook-installation-deleted: + title: installation deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repositories: + "$ref": "#/components/schemas/webhooks_repositories" + repository: + "$ref": "#/components/schemas/repository-webhooks" + requester: + nullable: true + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - installation + - sender + webhook-installation-new-permissions-accepted: + title: installation new_permissions_accepted event + type: object + properties: + action: + type: string + enum: + - new_permissions_accepted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repositories: + "$ref": "#/components/schemas/webhooks_repositories" + repository: + "$ref": "#/components/schemas/repository-webhooks" + requester: + nullable: true + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - installation + - sender + webhook-installation-repositories-added: + title: installation_repositories added event + type: object + properties: + action: + type: string + enum: + - added + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repositories_added: + "$ref": "#/components/schemas/webhooks_repositories_added" + repositories_removed: + description: An array of repository objects, which were removed from the + installation. + type: array + items: + type: object + properties: + full_name: + type: string + id: + description: Unique identifier of the repository + type: integer + name: + description: The name of the repository. + type: string + node_id: + type: string + private: + description: Whether the repository is private or public. + type: boolean + repository: + "$ref": "#/components/schemas/repository-webhooks" + repository_selection: + "$ref": "#/components/schemas/webhooks_repository_selection" + requester: + "$ref": "#/components/schemas/webhooks_user" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - installation + - repository_selection + - repositories_added + - repositories_removed + - requester + - sender + webhook-installation-repositories-removed: + title: installation_repositories removed event + type: object + properties: + action: + type: string + enum: + - removed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repositories_added: + "$ref": "#/components/schemas/webhooks_repositories_added" + repositories_removed: + description: An array of repository objects, which were removed from the + installation. + type: array + items: + type: object + properties: + full_name: + type: string + id: + description: Unique identifier of the repository + type: integer + name: + description: The name of the repository. + type: string + node_id: + type: string + private: + description: Whether the repository is private or public. + type: boolean + required: + - id + - node_id + - name + - full_name + - private + repository: + "$ref": "#/components/schemas/repository-webhooks" + repository_selection: + "$ref": "#/components/schemas/webhooks_repository_selection" + requester: + "$ref": "#/components/schemas/webhooks_user" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - installation + - repository_selection + - repositories_added + - repositories_removed + - requester + - sender + webhook-installation-suspend: + title: installation suspend event + type: object + properties: + action: + type: string + enum: + - suspend + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repositories: + "$ref": "#/components/schemas/webhooks_repositories" + repository: + "$ref": "#/components/schemas/repository-webhooks" + requester: + nullable: true + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - installation + - sender + webhook-installation-target-renamed: + type: object + properties: + account: + type: object + properties: + archived_at: + type: string + nullable: true + avatar_url: + type: string + created_at: + type: string + description: + nullable: true + events_url: + type: string + followers: + type: integer + followers_url: + type: string + following: + type: integer + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + has_organization_projects: + type: boolean + has_repository_projects: + type: boolean + hooks_url: + type: string + html_url: + type: string + id: + type: integer + is_verified: + type: boolean + issues_url: + type: string + login: + type: string + members_url: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + public_gists: + type: integer + public_members_url: + type: string + public_repos: + type: integer + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + slug: + type: string + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + updated_at: + type: string + url: + type: string + website_url: + nullable: true + user_view_type: + type: string + required: + - id + - node_id + - avatar_url + - html_url + action: + type: string + enum: + - renamed + changes: + type: object + properties: + login: + type: object + properties: + from: + type: string + required: + - from + slug: + type: object + properties: + from: + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + target_type: + type: string + required: + - action + - target_type + - account + - changes + - installation + webhook-installation-unsuspend: + title: installation unsuspend event + type: object + properties: + action: + type: string + enum: + - unsuspend + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repositories: + "$ref": "#/components/schemas/webhooks_repositories" + repository: + "$ref": "#/components/schemas/repository-webhooks" + requester: + nullable: true + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - installation + - sender + webhook-issue-comment-created: + title: issue_comment created event + type: object + properties: + action: + type: string + enum: + - created + comment: + title: issue comment + description: The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) + itself. + type: object + properties: + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue comment + type: string + created_at: + type: string + format: date-time + html_url: + type: string + format: uri + id: + description: Unique identifier of the issue comment + type: integer + format: int64 + issue_url: + type: string + format: uri + node_id: + type: string + performed_via_github_app: + "$ref": "#/components/schemas/nullable-integration" + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + updated_at: + type: string + format: date-time + url: + description: URL for the issue comment + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - html_url + - issue_url + - id + - node_id + - user + - created_at + - updated_at + - author_association + - performed_via_github_app + - body + - reactions + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + the comment belongs to. + allOf: + - title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can + be installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within + GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - reminder + - pull_request_review_thread + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + - admin + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + - type: object + properties: + active_lock_reason: + type: string + nullable: true + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + type: object + nullable: true + author_association: + type: string + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments: + type: integer + comments_url: + type: string + created_at: + type: string + events_url: + type: string + html_url: + type: string + id: + type: integer + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + locked: + type: boolean + milestone: + type: object + nullable: true + node_id: + type: string + number: + type: integer + performed_via_github_app: + type: object + nullable: true + reactions: + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + repository_url: + type: string + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + timeline_url: + type: string + title: + type: string + updated_at: + type: string + url: + type: string + user: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + format: int64 + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + required: + - labels + - state + - locked + - assignee + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - comment + - repository + - sender + webhook-issue-comment-deleted: + title: issue_comment deleted event + type: object + properties: + action: + type: string + enum: + - deleted + comment: + "$ref": "#/components/schemas/webhooks_issue_comment" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + the comment belongs to. + allOf: + - title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can + be installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within + GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + - type: object + properties: + active_lock_reason: + type: string + nullable: true + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + type: object + nullable: true + author_association: + type: string + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments: + type: integer + comments_url: + type: string + created_at: + type: string + events_url: + type: string + html_url: + type: string + id: + type: integer + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + locked: + type: boolean + milestone: + type: object + nullable: true + node_id: + type: string + number: + type: integer + performed_via_github_app: + type: object + nullable: true + reactions: + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + repository_url: + type: string + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + timeline_url: + type: string + title: + type: string + updated_at: + type: string + url: + type: string + user: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + format: int64 + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + required: + - labels + - state + - locked + - assignee + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - comment + - repository + - sender + webhook-issue-comment-edited: + title: issue_comment edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + "$ref": "#/components/schemas/webhooks_changes" + comment: + "$ref": "#/components/schemas/webhooks_issue_comment" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + the comment belongs to. + allOf: + - title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can + be installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within + GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - reminder + - pull_request_review_thread + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + - type: object + properties: + active_lock_reason: + type: string + nullable: true + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + type: object + nullable: true + author_association: + type: string + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments: + type: integer + comments_url: + type: string + created_at: + type: string + events_url: + type: string + html_url: + type: string + id: + type: integer + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + locked: + type: boolean + milestone: + type: object + nullable: true + node_id: + type: string + number: + type: integer + performed_via_github_app: + type: object + nullable: true + reactions: + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + repository_url: + type: string + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + timeline_url: + type: string + title: + type: string + updated_at: + type: string + url: + type: string + user: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + format: int64 + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + required: + - labels + - state + - locked + - assignee + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - issue + - comment + - repository + - sender + webhook-issue-dependencies-blocked-by-added: + title: blocked by issue added event + type: object + properties: + action: + type: string + enum: + - blocked_by_added + blocked_issue_id: + description: The ID of the blocked issue. + type: number + blocked_issue: + "$ref": "#/components/schemas/issue" + blocking_issue_id: + description: The ID of the blocking issue. + type: number + blocking_issue: + "$ref": "#/components/schemas/issue" + blocking_issue_repo: + "$ref": "#/components/schemas/repository" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - organization + - repository + - sender + webhook-issue-dependencies-blocked-by-removed: + title: blocked by issue removed event + type: object + properties: + action: + type: string + enum: + - blocked_by_removed + blocked_issue_id: + description: The ID of the blocked issue. + type: number + blocked_issue: + "$ref": "#/components/schemas/issue" + blocking_issue_id: + description: The ID of the blocking issue. + type: number + blocking_issue: + "$ref": "#/components/schemas/issue" + blocking_issue_repo: + "$ref": "#/components/schemas/repository" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - organization + - repository + - sender + webhook-issue-dependencies-blocking-added: + title: blocking issue added event + type: object + properties: + action: + type: string + enum: + - blocking_added + blocked_issue_id: + description: The ID of the blocked issue. + type: number + blocked_issue: + "$ref": "#/components/schemas/issue" + blocked_issue_repo: + "$ref": "#/components/schemas/repository" + blocking_issue_id: + description: The ID of the blocking issue. + type: number + blocking_issue: + "$ref": "#/components/schemas/issue" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - organization + - repository + - sender + webhook-issue-dependencies-blocking-removed: + title: blocking issue removed event + type: object + properties: + action: + type: string + enum: + - blocking_removed + blocked_issue_id: + description: The ID of the blocked issue. + type: number + blocked_issue: + "$ref": "#/components/schemas/issue" + blocked_issue_repo: + "$ref": "#/components/schemas/repository" + blocking_issue_id: + description: The ID of the blocking issue. + type: number + blocking_issue: + "$ref": "#/components/schemas/issue" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - organization + - repository + - sender + webhook-issues-assigned: + title: issues assigned event + type: object + properties: + action: + description: The action that was performed. + type: string + enum: + - assigned + assignee: + "$ref": "#/components/schemas/webhooks_user" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-closed: + title: issues closed event + type: object + properties: + action: + description: The action that was performed. + type: string + enum: + - closed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + allOf: + - title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can + be installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within + GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - security_and_analysis + - reminder + - pull_request_review_thread + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + - type: object + properties: + active_lock_reason: + type: string + nullable: true + assignee: + type: object + nullable: true + assignees: + type: array + items: + type: object + nullable: true + author_association: + type: string + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments: + type: integer + comments_url: + type: string + created_at: + type: string + events_url: + type: string + html_url: + type: string + id: + type: integer + labels: + type: array + items: + type: object + nullable: true + labels_url: + type: string + locked: + type: boolean + milestone: + type: object + nullable: true + node_id: + type: string + number: + type: integer + performed_via_github_app: + type: object + nullable: true + reactions: + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + repository_url: + type: string + state: + type: string + enum: + - closed + - open + timeline_url: + type: string + title: + type: string + updated_at: + type: string + url: + type: string + user: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + format: int64 + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + required: + - state + - closed_at + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-deleted: + title: issues deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - reminder + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-demilestoned: + title: issues demilestoned event + type: object + properties: + action: + type: string + enum: + - demilestoned + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + required: + - active_lock_reason + - assignees + - author_association + - body + - closed_at + - comments + - comments_url + - created_at + - events_url + - html_url + - id + - labels_url + - milestone + - node_id + - number + - reactions + - repository_url + - title + - updated_at + - url + - user + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + assignees: + type: array + items: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + required: + - id + - node_id + - url + - name + - color + - default + - description + nullable: true + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + milestone: + "$ref": "#/components/schemas/webhooks_milestone" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-edited: + title: issues edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: The changes to the issue. + type: object + properties: + body: + type: object + properties: + from: + description: The previous version of the body. + type: string + required: + - from + title: + type: object + properties: + from: + description: The previous version of the title. + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - security_and_analysis + - pull_request_review_thread + - reminder + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + type: + "$ref": "#/components/schemas/issue-type" + title: + description: Title of the issue + type: string + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - issue + - repository + - sender + webhook-issues-labeled: + title: issues labeled event + type: object + properties: + action: + type: string + enum: + - labeled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - pull_request_review_thread + - reminder + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + type: + "$ref": "#/components/schemas/issue-type" + title: + description: Title of the issue + type: string + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-locked: + title: issues locked event + type: object + properties: + action: + type: string + enum: + - locked + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + required: + - active_lock_reason + - assignees + - author_association + - body + - closed_at + - comments + - comments_url + - created_at + - events_url + - html_url + - id + - labels_url + - locked + - milestone + - node_id + - number + - reactions + - repository_url + - title + - updated_at + - url + - user + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + assignees: + type: array + items: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + required: + - id + - node_id + - url + - name + - color + - default + - description + nullable: true + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + labels_url: + type: string + format: uri-template + locked: + type: boolean + enum: + - true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - reminder + - security_and_analysis + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + type: + "$ref": "#/components/schemas/issue-type" + title: + description: Title of the issue + type: string + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-milestoned: + title: issues milestoned event + type: object + properties: + action: + type: string + enum: + - milestoned + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + required: + - active_lock_reason + - assignees + - author_association + - body + - closed_at + - comments + - comments_url + - created_at + - events_url + - html_url + - id + - labels_url + - milestone + - node_id + - number + - reactions + - repository_url + - title + - updated_at + - url + - user + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + assignees: + type: array + items: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + required: + - id + - node_id + - url + - name + - color + - default + - description + nullable: true + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - reminder + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + milestone: + "$ref": "#/components/schemas/webhooks_milestone" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - milestone + - repository + - sender + webhook-issues-opened: + title: issues opened event + type: object + properties: + action: + type: string + enum: + - opened + changes: + type: object + properties: + old_issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + nullable: true + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, + identifying the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can + be installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within + GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + type: + "$ref": "#/components/schemas/issue-type" + required: + - id + - number + old_repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_discussions: + description: Whether the repository has discussions enabled. + type: boolean + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require commit signoff. + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + required: + - old_issue + - old_repository + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - security_and_analysis + - pull_request_review_thread + - reminder + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-pinned: + title: issues pinned event + type: object + properties: + action: + type: string + enum: + - pinned + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue_2" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-reopened: + title: issues reopened event + type: object + properties: + action: + type: string + enum: + - reopened + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + required: + - active_lock_reason + - assignees + - author_association + - body + - closed_at + - comments + - comments_url + - created_at + - events_url + - html_url + - id + - labels_url + - milestone + - node_id + - number + - reactions + - repository_url + - state + - title + - updated_at + - url + - user + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + assignees: + type: array + items: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + required: + - id + - node_id + - url + - name + - color + - default + - description + nullable: true + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + - pull_request_review_thread + - reminder + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + - admin + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + - admin + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + type: + "$ref": "#/components/schemas/issue-type" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-transferred: + title: issues transferred event + type: object + properties: + action: + type: string + enum: + - transferred + changes: + type: object + properties: + new_issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, + identifying the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + labels_url: + type: string + format: uri-template + locked: + type: boolean + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can + be installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within + GitHub. + type: object + nullable: true + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - repository_url + - labels_url + - comments_url + - events_url + - html_url + - id + - node_id + - number + - title + - user + - assignees + - milestone + - comments + - created_at + - updated_at + - closed_at + - author_association + - active_lock_reason + - body + - reactions + new_repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based + commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + required: + - new_issue + - new_repository + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue_2" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - issue + - repository + - sender + webhook-issues-typed: + title: issues typed event + type: object + properties: + action: + type: string + enum: + - typed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue" + type: + "$ref": "#/components/schemas/issue-type" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - type + - repository + - sender + webhook-issues-unassigned: + title: issues unassigned event + type: object + properties: + action: + description: The action that was performed. + type: string + enum: + - unassigned + assignee: + "$ref": "#/components/schemas/webhooks_user_mannequin" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-unlabeled: + title: issues unlabeled event + type: object + properties: + action: + type: string + enum: + - unlabeled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue" + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-unlocked: + title: issues unlocked event + type: object + properties: + action: + type: string + enum: + - unlocked + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + title: Issue + description: The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) + itself. + type: object + required: + - active_lock_reason + - assignees + - author_association + - body + - closed_at + - comments + - comments_url + - created_at + - events_url + - html_url + - id + - labels_url + - locked + - milestone + - node_id + - number + - reactions + - repository_url + - title + - updated_at + - url + - user + properties: + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + assignees: + type: array + items: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: Contents of the issue + type: string + nullable: true + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + created_at: + type: string + format: date-time + draft: + type: boolean + events_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + format: int64 + labels: + type: array + items: + title: Label + type: object + required: + - id + - node_id + - url + - name + - color + - default + - description + nullable: true + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + labels_url: + type: string + format: uri-template + locked: + type: boolean + enum: + - false + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + node_id: + type: string + number: + type: integer + performed_via_github_app: + title: App + description: GitHub apps are a new way to extend GitHub. They can be + installed directly on organizations and user accounts and granted + access to specific repositories. They come with granular permissions + and built-in webhooks. GitHub apps are first class actors within GitHub. + type: object + nullable: true + required: + - id + - node_id + - owner + - name + - description + - external_url + - html_url + - created_at + - updated_at + properties: + created_at: + type: string + nullable: true + format: date-time + description: + type: string + nullable: true + events: + description: The list of events for the GitHub app + type: array + items: + type: string + enum: + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - content_reference + - create + - delete + - deployment + - deployment_review + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - milestone + - organization + - org_block + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - push + - registry_package + - release + - repository + - repository_dispatch + - secret_scanning_alert + - star + - status + - team + - team_add + - watch + - workflow_dispatch + - workflow_run + external_url: + type: string + nullable: true + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the GitHub app + type: integer + nullable: true + name: + description: The name of the GitHub app + type: string + node_id: + type: string + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + permissions: + description: The set of permissions for the GitHub app + type: object + properties: + actions: + type: string + enum: + - read + - write + administration: + type: string + enum: + - read + - write + checks: + type: string + enum: + - read + - write + content_references: + type: string + enum: + - read + - write + contents: + type: string + enum: + - read + - write + deployments: + type: string + enum: + - read + - write + discussions: + type: string + enum: + - read + - write + emails: + type: string + enum: + - read + - write + environments: + type: string + enum: + - read + - write + issues: + type: string + enum: + - read + - write + keys: + type: string + enum: + - read + - write + members: + type: string + enum: + - read + - write + metadata: + type: string + enum: + - read + - write + organization_administration: + type: string + enum: + - read + - write + organization_hooks: + type: string + enum: + - read + - write + organization_packages: + type: string + enum: + - read + - write + organization_plan: + type: string + enum: + - read + - write + organization_projects: + type: string + enum: + - read + - write + organization_secrets: + type: string + enum: + - read + - write + organization_self_hosted_runners: + type: string + enum: + - read + - write + organization_user_blocking: + type: string + enum: + - read + - write + packages: + type: string + enum: + - read + - write + pages: + type: string + enum: + - read + - write + pull_requests: + type: string + enum: + - read + - write + repository_hooks: + type: string + enum: + - read + - write + repository_projects: + type: string + enum: + - read + - write + secret_scanning_alerts: + type: string + enum: + - read + - write + secrets: + type: string + enum: + - read + - write + security_events: + type: string + enum: + - read + - write + security_scanning_alert: + type: string + enum: + - read + - write + single_file: + type: string + enum: + - read + - write + statuses: + type: string + enum: + - read + - write + team_discussions: + type: string + enum: + - read + - write + vulnerability_alerts: + type: string + enum: + - read + - write + workflows: + type: string + enum: + - read + - write + slug: + description: The slug name of the GitHub app + type: string + updated_at: + type: string + nullable: true + format: date-time + pull_request: + type: object + properties: + diff_url: + type: string + format: uri + html_url: + type: string + format: uri + merged_at: + type: string + nullable: true + format: date-time + patch_url: + type: string + format: uri + url: + type: string + format: uri + reactions: + title: Reactions + type: object + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + repository_url: + type: string + format: uri + sub_issues_summary: + "$ref": "#/components/schemas/sub-issues-summary" + issue_dependencies_summary: + "$ref": "#/components/schemas/issue-dependencies-summary" + issue_field_values: + type: array + items: + "$ref": "#/components/schemas/issue-field-value" + state: + description: State of the issue; either 'open' or 'closed' + type: string + enum: + - open + - closed + state_reason: + type: string + nullable: true + timeline_url: + type: string + format: uri + title: + description: Title of the issue + type: string + type: + "$ref": "#/components/schemas/issue-type" + updated_at: + type: string + format: date-time + url: + description: URL for the issue + type: string + format: uri + user: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-unpinned: + title: issues unpinned event + type: object + properties: + action: + type: string + enum: + - unpinned + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue_2" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - repository + - sender + webhook-issues-untyped: + title: issues untyped event + type: object + properties: + action: + type: string + enum: + - untyped + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + issue: + "$ref": "#/components/schemas/webhooks_issue" + type: + "$ref": "#/components/schemas/issue-type" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - issue + - type + - repository + - sender + webhook-label-created: + title: label created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - label + - repository + webhook-label-deleted: + title: label deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - label + - repository + - sender + webhook-label-edited: + title: label edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: The changes to the label if the action was `edited`. + type: object + properties: + color: + type: object + properties: + from: + description: The previous version of the color if the action was + `edited`. + type: string + required: + - from + description: + type: object + properties: + from: + description: The previous version of the description if the action + was `edited`. + type: string + required: + - from + name: + type: object + properties: + from: + description: The previous version of the name if the action was + `edited`. + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + label: + "$ref": "#/components/schemas/webhooks_label" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - label + - repository + - sender + webhook-marketplace-purchase-cancelled: + title: marketplace_purchase cancelled event + type: object + properties: + action: + type: string + enum: + - cancelled + effective_date: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + marketplace_purchase: + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + previous_marketplace_purchase: + "$ref": "#/components/schemas/webhooks_previous_marketplace_purchase" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - effective_date + - sender + - marketplace_purchase + webhook-marketplace-purchase-changed: + title: marketplace_purchase changed event + type: object + properties: + action: + type: string + enum: + - changed + effective_date: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + marketplace_purchase: + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + previous_marketplace_purchase: + title: Marketplace Purchase + type: object + properties: + account: + type: object + properties: + id: + type: integer + login: + type: string + node_id: + type: string + organization_billing_email: + type: string + nullable: true + type: + type: string + required: + - type + - id + - node_id + - login + - organization_billing_email + billing_cycle: + type: string + free_trial_ends_on: + type: string + nullable: true + next_billing_date: + type: string + nullable: true + on_free_trial: + type: boolean + nullable: true + plan: + type: object + properties: + bullets: + type: array + items: + type: string + description: + type: string + has_free_trial: + type: boolean + id: + type: integer + monthly_price_in_cents: + type: integer + name: + type: string + price_model: + type: string + enum: + - FREE + - FLAT_RATE + - PER_UNIT + unit_name: + type: string + nullable: true + yearly_price_in_cents: + type: integer + required: + - id + - name + - description + - monthly_price_in_cents + - yearly_price_in_cents + - price_model + - has_free_trial + - unit_name + - bullets + unit_count: + type: integer + required: + - account + - billing_cycle + - unit_count + - on_free_trial + - free_trial_ends_on + - plan + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - effective_date + - sender + - marketplace_purchase + webhook-marketplace-purchase-pending-change: + title: marketplace_purchase pending_change event + type: object + properties: + action: + type: string + enum: + - pending_change + effective_date: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + marketplace_purchase: + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + previous_marketplace_purchase: + title: Marketplace Purchase + type: object + properties: + account: + type: object + properties: + id: + type: integer + login: + type: string + node_id: + type: string + organization_billing_email: + type: string + nullable: true + type: + type: string + required: + - type + - id + - node_id + - login + - organization_billing_email + billing_cycle: + type: string + free_trial_ends_on: + type: string + nullable: true + next_billing_date: + type: string + nullable: true + on_free_trial: + type: boolean + plan: + type: object + properties: + bullets: + type: array + items: + type: string + description: + type: string + has_free_trial: + type: boolean + id: + type: integer + monthly_price_in_cents: + type: integer + name: + type: string + price_model: + type: string + enum: + - FREE + - FLAT_RATE + - PER_UNIT + unit_name: + type: string + nullable: true + yearly_price_in_cents: + type: integer + required: + - id + - name + - description + - monthly_price_in_cents + - yearly_price_in_cents + - price_model + - has_free_trial + - unit_name + - bullets + unit_count: + type: integer + required: + - account + - billing_cycle + - unit_count + - on_free_trial + - free_trial_ends_on + - plan + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - effective_date + - sender + - marketplace_purchase + webhook-marketplace-purchase-pending-change-cancelled: + title: marketplace_purchase pending_change_cancelled event + type: object + properties: + action: + type: string + enum: + - pending_change_cancelled + effective_date: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + marketplace_purchase: + title: Marketplace Purchase + type: object + required: + - account + - billing_cycle + - free_trial_ends_on + - next_billing_date + - on_free_trial + - plan + - unit_count + properties: + account: + type: object + required: + - type + - id + - node_id + - login + - organization_billing_email + properties: + id: + type: integer + login: + type: string + node_id: + type: string + organization_billing_email: + type: string + nullable: true + type: + type: string + billing_cycle: + type: string + free_trial_ends_on: + nullable: true + next_billing_date: + type: string + nullable: true + on_free_trial: + type: boolean + plan: + type: object + required: + - id + - name + - description + - monthly_price_in_cents + - yearly_price_in_cents + - price_model + - has_free_trial + - unit_name + - bullets + properties: + bullets: + type: array + items: + type: string + description: + type: string + has_free_trial: + type: boolean + id: + type: integer + monthly_price_in_cents: + type: integer + name: + type: string + price_model: + type: string + enum: + - FREE + - FLAT_RATE + - PER_UNIT + unit_name: + type: string + nullable: true + yearly_price_in_cents: + type: integer + unit_count: + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + previous_marketplace_purchase: + "$ref": "#/components/schemas/webhooks_previous_marketplace_purchase" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - effective_date + - sender + - marketplace_purchase + webhook-marketplace-purchase-purchased: + title: marketplace_purchase purchased event + type: object + properties: + action: + type: string + enum: + - purchased + effective_date: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + marketplace_purchase: + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + previous_marketplace_purchase: + "$ref": "#/components/schemas/webhooks_previous_marketplace_purchase" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - effective_date + - sender + - marketplace_purchase + webhook-member-added: + title: member added event + type: object + properties: + action: + type: string + enum: + - added + changes: + type: object + properties: + permission: + description: |- + This field is included for legacy purposes; use the `role_name` field instead. The `maintain` + role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role + assigned to the collaborator, use the `role_name` field instead, which will provide the full + role name, including custom roles. + type: object + properties: + to: + type: string + enum: + - write + - admin + - read + required: + - to + role_name: + description: The role assigned to the collaborator. + type: object + properties: + to: + type: string + required: + - to + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + member: + "$ref": "#/components/schemas/webhooks_user" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - member + - repository + - sender + webhook-member-edited: + title: member edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: The changes to the collaborator permissions + type: object + properties: + old_permission: + type: object + properties: + from: + description: The previous permissions of the collaborator if the + action was edited. + type: string + required: + - from + permission: + type: object + properties: + from: + type: string + nullable: true + to: + type: string + nullable: true + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + member: + "$ref": "#/components/schemas/webhooks_user" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - member + - repository + - sender + webhook-member-removed: + title: member removed event + type: object + properties: + action: + type: string + enum: + - removed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + member: + "$ref": "#/components/schemas/webhooks_user" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - member + - repository + - sender + webhook-membership-added: + title: membership added event + type: object + properties: + action: + type: string + enum: + - added + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + member: + "$ref": "#/components/schemas/webhooks_user" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + scope: + description: The scope of the membership. Currently, can only be `team`. + type: string + enum: + - team + sender: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + team: + "$ref": "#/components/schemas/webhooks_team" + required: + - action + - scope + - member + - sender + - team + - organization + webhook-membership-removed: + title: membership removed event + type: object + properties: + action: + type: string + enum: + - removed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + member: + "$ref": "#/components/schemas/webhooks_user" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + scope: + description: The scope of the membership. Currently, can only be `team`. + type: string + enum: + - team + - organization + sender: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + team: + "$ref": "#/components/schemas/webhooks_team" + required: + - action + - scope + - member + - sender + - team + - organization + webhook-merge-group-checks-requested: + type: object + properties: + action: + type: string + enum: + - checks_requested + installation: + "$ref": "#/components/schemas/simple-installation" + merge_group: + "$ref": "#/components/schemas/merge-group" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - merge_group + webhook-merge-group-destroyed: + type: object + properties: + action: + type: string + enum: + - destroyed + reason: + type: string + description: Explains why the merge group is being destroyed. The group + could have been merged, removed from the queue (dequeued), or invalidated + by an earlier queue entry being dequeued (invalidated). + enum: + - merged + - invalidated + - dequeued + installation: + "$ref": "#/components/schemas/simple-installation" + merge_group: + "$ref": "#/components/schemas/merge-group" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - merge_group + webhook-meta-deleted: + title: meta deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + hook: + description: 'The deleted webhook. This will contain different keys based + on the type of webhook it is: repository, organization, business, app, + or GitHub Marketplace.' + type: object + properties: + active: + type: boolean + config: + type: object + properties: + content_type: + type: string + enum: + - json + - form + insecure_ssl: + type: string + secret: + type: string + url: + type: string + format: uri + required: + - content_type + - insecure_ssl + - url + created_at: + type: string + events: + description: '' + type: array + items: + type: string + enum: + - "*" + - branch_protection_rule + - check_run + - check_suite + - code_scanning_alert + - commit_comment + - create + - delete + - deployment + - deployment_status + - deploy_key + - discussion + - discussion_comment + - fork + - gollum + - issues + - issue_comment + - label + - member + - membership + - meta + - milestone + - organization + - org_block + - package + - page_build + - project + - project_card + - project_column + - public + - pull_request + - pull_request_review + - pull_request_review_comment + - pull_request_review_thread + - push + - registry_package + - release + - repository + - repository_import + - repository_vulnerability_alert + - secret_scanning_alert + - secret_scanning_alert_location + - security_and_analysis + - star + - status + - team + - team_add + - watch + - workflow_job + - workflow_run + - repository_dispatch + - projects_v2_item + minItems: 1 + id: + type: integer + name: + type: string + type: + type: string + updated_at: + type: string + required: + - type + - id + - name + - active + - events + - config + - updated_at + - created_at + hook_id: + description: The id of the modified webhook. + type: integer + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/nullable-repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - hook_id + - hook + webhook-milestone-closed: + title: milestone closed event + type: object + properties: + action: + type: string + enum: + - closed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + milestone: + "$ref": "#/components/schemas/webhooks_milestone" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - milestone + - repository + - sender + webhook-milestone-created: + title: milestone created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + milestone: + "$ref": "#/components/schemas/webhooks_milestone_3" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - milestone + - repository + - sender + webhook-milestone-deleted: + title: milestone deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + milestone: + "$ref": "#/components/schemas/webhooks_milestone" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - milestone + - repository + - sender + webhook-milestone-edited: + title: milestone edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: The changes to the milestone if the action was `edited`. + type: object + properties: + description: + type: object + properties: + from: + description: The previous version of the description if the action + was `edited`. + type: string + required: + - from + due_on: + type: object + properties: + from: + description: The previous version of the due date if the action + was `edited`. + type: string + required: + - from + title: + type: object + properties: + from: + description: The previous version of the title if the action was + `edited`. + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + milestone: + "$ref": "#/components/schemas/webhooks_milestone" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - milestone + - repository + - sender + webhook-milestone-opened: + title: milestone opened event + type: object + properties: + action: + type: string + enum: + - opened + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + milestone: + "$ref": "#/components/schemas/webhooks_milestone_3" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - milestone + - repository + - sender + webhook-org-block-blocked: + title: org_block blocked event + type: object + properties: + action: + type: string + enum: + - blocked + blocked_user: + "$ref": "#/components/schemas/webhooks_user" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - blocked_user + - organization + - sender + webhook-org-block-unblocked: + title: org_block unblocked event + type: object + properties: + action: + type: string + enum: + - unblocked + blocked_user: + "$ref": "#/components/schemas/webhooks_user" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - blocked_user + - organization + - sender + webhook-organization-deleted: + title: organization deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + membership: + "$ref": "#/components/schemas/webhooks_membership" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - organization + - sender + webhook-organization-member-added: + title: organization member_added event + type: object + properties: + action: + type: string + enum: + - member_added + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + membership: + "$ref": "#/components/schemas/webhooks_membership" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - membership + - organization + - sender + webhook-organization-member-invited: + title: organization member_invited event + type: object + properties: + action: + type: string + enum: + - member_invited + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + invitation: + description: The invitation for the user or email if the action is `member_invited`. + type: object + properties: + created_at: + type: string + format: date-time + email: + type: string + nullable: true + failed_at: + type: string + nullable: true + format: date-time + failed_reason: + type: string + nullable: true + id: + type: number + invitation_teams_url: + type: string + format: uri + inviter: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + login: + type: string + nullable: true + node_id: + type: string + role: + type: string + team_count: + type: number + invitation_source: + type: string + required: + - id + - node_id + - login + - email + - role + - created_at + - failed_at + - failed_reason + - inviter + - team_count + - invitation_teams_url + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + user: + "$ref": "#/components/schemas/webhooks_user" + required: + - action + - invitation + - organization + - sender + webhook-organization-member-removed: + title: organization member_removed event + type: object + properties: + action: + type: string + enum: + - member_removed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + membership: + "$ref": "#/components/schemas/webhooks_membership" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - membership + - organization + - sender + webhook-organization-renamed: + title: organization renamed event + type: object + properties: + action: + type: string + enum: + - renamed + changes: + type: object + properties: + login: + type: object + properties: + from: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + membership: + "$ref": "#/components/schemas/webhooks_membership" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - organization + - sender + webhook-rubygems-metadata: + title: Ruby Gems metadata + type: object + properties: + name: + type: string + description: + type: string + readme: + type: string + homepage: + type: string + version_info: + type: object + properties: + version: + type: string + platform: + type: string + metadata: + type: object + additionalProperties: + type: string + repo: + type: string + dependencies: + type: array + items: + type: object + additionalProperties: + type: string + commit_oid: + type: string + webhook-package-published: + title: package published event + type: object + properties: + action: + type: string + enum: + - published + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + package: + description: Information about the package. + type: object + properties: + created_at: + type: string + nullable: true + description: + type: string + nullable: true + ecosystem: + type: string + html_url: + type: string + format: uri + id: + type: integer + name: + type: string + namespace: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + package_type: + type: string + package_version: + type: object + nullable: true + properties: + author: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + body: + oneOf: + - type: string + - type: object + body_html: + type: string + container_metadata: + type: object + nullable: true + properties: + labels: + type: object + nullable: true + manifest: + type: object + nullable: true + tag: + type: object + properties: + digest: + type: string + name: + type: string + created_at: + type: string + description: + type: string + docker_metadata: + type: array + items: + type: object + properties: + tags: + type: array + items: + type: string + draft: + type: boolean + html_url: + type: string + format: uri + id: + type: integer + installation_command: + type: string + manifest: + type: string + metadata: + type: array + items: + type: object + additionalProperties: true + name: + type: string + npm_metadata: + type: object + nullable: true + properties: + name: + type: string + version: + type: string + npm_user: + type: string + author: + type: object + nullable: true + bugs: + type: object + nullable: true + dependencies: + type: object + dev_dependencies: + type: object + peer_dependencies: + type: object + optional_dependencies: + type: object + description: + type: string + dist: + type: object + nullable: true + git_head: + type: string + homepage: + type: string + license: + type: string + main: + type: string + repository: + type: object + nullable: true + scripts: + type: object + id: + type: string + node_version: + type: string + npm_version: + type: string + has_shrinkwrap: + type: boolean + maintainers: + type: array + items: + type: object + contributors: + type: array + items: + type: object + engines: + type: object + keywords: + type: array + items: + type: string + files: + type: array + items: + type: string + bin: + type: object + man: + type: object + directories: + type: object + nullable: true + os: + type: array + items: + type: string + cpu: + type: array + items: + type: string + readme: + type: string + installation_command: + type: string + release_id: + type: integer + commit_oid: + type: string + published_via_actions: + type: boolean + deleted_by_id: + type: integer + nuget_metadata: + type: array + nullable: true + items: + type: object + properties: + id: + oneOf: + - type: integer + - type: string + name: + type: string + value: + oneOf: + - type: boolean + - type: string + - type: integer + - type: object + properties: + url: + type: string + branch: + type: string + commit: + type: string + type: + type: string + package_files: + type: array + items: + type: object + properties: + content_type: + type: string + created_at: + type: string + download_url: + type: string + format: uri + id: + type: integer + md5: + type: string + nullable: true + name: + type: string + sha1: + type: string + nullable: true + sha256: + type: string + nullable: true + size: + type: integer + state: + type: string + nullable: true + updated_at: + type: string + required: + - download_url + - id + - name + - sha256 + - sha1 + - md5 + - content_type + - state + - size + - created_at + - updated_at + package_url: + type: string + prerelease: + type: boolean + release: + type: object + properties: + author: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + created_at: + type: string + draft: + type: boolean + html_url: + type: string + format: uri + id: + type: integer + name: + type: string + nullable: true + prerelease: + type: boolean + published_at: + type: string + tag_name: + type: string + target_commitish: + type: string + url: + type: string + format: uri + required: + - url + - html_url + - id + - tag_name + - target_commitish + - name + - draft + - author + - prerelease + - created_at + - published_at + rubygems_metadata: + type: array + items: + "$ref": "#/components/schemas/webhook-rubygems-metadata" + source_url: + type: string + summary: + type: string + tag_name: + type: string + target_commitish: + type: string + target_oid: + type: string + updated_at: + type: string + version: + type: string + required: + - id + - version + - summary + - name + - description + - html_url + - metadata + - package_files + - installation_command + registry: + type: object + nullable: true + properties: + about_url: + type: string + format: uri + name: + type: string + type: + type: string + url: + type: string + format: uri + vendor: + type: string + required: + - about_url + - name + - type + - url + - vendor + updated_at: + type: string + nullable: true + required: + - id + - name + - namespace + - description + - ecosystem + - package_type + - html_url + - created_at + - updated_at + - owner + - package_version + - registry + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - package + - sender + webhook-package-updated: + title: package updated event + type: object + properties: + action: + type: string + enum: + - updated + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + package: + description: Information about the package. + type: object + properties: + created_at: + type: string + description: + type: string + nullable: true + ecosystem: + type: string + html_url: + type: string + format: uri + id: + type: integer + name: + type: string + namespace: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + package_type: + type: string + package_version: + type: object + properties: + author: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + body: + type: string + body_html: + type: string + created_at: + type: string + description: + type: string + docker_metadata: + type: array + items: + type: object + properties: + tags: + type: array + items: + type: string + draft: + type: boolean + html_url: + type: string + format: uri + id: + type: integer + installation_command: + type: string + manifest: + type: string + metadata: + type: array + items: + type: object + additionalProperties: true + name: + type: string + package_files: + type: array + items: + type: object + properties: + content_type: + type: string + created_at: + type: string + download_url: + type: string + format: uri + id: + type: integer + md5: + type: string + nullable: true + name: + type: string + sha1: + type: string + nullable: true + sha256: + type: string + size: + type: integer + state: + type: string + updated_at: + type: string + required: + - download_url + - id + - name + - sha256 + - sha1 + - md5 + - content_type + - state + - size + - created_at + - updated_at + package_url: + type: string + prerelease: + type: boolean + release: + type: object + properties: + author: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + created_at: + type: string + draft: + type: boolean + html_url: + type: string + format: uri + id: + type: integer + name: + type: string + prerelease: + type: boolean + published_at: + type: string + tag_name: + type: string + target_commitish: + type: string + url: + type: string + format: uri + required: + - url + - html_url + - id + - tag_name + - target_commitish + - name + - draft + - author + - prerelease + - created_at + - published_at + rubygems_metadata: + type: array + items: + "$ref": "#/components/schemas/webhook-rubygems-metadata" + source_url: + type: string + format: uri + summary: + type: string + tag_name: + type: string + target_commitish: + type: string + target_oid: + type: string + updated_at: + type: string + version: + type: string + required: + - id + - version + - summary + - name + - description + - body + - body_html + - html_url + - target_commitish + - target_oid + - created_at + - updated_at + - metadata + - package_files + - author + - installation_command + registry: + type: object + nullable: true + properties: + about_url: + type: string + format: uri + name: + type: string + type: + type: string + url: + type: string + format: uri + vendor: + type: string + required: + - about_url + - name + - type + - url + - vendor + updated_at: + type: string + required: + - id + - name + - namespace + - description + - ecosystem + - package_type + - html_url + - created_at + - updated_at + - owner + - package_version + - registry + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - package + - repository + - sender + webhook-page-build: + title: page_build event + type: object + properties: + build: + description: The [List GitHub Pages builds](https://docs.github.com/rest/pages/pages#list-github-pages-builds) + itself. + type: object + properties: + commit: + type: string + nullable: true + created_at: + type: string + duration: + type: integer + error: + type: object + properties: + message: + type: string + nullable: true + required: + - message + pusher: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + status: + type: string + updated_at: + type: string + url: + type: string + format: uri + required: + - url + - status + - error + - pusher + - commit + - duration + - created_at + - updated_at + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + id: + type: integer + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - id + - build + - repository + - sender + webhook-personal-access-token-request-approved: + title: personal_access_token_request approved event + type: object + properties: + action: + type: string + enum: + - approved + personal_access_token_request: + "$ref": "#/components/schemas/personal-access-token-request" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + installation: + "$ref": "#/components/schemas/simple-installation" + required: + - action + - personal_access_token_request + - organization + - sender + - installation + webhook-personal-access-token-request-cancelled: + title: personal_access_token_request cancelled event + type: object + properties: + action: + type: string + enum: + - cancelled + personal_access_token_request: + "$ref": "#/components/schemas/personal-access-token-request" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + installation: + "$ref": "#/components/schemas/simple-installation" + required: + - action + - personal_access_token_request + - organization + - sender + - installation + webhook-personal-access-token-request-created: + title: personal_access_token_request created event + type: object + properties: + action: + type: string + enum: + - created + personal_access_token_request: + "$ref": "#/components/schemas/personal-access-token-request" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + installation: + "$ref": "#/components/schemas/simple-installation" + required: + - action + - personal_access_token_request + - organization + - sender + webhook-personal-access-token-request-denied: + title: personal_access_token_request denied event + type: object + properties: + action: + type: string + enum: + - denied + personal_access_token_request: + "$ref": "#/components/schemas/personal-access-token-request" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + installation: + "$ref": "#/components/schemas/simple-installation" + required: + - action + - personal_access_token_request + - organization + - sender + - installation + webhook-ping: + type: object + properties: + hook: + title: Webhook + description: The webhook that is being pinged + type: object + properties: + active: + description: Determines whether the hook is actually triggered for the + events it subscribes to. + type: boolean + app_id: + description: Only included for GitHub Apps. When you register a new + GitHub App, GitHub sends a ping event to the webhook URL you specified + during registration. The GitHub App ID sent in this field is required + for authenticating an app. + type: integer + config: + type: object + properties: + content_type: + "$ref": "#/components/schemas/webhook-config-content-type" + insecure_ssl: + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + secret: + "$ref": "#/components/schemas/webhook-config-secret" + url: + "$ref": "#/components/schemas/webhook-config-url" + created_at: + type: string + format: date-time + deliveries_url: + type: string + format: uri + events: + description: 'Determines what events the hook is triggered for. Default: + [''push''].' + type: array + items: + type: string + id: + description: Unique identifier of the webhook. + type: integer + last_response: + "$ref": "#/components/schemas/hook-response" + name: + description: The type of webhook. The only valid value is 'web'. + type: string + enum: + - web + ping_url: + type: string + format: uri + test_url: + type: string + format: uri + type: + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - id + - type + - name + - active + - events + - config + - created_at + - updated_at + hook_id: + description: The ID of the webhook that triggered the ping. + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + zen: + description: Random string of GitHub zen. + type: string + webhook-ping-form-encoded: + description: The webhooks ping payload encoded with URL encoding. + type: object + properties: + payload: + description: A URL-encoded string of the ping JSON payload. The decoded + payload is a JSON object. + type: string + required: + - payload + webhook-project-card-converted: + title: project_card converted event + type: object + properties: + action: + type: string + enum: + - converted + changes: + type: object + properties: + note: + type: object + properties: + from: + type: string + required: + - from + required: + - note + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_card: + "$ref": "#/components/schemas/webhooks_project_card" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - project_card + - sender + webhook-project-card-created: + title: project_card created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_card: + "$ref": "#/components/schemas/webhooks_project_card" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project_card + - sender + webhook-project-card-deleted: + title: project_card deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_card: + title: Project Card + type: object + properties: + after_id: + type: integer + nullable: true + archived: + description: Whether or not the card is archived + type: boolean + column_id: + type: integer + nullable: true + column_url: + type: string + format: uri + content_url: + type: string + format: uri + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + id: + description: The project card's ID + type: integer + node_id: + type: string + note: + type: string + nullable: true + project_url: + type: string + format: uri + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - project_url + - column_url + - column_id + - id + - node_id + - note + - archived + - creator + - created_at + - updated_at + repository: + "$ref": "#/components/schemas/nullable-repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project_card + - sender + webhook-project-card-edited: + title: project_card edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + note: + type: object + properties: + from: + type: string + nullable: true + required: + - from + required: + - note + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_card: + "$ref": "#/components/schemas/webhooks_project_card" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - project_card + - sender + webhook-project-card-moved: + title: project_card moved event + type: object + properties: + action: + type: string + enum: + - moved + changes: + type: object + properties: + column_id: + type: object + properties: + from: + type: integer + required: + - from + required: + - column_id + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_card: + allOf: + - title: Project Card + type: object + properties: + after_id: + type: integer + nullable: true + archived: + description: Whether or not the card is archived + type: boolean + column_id: + type: integer + column_url: + type: string + format: uri + content_url: + type: string + format: uri + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + id: + description: The project card's ID + type: integer + node_id: + type: string + note: + type: string + nullable: true + project_url: + type: string + format: uri + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - project_url + - column_url + - column_id + - id + - node_id + - note + - archived + - creator + - created_at + - updated_at + - type: object + properties: + after_id: + type: number + nullable: true + archived: + type: boolean + column_id: + type: integer + column_url: + type: string + created_at: + type: string + creator: + type: object + nullable: true + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + id: + type: integer + node_id: + type: string + note: + type: string + nullable: true + project_url: + type: string + updated_at: + type: string + url: + type: string + required: + - after_id + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project_card + - sender + webhook-project-closed: + title: project closed event + type: object + properties: + action: + type: string + enum: + - closed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project: + "$ref": "#/components/schemas/webhooks_project" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project + - sender + webhook-project-column-created: + title: project_column created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_column: + "$ref": "#/components/schemas/webhooks_project_column" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project_column + webhook-project-column-deleted: + title: project_column deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_column: + "$ref": "#/components/schemas/webhooks_project_column" + repository: + "$ref": "#/components/schemas/nullable-repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project_column + webhook-project-column-edited: + title: project_column edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + name: + type: object + properties: + from: + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_column: + "$ref": "#/components/schemas/webhooks_project_column" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - project_column + webhook-project-column-moved: + title: project_column moved event + type: object + properties: + action: + type: string + enum: + - moved + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project_column: + "$ref": "#/components/schemas/webhooks_project_column" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project_column + - sender + webhook-project-created: + title: project created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project: + "$ref": "#/components/schemas/webhooks_project" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project + - sender + webhook-project-deleted: + title: project deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project: + "$ref": "#/components/schemas/webhooks_project" + repository: + "$ref": "#/components/schemas/nullable-repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project + webhook-project-edited: + title: project edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: The changes to the project if the action was `edited`. + type: object + properties: + body: + type: object + properties: + from: + description: The previous version of the body if the action was + `edited`. + type: string + required: + - from + name: + type: object + properties: + from: + description: The changes to the project if the action was `edited`. + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project: + "$ref": "#/components/schemas/webhooks_project" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project + webhook-project-reopened: + title: project reopened event + type: object + properties: + action: + type: string + enum: + - reopened + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + project: + "$ref": "#/components/schemas/webhooks_project" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - project + - sender + webhook-projects-v2-project-closed: + title: Projects v2 Project Closed Event + type: object + properties: + action: + type: string + enum: + - closed + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2: + "$ref": "#/components/schemas/projects-v2" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2 + - organization + - sender + webhook-projects-v2-project-created: + description: A project was created + type: object + properties: + action: + type: string + enum: + - created + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2: + "$ref": "#/components/schemas/projects-v2" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2 + - organization + - sender + webhook-projects-v2-project-deleted: + title: Projects v2 Project Deleted Event + type: object + properties: + action: + type: string + enum: + - deleted + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2: + "$ref": "#/components/schemas/projects-v2" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2 + - organization + - sender + webhook-projects-v2-project-edited: + title: Projects v2 Project Edited Event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + description: + type: object + properties: + from: + type: string + nullable: true + to: + type: string + nullable: true + public: + type: object + properties: + from: + type: boolean + to: + type: boolean + short_description: + type: object + properties: + from: + type: string + nullable: true + to: + type: string + nullable: true + title: + type: object + properties: + from: + type: string + to: + type: string + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2: + "$ref": "#/components/schemas/projects-v2" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2 + - organization + - sender + - changes + webhook-projects-v2-item-archived: + title: Projects v2 Item Archived Event + type: object + properties: + action: + type: string + enum: + - archived + changes: + "$ref": "#/components/schemas/webhooks_project_changes" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_item: + "$ref": "#/components/schemas/projects-v2-item" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_item + - organization + - sender + - changes + webhook-projects-v2-item-converted: + title: Projects v2 Item Converted Event + type: object + properties: + action: + type: string + enum: + - converted + changes: + type: object + properties: + content_type: + type: object + properties: + from: + type: string + nullable: true + to: + type: string + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_item: + "$ref": "#/components/schemas/projects-v2-item" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_item + - organization + - sender + - changes + webhook-projects-v2-item-created: + title: Projects v2 Item Created Event + type: object + properties: + action: + type: string + enum: + - created + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_item: + "$ref": "#/components/schemas/projects-v2-item" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_item + - organization + - sender + webhook-projects-v2-item-deleted: + title: Projects v2 Item Deleted Event + type: object + properties: + action: + type: string + enum: + - deleted + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_item: + "$ref": "#/components/schemas/projects-v2-item" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_item + - organization + - sender + webhook-projects-v2-item-edited: + title: Projects v2 Item Edited Event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: |- + The changes made to the item may involve modifications in the item's fields and draft issue body. + It includes altered values for text, number, date, single select, and iteration fields, along with the GraphQL node ID of the changed field. + oneOf: + - type: object + properties: + field_value: + type: object + properties: + field_node_id: + type: string + field_type: + type: string + field_name: + type: string + project_number: + type: integer + from: + nullable: true + oneOf: + - type: string + - type: integer + - "$ref": "#/components/schemas/projects-v2-single-select-option" + - "$ref": "#/components/schemas/projects-v2-iteration-setting" + to: + nullable: true + oneOf: + - type: string + - type: integer + - "$ref": "#/components/schemas/projects-v2-single-select-option" + - "$ref": "#/components/schemas/projects-v2-iteration-setting" + required: + - field_value + - type: object + properties: + body: + type: object + properties: + from: + type: string + nullable: true + to: + type: string + nullable: true + required: + - body + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_item: + "$ref": "#/components/schemas/projects-v2-item" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_item + - organization + - sender + webhook-projects-v2-item-reordered: + title: Projects v2 Item Reordered Event + type: object + properties: + action: + type: string + enum: + - reordered + changes: + type: object + properties: + previous_projects_v2_item_node_id: + type: object + properties: + from: + type: string + nullable: true + to: + type: string + nullable: true + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_item: + "$ref": "#/components/schemas/projects-v2-item" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_item + - organization + - sender + - changes + webhook-projects-v2-item-restored: + title: Projects v2 Item Restored Event + type: object + properties: + action: + type: string + enum: + - restored + changes: + "$ref": "#/components/schemas/webhooks_project_changes" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_item: + "$ref": "#/components/schemas/projects-v2-item" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_item + - organization + - sender + - changes + webhook-projects-v2-project-reopened: + title: Projects v2 Project Reopened Event + type: object + properties: + action: + type: string + enum: + - reopened + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2: + "$ref": "#/components/schemas/projects-v2" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2 + - organization + - sender + webhook-projects-v2-status-update-created: + title: Projects v2 Status Update Created Event + type: object + properties: + action: + type: string + enum: + - created + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_status_update: + "$ref": "#/components/schemas/projects-v2-status-update" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_status_update + - organization + - sender + webhook-projects-v2-status-update-deleted: + title: Projects v2 Status Update Deleted Event + type: object + properties: + action: + type: string + enum: + - deleted + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_status_update: + "$ref": "#/components/schemas/projects-v2-status-update" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_status_update + - organization + - sender + webhook-projects-v2-status-update-edited: + title: Projects v2 Status Update Edited Event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + body: + type: object + properties: + from: + type: string + nullable: true + to: + type: string + nullable: true + status: + type: object + properties: + from: + type: string + enum: + - INACTIVE + - ON_TRACK + - AT_RISK + - OFF_TRACK + - COMPLETE + nullable: true + to: + type: string + enum: + - INACTIVE + - ON_TRACK + - AT_RISK + - OFF_TRACK + - COMPLETE + nullable: true + start_date: + type: object + properties: + from: + type: string + format: date + nullable: true + to: + type: string + format: date + nullable: true + target_date: + type: object + properties: + from: + type: string + format: date + nullable: true + to: + type: string + format: date + nullable: true + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + projects_v2_status_update: + "$ref": "#/components/schemas/projects-v2-status-update" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - projects_v2_status_update + - organization + - sender + webhook-public: + title: public event + type: object + properties: + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - repository + - sender + webhook-pull-request-assigned: + title: pull_request assigned event + type: object + properties: + action: + type: string + enum: + - assigned + assignee: + "$ref": "#/components/schemas/webhooks_user" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - assignee + - repository + - sender + webhook-pull-request-auto-merge-disabled: + title: pull_request auto_merge_disabled event + type: object + properties: + action: + type: string + enum: + - auto_merge_disabled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + reason: + type: string + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - reason + - repository + - sender + webhook-pull-request-auto-merge-enabled: + title: pull_request auto_merge_enabled event + type: object + properties: + action: + type: string + enum: + - auto_merge_enabled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + reason: + type: string + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-closed: + title: pull_request closed event + type: object + properties: + action: + type: string + enum: + - closed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/pull-request-webhook" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-converted-to-draft: + title: pull_request converted_to_draft event + type: object + properties: + action: + type: string + enum: + - converted_to_draft + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/pull-request-webhook" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-demilestoned: + title: pull_request demilestoned event + type: object + properties: + action: + type: string + enum: + - demilestoned + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + milestone: + "$ref": "#/components/schemas/milestone" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/webhooks_pull_request_5" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + webhook-pull-request-dequeued: + title: pull_request dequeued event + type: object + properties: + action: + type: string + enum: + - dequeued + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + reason: + type: string + enum: + - UNKNOWN_REMOVAL_REASON + - MANUAL + - MERGE + - MERGE_CONFLICT + - CI_FAILURE + - CI_TIMEOUT + - ALREADY_MERGED + - QUEUE_CLEARED + - ROLL_BACK + - BRANCH_PROTECTIONS + - GIT_TREE_INVALID + - INVALID_MERGE_COMMIT + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + - reason + webhook-pull-request-edited: + title: pull_request edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: The changes to the comment if the action was `edited`. + type: object + properties: + base: + type: object + properties: + ref: + type: object + properties: + from: + type: string + required: + - from + sha: + type: object + properties: + from: + type: string + required: + - from + required: + - ref + - sha + body: + type: object + properties: + from: + description: The previous version of the body if the action was + `edited`. + type: string + required: + - from + title: + type: object + properties: + from: + description: The previous version of the title if the action was + `edited`. + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/pull-request-webhook" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - number + - pull_request + - repository + webhook-pull-request-enqueued: + title: pull_request enqueued event + type: object + properties: + action: + type: string + enum: + - enqueued + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_discussions + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-labeled: + title: pull_request labeled event + type: object + properties: + action: + type: string + enum: + - labeled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + label: + "$ref": "#/components/schemas/webhooks_label" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-locked: + title: pull_request locked event + type: object + properties: + action: + type: string + enum: + - locked + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-milestoned: + title: pull_request milestoned event + type: object + properties: + action: + type: string + enum: + - milestoned + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + milestone: + "$ref": "#/components/schemas/milestone" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/webhooks_pull_request_5" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + webhook-pull-request-opened: + title: pull_request opened event + type: object + properties: + action: + type: string + enum: + - opened + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/pull-request-webhook" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-ready-for-review: + title: pull_request ready_for_review event + type: object + properties: + action: + type: string + enum: + - ready_for_review + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/pull-request-webhook" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-reopened: + title: pull_request reopened event + type: object + properties: + action: + type: string + enum: + - reopened + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + "$ref": "#/components/schemas/pull-request-webhook" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-review-comment-created: + title: pull_request_review_comment created event + type: object + properties: + action: + type: string + enum: + - created + comment: + title: Pull Request Review Comment + description: The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) + itself. + type: object + properties: + _links: + type: object + properties: + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + pull_request: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - pull_request + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: The text of the comment. + type: string + commit_id: + description: The SHA of the commit to which the comment applies. + type: string + created_at: + type: string + format: date-time + diff_hunk: + description: The diff of the line that the comment refers to. + type: string + html_url: + description: HTML URL for the pull request review comment. + type: string + format: uri + id: + description: The ID of the pull request review comment. + type: integer + in_reply_to_id: + description: The comment ID to reply to. + type: integer + line: + description: The line of the blob to which the comment applies. The + last line of the range for a multi-line comment + type: integer + nullable: true + node_id: + description: The node ID of the pull request review comment. + type: string + original_commit_id: + description: The SHA of the original commit to which the comment applies. + type: string + original_line: + description: The line of the blob to which the comment applies. The + last line of the range for a multi-line comment + type: integer + nullable: true + original_position: + description: The index of the original line in the diff to which the + comment applies. + type: integer + original_start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + path: + description: The relative path of the file to which the comment applies. + type: string + position: + description: The line index in the diff to which the comment applies. + type: integer + nullable: true + pull_request_review_id: + description: The ID of the pull request review to which the comment + belongs. + type: integer + nullable: true + pull_request_url: + description: URL for the pull request that the review comment belongs + to. + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + side: + description: The side of the first line of the range for a multi-line + comment. + type: string + enum: + - LEFT + - RIGHT + start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + start_side: + description: The side of the first line of the range for a multi-line + comment. + type: string + nullable: true + enum: + - LEFT + - RIGHT + - null + default: RIGHT + subject_type: + description: The level at which the comment is targeted, can be a diff + line or a file. + type: string + enum: + - line + - file + updated_at: + type: string + format: date-time + url: + description: URL for the pull request review comment + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - pull_request_review_id + - id + - node_id + - diff_hunk + - path + - position + - original_position + - commit_id + - original_commit_id + - user + - body + - created_at + - updated_at + - html_url + - pull_request_url + - author_association + - _links + - start_line + - original_start_line + - original_line + - line + - start_side + - side + - reactions + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - comment + - pull_request + - repository + - sender + webhook-pull-request-review-comment-deleted: + title: pull_request_review_comment deleted event + type: object + properties: + action: + type: string + enum: + - deleted + comment: + "$ref": "#/components/schemas/webhooks_review_comment" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - comment + - pull_request + - repository + - sender + webhook-pull-request-review-comment-edited: + title: pull_request_review_comment edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + "$ref": "#/components/schemas/webhooks_changes" + comment: + "$ref": "#/components/schemas/webhooks_review_comment" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + user_view_type: + type: string + url: + type: string + format: uri + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - comment + - pull_request + - repository + - sender + webhook-pull-request-review-dismissed: + title: pull_request_review dismissed event + type: object + properties: + action: + type: string + enum: + - dismissed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Simple Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - draft + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + review: + description: The review that was affected. + type: object + properties: + _links: + type: object + properties: + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + pull_request: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - html + - pull_request + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: The text of the review. + type: string + nullable: true + commit_id: + description: A commit SHA for the review. + type: string + html_url: + type: string + format: uri + id: + description: Unique identifier of the review + type: integer + node_id: + type: string + pull_request_url: + type: string + format: uri + state: + type: string + enum: + - dismissed + - approved + - changes_requested + submitted_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + nullable: true + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - id + - node_id + - user + - body + - commit_id + - submitted_at + - state + - html_url + - pull_request_url + - author_association + - _links + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - review + - pull_request + - repository + - sender + webhook-pull-request-review-edited: + title: pull_request_review edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + body: + type: object + properties: + from: + description: The previous version of the body if the action was + `edited`. + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Simple Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - draft + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + review: + "$ref": "#/components/schemas/webhooks_review" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - review + - pull_request + - repository + - sender + webhook-pull-request-review-request-removed: + title: pull_request review_request_removed event + oneOf: + - type: object + properties: + action: + type: string + enum: + - review_request_removed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + description: The pull request number. + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: The default value for a squash merge commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: The default value for a squash merge commit title. + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + requested_reviewer: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + sender: + "$ref": "#/components/schemas/simple-user" + required: + - requested_reviewer + - action + - number + - pull_request + - repository + - sender + - type: object + properties: + action: + type: string + enum: + - review_request_removed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + description: The pull request number. + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + requested_team: + title: Team + description: Groups of organization members that gives permissions on + specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + sender: + "$ref": "#/components/schemas/simple-user" + required: + - requested_team + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-review-requested: + title: pull_request review_requested event + oneOf: + - type: object + properties: + action: + type: string + enum: + - review_requested + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + description: The pull request number. + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + requested_reviewer: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + sender: + "$ref": "#/components/schemas/simple-user" + required: + - requested_reviewer + - action + - number + - pull_request + - repository + - sender + - type: object + properties: + action: + type: string + enum: + - review_requested + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + description: The pull request number. + type: integer + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + requested_team: + title: Team + description: Groups of organization members that gives permissions on + specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + sender: + "$ref": "#/components/schemas/simple-user" + required: + - requested_team + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-review-submitted: + title: pull_request_review submitted event + type: object + properties: + action: + type: string + enum: + - submitted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Simple Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - draft + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + review: + "$ref": "#/components/schemas/webhooks_review" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - review + - pull_request + - repository + - sender + webhook-pull-request-review-thread-resolved: + title: pull_request_review_thread resolved event + type: object + properties: + action: + type: string + enum: + - resolved + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Simple Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - draft + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + thread: + type: object + properties: + comments: + type: array + items: + title: Pull Request Review Comment + description: The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) + itself. + type: object + properties: + _links: + type: object + properties: + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + pull_request: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - pull_request + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: The text of the comment. + type: string + commit_id: + description: The SHA of the commit to which the comment applies. + type: string + created_at: + type: string + format: date-time + diff_hunk: + description: The diff of the line that the comment refers to. + type: string + html_url: + description: HTML URL for the pull request review comment. + type: string + format: uri + id: + description: The ID of the pull request review comment. + type: integer + in_reply_to_id: + description: The comment ID to reply to. + type: integer + line: + description: The line of the blob to which the comment applies. + The last line of the range for a multi-line comment + type: integer + nullable: true + node_id: + description: The node ID of the pull request review comment. + type: string + original_commit_id: + description: The SHA of the original commit to which the comment + applies. + type: string + original_line: + description: The line of the blob to which the comment applies. + The last line of the range for a multi-line comment + type: integer + nullable: true + original_position: + description: The index of the original line in the diff to which + the comment applies. + type: integer + original_start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + path: + description: The relative path of the file to which the comment + applies. + type: string + position: + description: The line index in the diff to which the comment applies. + type: integer + nullable: true + pull_request_review_id: + description: The ID of the pull request review to which the comment + belongs. + type: integer + nullable: true + pull_request_url: + description: URL for the pull request that the review comment + belongs to. + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + side: + description: The side of the first line of the range for a multi-line + comment. + type: string + enum: + - LEFT + - RIGHT + start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + start_side: + description: The side of the first line of the range for a multi-line + comment. + type: string + nullable: true + enum: + - LEFT + - RIGHT + - null + default: RIGHT + subject_type: + description: The level at which the comment is targeted, can be + a diff line or a file. + type: string + enum: + - line + - file + updated_at: + type: string + format: date-time + url: + description: URL for the pull request review comment + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - pull_request_review_id + - id + - node_id + - diff_hunk + - path + - position + - original_position + - commit_id + - original_commit_id + - user + - body + - created_at + - updated_at + - html_url + - pull_request_url + - author_association + - _links + - start_line + - original_start_line + - original_line + - line + - start_side + - side + - reactions + node_id: + type: string + required: + - node_id + - comments + updated_at: + type: string + nullable: true + format: date-time + required: + - action + - thread + - pull_request + - repository + webhook-pull-request-review-thread-unresolved: + title: pull_request_review_thread unresolved event + type: object + properties: + action: + type: string + enum: + - unresolved + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Simple Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + closed_at: + type: string + nullable: true + comments_url: + type: string + format: uri + commits_url: + type: string + format: uri + created_at: + type: string + diff_url: + type: string + format: uri + draft: + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + merge_commit_sha: + type: string + nullable: true + merged_at: + type: string + nullable: true + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + type: integer + patch_url: + type: string + format: uri + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments_url: + type: string + format: uri + state: + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + type: string + updated_at: + type: string + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - draft + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + thread: + type: object + properties: + comments: + type: array + items: + title: Pull Request Review Comment + description: The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) + itself. + type: object + properties: + _links: + type: object + properties: + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + pull_request: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - pull_request + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + body: + description: The text of the comment. + type: string + commit_id: + description: The SHA of the commit to which the comment applies. + type: string + created_at: + type: string + format: date-time + diff_hunk: + description: The diff of the line that the comment refers to. + type: string + html_url: + description: HTML URL for the pull request review comment. + type: string + format: uri + id: + description: The ID of the pull request review comment. + type: integer + in_reply_to_id: + description: The comment ID to reply to. + type: integer + line: + description: The line of the blob to which the comment applies. + The last line of the range for a multi-line comment + type: integer + nullable: true + node_id: + description: The node ID of the pull request review comment. + type: string + original_commit_id: + description: The SHA of the original commit to which the comment + applies. + type: string + original_line: + description: The line of the blob to which the comment applies. + The last line of the range for a multi-line comment + type: integer + original_position: + description: The index of the original line in the diff to which + the comment applies. + type: integer + original_start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + path: + description: The relative path of the file to which the comment + applies. + type: string + position: + description: The line index in the diff to which the comment applies. + type: integer + nullable: true + pull_request_review_id: + description: The ID of the pull request review to which the comment + belongs. + type: integer + nullable: true + pull_request_url: + description: URL for the pull request that the review comment + belongs to. + type: string + format: uri + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + side: + description: The side of the first line of the range for a multi-line + comment. + type: string + enum: + - LEFT + - RIGHT + start_line: + description: The first line of the range for a multi-line comment. + type: integer + nullable: true + start_side: + description: The side of the first line of the range for a multi-line + comment. + type: string + nullable: true + enum: + - LEFT + - RIGHT + - null + default: RIGHT + subject_type: + description: The level at which the comment is targeted, can be + a diff line or a file. + type: string + enum: + - line + - file + updated_at: + type: string + format: date-time + url: + description: URL for the pull request review comment + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - pull_request_review_id + - id + - node_id + - diff_hunk + - path + - position + - original_position + - commit_id + - original_commit_id + - user + - body + - created_at + - updated_at + - html_url + - pull_request_url + - author_association + - _links + - start_line + - original_start_line + - original_line + - line + - start_side + - side + - reactions + node_id: + type: string + required: + - node_id + - comments + updated_at: + type: string + nullable: true + format: date-time + required: + - action + - thread + - pull_request + - repository + webhook-pull-request-synchronize: + title: pull_request synchronize event + type: object + properties: + action: + type: string + enum: + - synchronize + after: + type: string + before: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: The default value for a merge commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: The default value for a merge commit message title. + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - before + - after + - pull_request + - repository + - sender + webhook-pull-request-unassigned: + title: pull_request unassigned event + type: object + properties: + action: + type: string + enum: + - unassigned + assignee: + "$ref": "#/components/schemas/webhooks_user_mannequin" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + webhook-pull-request-unlabeled: + title: pull_request unlabeled event + type: object + properties: + action: + type: string + enum: + - unlabeled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + label: + "$ref": "#/components/schemas/webhooks_label" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + nullable: true + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + nullable: true + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: The default value for a merge commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: The default value for a merge commit message title. + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + - Mannequin + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-pull-request-unlocked: + title: pull_request unlocked event + type: object + properties: + action: + type: string + enum: + - unlocked + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + number: + "$ref": "#/components/schemas/webhooks_number" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pull_request: + title: Pull Request + type: object + properties: + _links: + type: object + properties: + comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + commits: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + issue: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comment: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + review_comments: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + statuses: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - issue + - comments + - review_comments + - review_comment + - commits + - statuses + active_lock_reason: + type: string + nullable: true + enum: + - resolved + - off-topic + - too heated + - spam + - null + additions: + type: integer + assignee: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + assignees: + type: array + items: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + required: + - login + - id + author_association: + title: AuthorAssociation + description: How the author is associated with the repository. + type: string + enum: + - COLLABORATOR + - CONTRIBUTOR + - FIRST_TIMER + - FIRST_TIME_CONTRIBUTOR + - MANNEQUIN + - MEMBER + - NONE + - OWNER + auto_merge: + title: PullRequestAutoMerge + description: The status of auto merging a pull request. + type: object + nullable: true + properties: + commit_message: + description: Commit message for the merge commit. + type: string + nullable: true + commit_title: + description: Title for the merge commit message. + type: string + enabled_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + merge_method: + description: The merge method to use. + type: string + enum: + - merge + - squash + - rebase + required: + - enabled_by + - merge_method + - commit_title + - commit_message + base: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + body: + type: string + nullable: true + changed_files: + type: integer + closed_at: + type: string + nullable: true + format: date-time + comments: + type: integer + comments_url: + type: string + format: uri + commits: + type: integer + commits_url: + type: string + format: uri + created_at: + type: string + format: date-time + deletions: + type: integer + diff_url: + type: string + format: uri + draft: + description: Indicates whether or not the pull request is a draft. + type: boolean + head: + type: object + properties: + label: + type: string + ref: + type: string + repo: + title: Repository + description: A git repository + type: object + nullable: true + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests + are merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merge_commit_message: + description: |- + The default value for a merge commit message. + + - `PR_TITLE` - default to the pull request's title. + - `PR_BODY` - default to the pull request's body. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + merge_commit_title: + description: |- + The default value for a merge commit title. + + - `PR_TITLE` - default to the pull request's title. + - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + squash_merge_commit_message: + description: |- + The default value for a squash merge commit message: + + - `PR_BODY` - default to the pull request's body. + - `COMMIT_MESSAGES` - default to the branch's commit messages. + - `BLANK` - default to a blank commit message. + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + squash_merge_commit_title: + description: |- + The default value for a squash merge commit title: + + - `PR_TITLE` - default to the pull request's title. + - `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). + type: string + enum: + - PR_TITLE + - COMMIT_OR_PR_TITLE + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + use_squash_pr_title_as_default: + 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. + type: boolean + default: false + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on + web-based commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sha: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - label + - ref + - sha + - user + - repo + html_url: + type: string + format: uri + id: + type: integer + issue_url: + type: string + format: uri + labels: + type: array + items: + title: Label + type: object + properties: + color: + description: '6-character hex code, without the leading #, identifying + the color' + type: string + default: + type: boolean + description: + type: string + nullable: true + id: + type: integer + name: + description: The name of the label. + type: string + node_id: + type: string + url: + description: URL for the label + type: string + format: uri + required: + - id + - node_id + - url + - name + - color + - default + - description + locked: + type: boolean + maintainer_can_modify: + description: Indicates whether maintainers can modify the pull request. + type: boolean + merge_commit_sha: + type: string + nullable: true + mergeable: + type: boolean + nullable: true + mergeable_state: + type: string + merged: + type: boolean + nullable: true + merged_at: + type: string + nullable: true + format: date-time + merged_by: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + milestone: + title: Milestone + description: A collection of related issues and pull requests. + type: object + nullable: true + properties: + closed_at: + type: string + nullable: true + format: date-time + closed_issues: + type: integer + created_at: + type: string + format: date-time + creator: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + description: + type: string + nullable: true + due_on: + type: string + nullable: true + format: date-time + html_url: + type: string + format: uri + id: + type: integer + labels_url: + type: string + format: uri + node_id: + type: string + number: + description: The number of the milestone. + type: integer + open_issues: + type: integer + state: + description: The state of the milestone. + type: string + enum: + - open + - closed + title: + description: The title of the milestone. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + required: + - url + - html_url + - labels_url + - id + - node_id + - number + - title + - description + - creator + - open_issues + - closed_issues + - state + - created_at + - updated_at + - due_on + - closed_at + node_id: + type: string + number: + description: Number uniquely identifying the pull request within its + repository. + type: integer + patch_url: + type: string + format: uri + rebaseable: + type: boolean + nullable: true + requested_reviewers: + type: array + items: + oneOf: + - title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + - title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its + repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + requested_teams: + type: array + items: + title: Team + description: Groups of organization members that gives permissions + on specified repositories. + type: object + properties: + deleted: + type: boolean + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + parent: + type: object + nullable: true + properties: + description: + description: Description of the team + type: string + nullable: true + html_url: + type: string + format: uri + id: + description: Unique identifier of the team + type: integer + members_url: + type: string + format: uri-template + name: + description: Name of the team + type: string + node_id: + type: string + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + - node_id + - slug + - description + - privacy + - url + - html_url + - members_url + - repositories_url + - permission + permission: + description: Permission that the team will have for its repositories + type: string + privacy: + type: string + enum: + - open + - closed + - secret + repositories_url: + type: string + format: uri + slug: + type: string + url: + description: URL for the team + type: string + format: uri + required: + - name + - id + review_comment_url: + type: string + format: uri-template + review_comments: + type: integer + review_comments_url: + type: string + format: uri + state: + description: State of this Pull Request. Either `open` or `closed`. + type: string + enum: + - open + - closed + statuses_url: + type: string + format: uri + title: + description: The title of the pull request. + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - url + - id + - node_id + - html_url + - diff_url + - patch_url + - issue_url + - number + - state + - locked + - title + - user + - body + - created_at + - updated_at + - closed_at + - merged_at + - merge_commit_sha + - assignee + - assignees + - requested_reviewers + - requested_teams + - labels + - milestone + - commits_url + - review_comments_url + - review_comment_url + - comments_url + - statuses_url + - head + - base + - _links + - author_association + - auto_merge + - active_lock_reason + - draft + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - number + - pull_request + - repository + - sender + webhook-push: + title: push event + type: object + properties: + after: + description: The SHA of the most recent commit on `ref` after the push. + type: string + base_ref: + "$ref": "#/components/schemas/webhooks_nullable_string" + before: + description: The SHA of the most recent commit on `ref` before the push. + type: string + commits: + description: An array of commit objects describing the pushed commits. (Pushed + commits are all commits that are included in the `compare` between the + `before` commit and the `after` commit.) The array includes a maximum + of 2048 commits. If necessary, you can use the [Commits API](https://docs.github.com/rest/commits) + to fetch additional commits. + type: array + items: + title: Commit + type: object + properties: + added: + description: An array of files added in the commit. A maximum of 3000 + changed files will be reported per commit. + type: array + items: + type: string + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + distinct: + description: Whether this commit is distinct from any that have been + pushed before. + type: boolean + id: + type: string + message: + description: The commit message. + type: string + modified: + description: An array of files modified by the commit. A maximum of + 3000 changed files will be reported per commit. + type: array + items: + type: string + removed: + description: An array of files removed in the commit. A maximum of + 3000 changed files will be reported per commit. + type: array + items: + type: string + timestamp: + description: The ISO 8601 timestamp of the commit. + type: string + format: date-time + tree_id: + type: string + url: + description: URL that points to the commit API resource. + type: string + format: uri + required: + - id + - tree_id + - distinct + - message + - timestamp + - url + - author + - committer + compare: + description: URL that shows the changes in this `ref` update, from the `before` + commit to the `after` commit. For a newly created `ref` that is directly + based on the default branch, this is the comparison between the head of + the default branch and the `after` commit. Otherwise, this shows all commits + until the `after` commit. + type: string + created: + description: Whether this push created the `ref`. + type: boolean + deleted: + description: Whether this push deleted the `ref`. + type: boolean + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + forced: + description: Whether this push was a force push of the `ref`. + type: boolean + head_commit: + title: Commit + type: object + nullable: true + properties: + added: + description: An array of files added in the commit. + type: array + items: + type: string + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + distinct: + description: Whether this commit is distinct from any that have been + pushed before. + type: boolean + id: + type: string + message: + description: The commit message. + type: string + modified: + description: An array of files modified by the commit. + type: array + items: + type: string + removed: + description: An array of files removed in the commit. + type: array + items: + type: string + timestamp: + description: The ISO 8601 timestamp of the commit. + type: string + format: date-time + tree_id: + type: string + url: + description: URL that points to the commit API resource. + type: string + format: uri + required: + - id + - tree_id + - distinct + - message + - timestamp + - url + - author + - committer + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + pusher: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - name + ref: + description: 'The full git ref that was pushed. Example: `refs/heads/main` + or `refs/tags/v3.14.1`.' + type: string + repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are + merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + has_discussions: + description: Whether discussions are enabled. + type: boolean + default: false + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + web_commit_signoff_required: + description: Whether to require contributors to sign off on web-based + commits + type: boolean + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - has_discussions + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sender: + "$ref": "#/components/schemas/simple-user" + required: + - ref + - before + - after + - created + - deleted + - forced + - base_ref + - compare + - commits + - head_commit + - repository + - pusher + webhook-registry-package-published: + type: object + properties: + action: + type: string + enum: + - published + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + registry_package: + type: object + properties: + created_at: + type: string + nullable: true + description: + type: string + nullable: true + ecosystem: + type: string + html_url: + type: string + id: + type: integer + name: + type: string + namespace: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + required: + - login + - id + - node_id + - avatar_url + - gravatar_id + - url + - html_url + - followers_url + - following_url + - gists_url + - starred_url + - subscriptions_url + - organizations_url + - repos_url + - events_url + - received_events_url + - type + - site_admin + package_type: + type: string + package_version: + type: object + nullable: true + properties: + author: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + required: + - login + - id + - node_id + - avatar_url + - gravatar_id + - url + - html_url + - followers_url + - following_url + - gists_url + - starred_url + - subscriptions_url + - organizations_url + - repos_url + - events_url + - received_events_url + - type + - site_admin + body: + oneOf: + - type: string + - type: object + body_html: + type: string + container_metadata: + type: object + properties: + labels: + type: object + nullable: true + manifest: + type: object + nullable: true + tag: + type: object + properties: + digest: + type: string + name: + type: string + created_at: + type: string + description: + type: string + docker_metadata: + type: array + items: + type: object + properties: + tags: + type: array + items: + type: string + draft: + type: boolean + html_url: + type: string + id: + type: integer + installation_command: + type: string + manifest: + type: string + metadata: + type: array + items: + type: object + additionalProperties: true + name: + type: string + npm_metadata: + type: object + nullable: true + properties: + name: + type: string + version: + type: string + npm_user: + type: string + author: + oneOf: + - type: string + - type: object + nullable: true + bugs: + oneOf: + - type: string + - type: object + nullable: true + dependencies: + type: object + dev_dependencies: + type: object + peer_dependencies: + type: object + optional_dependencies: + type: object + description: + type: string + dist: + oneOf: + - type: string + - type: object + nullable: true + git_head: + type: string + homepage: + type: string + license: + type: string + main: + type: string + repository: + oneOf: + - type: string + - type: object + nullable: true + scripts: + type: object + id: + type: string + node_version: + type: string + npm_version: + type: string + has_shrinkwrap: + type: boolean + maintainers: + type: array + items: + type: string + contributors: + type: array + items: + type: string + engines: + type: object + keywords: + type: array + items: + type: string + files: + type: array + items: + type: string + bin: + type: object + man: + type: object + directories: + oneOf: + - type: string + - type: object + nullable: true + os: + type: array + items: + type: string + cpu: + type: array + items: + type: string + readme: + type: string + installation_command: + type: string + release_id: + type: integer + commit_oid: + type: string + published_via_actions: + type: boolean + deleted_by_id: + type: integer + nuget_metadata: + type: array + nullable: true + items: + type: object + properties: + id: + oneOf: + - type: string + - type: object + - type: integer + nullable: true + name: + type: string + value: + oneOf: + - type: boolean + - type: string + - type: integer + - type: object + properties: + url: + type: string + branch: + type: string + commit: + type: string + type: + type: string + package_files: + type: array + items: + type: object + properties: + content_type: + type: string + created_at: + type: string + download_url: + type: string + id: + type: integer + md5: + type: string + nullable: true + name: + type: string + sha1: + type: string + nullable: true + sha256: + type: string + nullable: true + size: + type: integer + state: + type: string + nullable: true + updated_at: + type: string + required: + - download_url + - id + - name + - sha256 + - sha1 + - md5 + - content_type + - state + - size + - created_at + - updated_at + package_url: + type: string + prerelease: + type: boolean + release: + type: object + properties: + author: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + created_at: + type: string + draft: + type: boolean + html_url: + type: string + id: + type: integer + name: + type: string + nullable: true + prerelease: + type: boolean + published_at: + type: string + tag_name: + type: string + target_commitish: + type: string + url: + type: string + rubygems_metadata: + type: array + items: + "$ref": "#/components/schemas/webhook-rubygems-metadata" + summary: + type: string + tag_name: + type: string + target_commitish: + type: string + target_oid: + type: string + updated_at: + type: string + version: + type: string + required: + - id + - version + - name + - description + - summary + - html_url + - metadata + - package_files + - installation_command + - package_url + registry: + type: object + nullable: true + properties: + about_url: + type: string + name: + type: string + type: + type: string + url: + type: string + vendor: + type: string + updated_at: + type: string + nullable: true + required: + - id + - name + - namespace + - description + - ecosystem + - package_type + - html_url + - created_at + - updated_at + - owner + - package_version + - registry + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - registry_package + - sender + webhook-registry-package-updated: + type: object + properties: + action: + type: string + enum: + - updated + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + registry_package: + type: object + properties: + created_at: + type: string + description: + nullable: true + ecosystem: + type: string + html_url: + type: string + id: + type: integer + name: + type: string + namespace: + type: string + owner: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + required: + - login + - id + - node_id + - avatar_url + - gravatar_id + - url + - html_url + - followers_url + - following_url + - gists_url + - starred_url + - subscriptions_url + - organizations_url + - repos_url + - events_url + - received_events_url + - type + - site_admin + package_type: + type: string + package_version: + type: object + properties: + author: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + required: + - login + - id + - node_id + - avatar_url + - gravatar_id + - url + - html_url + - followers_url + - following_url + - gists_url + - starred_url + - subscriptions_url + - organizations_url + - repos_url + - events_url + - received_events_url + - type + - site_admin + body: + type: string + body_html: + type: string + created_at: + type: string + description: + type: string + docker_metadata: + type: array + items: + type: object + nullable: true + properties: + tags: + type: array + items: + type: string + draft: + type: boolean + html_url: + type: string + id: + type: integer + installation_command: + type: string + manifest: + type: string + metadata: + type: array + items: + type: object + additionalProperties: true + name: + type: string + package_files: + type: array + items: + type: object + properties: + content_type: + type: string + created_at: + type: string + download_url: + type: string + id: + type: integer + md5: + type: string + nullable: true + name: + type: string + sha1: + type: string + nullable: true + sha256: + type: string + size: + type: integer + state: + type: string + updated_at: + type: string + package_url: + type: string + prerelease: + type: boolean + release: + type: object + properties: + author: + type: object + properties: + avatar_url: + type: string + events_url: + type: string + followers_url: + type: string + following_url: + type: string + gists_url: + type: string + gravatar_id: + type: string + html_url: + type: string + id: + type: integer + login: + type: string + node_id: + type: string + organizations_url: + type: string + received_events_url: + type: string + repos_url: + type: string + site_admin: + type: boolean + starred_url: + type: string + subscriptions_url: + type: string + type: + type: string + url: + type: string + user_view_type: + type: string + required: + - login + - id + - node_id + - avatar_url + - gravatar_id + - url + - html_url + - followers_url + - following_url + - gists_url + - starred_url + - subscriptions_url + - organizations_url + - repos_url + - events_url + - received_events_url + - type + - site_admin + created_at: + type: string + draft: + type: boolean + html_url: + type: string + id: + type: integer + name: + type: string + prerelease: + type: boolean + published_at: + type: string + tag_name: + type: string + target_commitish: + type: string + url: + type: string + required: + - url + - html_url + - id + - tag_name + - target_commitish + - name + - draft + - author + - prerelease + - created_at + - published_at + rubygems_metadata: + type: array + items: + "$ref": "#/components/schemas/webhook-rubygems-metadata" + summary: + type: string + tag_name: + type: string + target_commitish: + type: string + target_oid: + type: string + updated_at: + type: string + version: + type: string + required: + - id + - version + - name + - description + - summary + - body + - body_html + - html_url + - target_commitish + - target_oid + - created_at + - updated_at + - metadata + - package_files + - author + - installation_command + - package_url + registry: + type: object + nullable: true + updated_at: + type: string + required: + - id + - name + - namespace + - description + - ecosystem + - package_type + - html_url + - created_at + - updated_at + - owner + - package_version + - registry + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - registry_package + - sender + webhook-release-created: + title: release created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + release: + "$ref": "#/components/schemas/webhooks_release" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - release + - repository + - sender + webhook-release-deleted: + title: release deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + release: + "$ref": "#/components/schemas/webhooks_release" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - release + - repository + - sender + webhook-release-edited: + title: release edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + body: + type: object + properties: + from: + description: The previous version of the body if the action was + `edited`. + type: string + required: + - from + name: + type: object + properties: + from: + description: The previous version of the name if the action was + `edited`. + type: string + required: + - from + tag_name: + type: object + properties: + from: + description: The previous version of the tag_name if the action + was `edited`. + type: string + required: + - from + make_latest: + type: object + properties: + to: + description: Whether this release was explicitly `edited` to be + the latest. + type: boolean + required: + - to + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + release: + "$ref": "#/components/schemas/webhooks_release" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - release + - repository + webhook-release-prereleased: + title: release prereleased event + type: object + properties: + action: + type: string + enum: + - prereleased + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + release: + title: Release + description: The [release](https://docs.github.com/rest/releases/releases/#get-a-release) + object. + type: object + required: + - assets + - assets_url + - author + - body + - created_at + - draft + - html_url + - id + - immutable + - name + - node_id + - prerelease + - published_at + - tag_name + - tarball_url + - target_commitish + - updated_at + - upload_url + - url + - zipball_url + properties: + assets: + type: array + items: + title: Release Asset + description: Data related to a release. + type: object + required: + - url + - browser_download_url + - id + - node_id + - name + - label + - state + - digest + - content_type + - size + - download_count + - created_at + - updated_at + nullable: true + properties: + browser_download_url: + type: string + format: uri + content_type: + type: string + created_at: + type: string + format: date-time + download_count: + type: integer + id: + type: integer + label: + type: string + nullable: true + name: + description: The file name of the asset. + type: string + node_id: + type: string + size: + type: integer + digest: + type: string + nullable: true + state: + description: State of the release asset. + type: string + enum: + - uploaded + updated_at: + type: string + format: date-time + uploader: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + url: + type: string + format: uri + assets_url: + type: string + format: uri + author: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + body: + type: string + nullable: true + created_at: + type: string + nullable: true + format: date-time + discussion_url: + type: string + format: uri + draft: + description: Whether the release is a draft or published + type: boolean + html_url: + type: string + format: uri + id: + type: integer + immutable: + description: Whether or not the release is immutable. + type: boolean + name: + type: string + nullable: true + node_id: + type: string + prerelease: + description: Whether the release is identified as a prerelease or a + full release. + type: boolean + enum: + - true + published_at: + type: string + nullable: true + format: date-time + reactions: + title: Reactions + type: object + required: + - url + - total_count + - "+1" + - "-1" + - laugh + - confused + - heart + - hooray + - eyes + - rocket + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + tag_name: + description: The name of the tag. + type: string + tarball_url: + type: string + nullable: true + format: uri + target_commitish: + description: Specifies the commitish value that determines where the + Git tag is created from. + type: string + upload_url: + type: string + format: uri-template + updated_at: + type: string + nullable: true + format: date-time + url: + type: string + format: uri + zipball_url: + type: string + nullable: true + format: uri + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - release + - repository + webhook-release-published: + title: release published event + type: object + properties: + action: + type: string + enum: + - published + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + release: + "$ref": "#/components/schemas/webhooks_release_1" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - release + - repository + webhook-release-released: + title: release released event + type: object + properties: + action: + type: string + enum: + - released + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + release: + "$ref": "#/components/schemas/webhooks_release" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - release + - repository + webhook-release-unpublished: + title: release unpublished event + type: object + properties: + action: + type: string + enum: + - unpublished + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + release: + "$ref": "#/components/schemas/webhooks_release_1" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - release + - repository + webhook-repository-advisory-published: + title: Repository advisory published event + type: object + properties: + action: + type: string + enum: + - published + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + repository_advisory: + "$ref": "#/components/schemas/repository-advisory" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - repository_advisory + webhook-repository-advisory-reported: + title: Repository advisory reported event + type: object + properties: + action: + type: string + enum: + - reported + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + repository_advisory: + "$ref": "#/components/schemas/repository-advisory" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - repository_advisory + webhook-repository-archived: + title: repository archived event + type: object + properties: + action: + type: string + enum: + - archived + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-repository-created: + title: repository created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-repository-deleted: + title: repository deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-repository-dispatch-sample: + title: repository_dispatch event + type: object + properties: + action: + type: string + description: The `event_type` that was specified in the `POST /repos/{owner}/{repo}/dispatches` + request body. + branch: + type: string + client_payload: + type: object + nullable: true + additionalProperties: true + description: The `client_payload` that was specified in the `POST /repos/{owner}/{repo}/dispatches` + request body. + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - branch + - client_payload + - repository + - sender + - installation + webhook-repository-edited: + title: repository edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + default_branch: + type: object + properties: + from: + type: string + required: + - from + description: + type: object + properties: + from: + type: string + nullable: true + required: + - from + homepage: + type: object + properties: + from: + type: string + nullable: true + required: + - from + topics: + type: object + properties: + from: + type: array + nullable: true + items: + type: string + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - repository + - sender + webhook-repository-import: + title: repository_import event + type: object + properties: + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + status: + type: string + enum: + - success + - cancelled + - failure + required: + - status + - repository + - sender + webhook-repository-privatized: + title: repository privatized event + type: object + properties: + action: + type: string + enum: + - privatized + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-repository-publicized: + title: repository publicized event + type: object + properties: + action: + type: string + enum: + - publicized + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-repository-renamed: + title: repository renamed event + type: object + properties: + action: + type: string + enum: + - renamed + changes: + type: object + properties: + repository: + type: object + properties: + name: + type: object + properties: + from: + type: string + required: + - from + required: + - name + required: + - repository + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - repository + - sender + webhook-repository-ruleset-created: + title: repository ruleset created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + repository_ruleset: + "$ref": "#/components/schemas/repository-ruleset" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository_ruleset + - sender + webhook-repository-ruleset-deleted: + title: repository ruleset deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + repository_ruleset: + "$ref": "#/components/schemas/repository-ruleset" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository_ruleset + - sender + webhook-repository-ruleset-edited: + title: repository ruleset edited event + type: object + properties: + action: + type: string + enum: + - edited + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + repository_ruleset: + "$ref": "#/components/schemas/repository-ruleset" + changes: + type: object + properties: + name: + type: object + properties: + from: + type: string + enforcement: + type: object + properties: + from: + type: string + conditions: + type: object + properties: + added: + type: array + items: + "$ref": "#/components/schemas/repository-ruleset-conditions" + deleted: + type: array + items: + "$ref": "#/components/schemas/repository-ruleset-conditions" + updated: + type: array + items: + type: object + properties: + condition: + "$ref": "#/components/schemas/repository-ruleset-conditions" + changes: + type: object + properties: + condition_type: + type: object + properties: + from: + type: string + target: + type: object + properties: + from: + type: string + include: + type: object + properties: + from: + type: array + items: + type: string + exclude: + type: object + properties: + from: + type: array + items: + type: string + rules: + type: object + properties: + added: + type: array + items: + "$ref": "#/components/schemas/repository-rule" + deleted: + type: array + items: + "$ref": "#/components/schemas/repository-rule" + updated: + type: array + items: + type: object + properties: + rule: + "$ref": "#/components/schemas/repository-rule" + changes: + type: object + properties: + configuration: + type: object + properties: + from: + type: string + rule_type: + type: object + properties: + from: + type: string + pattern: + type: object + properties: + from: + type: string + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository_ruleset + - sender + webhook-repository-transferred: + title: repository transferred event + type: object + properties: + action: + type: string + enum: + - transferred + changes: + type: object + properties: + owner: + type: object + properties: + from: + type: object + properties: + organization: + title: Organization + type: object + properties: + avatar_url: + type: string + format: uri + description: + type: string + nullable: true + events_url: + type: string + format: uri + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + type: integer + issues_url: + type: string + format: uri + login: + type: string + members_url: + type: string + format: uri-template + node_id: + type: string + public_members_url: + type: string + format: uri-template + repos_url: + type: string + format: uri + url: + type: string + format: uri + required: + - login + - id + - node_id + - url + - repos_url + - events_url + - hooks_url + - issues_url + - members_url + - public_members_url + - avatar_url + - description + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + required: + - from + required: + - owner + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - changes + - repository + - sender + webhook-repository-unarchived: + title: repository unarchived event + type: object + properties: + action: + type: string + enum: + - unarchived + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-repository-vulnerability-alert-create: + title: repository_vulnerability_alert create event + type: object + properties: + action: + type: string + enum: + - create + alert: + "$ref": "#/components/schemas/webhooks_alert" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-repository-vulnerability-alert-dismiss: + title: repository_vulnerability_alert dismiss event + type: object + properties: + action: + type: string + enum: + - dismiss + alert: + title: Repository Vulnerability Alert Alert + description: The security alert of the vulnerable dependency. + type: object + required: + - affected_package_name + - affected_range + - created_at + - dismiss_reason + - dismissed_at + - dismisser + - external_identifier + - external_reference + - ghsa_id + - id + - node_id + - number + - severity + - state + properties: + affected_package_name: + type: string + affected_range: + type: string + created_at: + type: string + dismiss_comment: + type: string + nullable: true + dismiss_reason: + type: string + dismissed_at: + type: string + dismisser: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + external_identifier: + type: string + external_reference: + type: string + nullable: true + format: uri + fix_reason: + type: string + fixed_at: + type: string + format: date-time + fixed_in: + type: string + ghsa_id: + type: string + id: + type: integer + node_id: + type: string + number: + type: integer + severity: + type: string + state: + type: string + enum: + - dismissed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-repository-vulnerability-alert-reopen: + title: repository_vulnerability_alert reopen event + type: object + properties: + action: + type: string + enum: + - reopen + alert: + "$ref": "#/components/schemas/webhooks_alert" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-repository-vulnerability-alert-resolve: + title: repository_vulnerability_alert resolve event + type: object + properties: + action: + type: string + enum: + - resolve + alert: + title: Repository Vulnerability Alert Alert + description: The security alert of the vulnerable dependency. + type: object + required: + - affected_package_name + - affected_range + - created_at + - external_identifier + - external_reference + - ghsa_id + - id + - node_id + - number + - severity + - state + properties: + affected_package_name: + type: string + affected_range: + type: string + created_at: + type: string + dismiss_reason: + type: string + dismissed_at: + type: string + dismisser: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + external_identifier: + type: string + external_reference: + type: string + nullable: true + format: uri + fix_reason: + type: string + fixed_at: + type: string + format: date-time + fixed_in: + type: string + ghsa_id: + type: string + id: + type: integer + node_id: + type: string + number: + type: integer + severity: + type: string + state: + type: string + enum: + - fixed + - open + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + - sender + webhook-secret-scanning-alert-assigned: + title: secret_scanning_alert assigned event + type: object + properties: + action: + type: string + enum: + - assigned + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + assignee: + "$ref": "#/components/schemas/simple-user" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + webhook-secret-scanning-alert-created: + title: secret_scanning_alert created event + type: object + properties: + action: + type: string + enum: + - created + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + webhook-secret-scanning-alert-location-created: + title: Secret Scanning Alert Location Created Event + type: object + properties: + action: + type: string + enum: + - created + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + installation: + "$ref": "#/components/schemas/simple-installation" + location: + "$ref": "#/components/schemas/secret-scanning-location" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - location + - alert + - repository + - sender + webhook-secret-scanning-alert-location-created-form-encoded: + title: Secret Scanning Alert Location Created Event + type: object + properties: + payload: + description: A URL-encoded string of the secret_scanning_alert_location.created + JSON payload. The decoded payload is a JSON object. + type: string + required: + - payload + webhook-secret-scanning-alert-publicly-leaked: + title: secret_scanning_alert publicly leaked event + type: object + properties: + action: + type: string + enum: + - publicly_leaked + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + webhook-secret-scanning-alert-reopened: + title: secret_scanning_alert reopened event + type: object + properties: + action: + type: string + enum: + - reopened + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + webhook-secret-scanning-alert-resolved: + title: secret_scanning_alert resolved event + type: object + properties: + action: + type: string + enum: + - resolved + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + webhook-secret-scanning-alert-unassigned: + title: secret_scanning_alert unassigned event + type: object + properties: + action: + type: string + enum: + - unassigned + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + assignee: + "$ref": "#/components/schemas/simple-user" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + webhook-secret-scanning-alert-validated: + title: secret_scanning_alert validated event + type: object + properties: + action: + type: string + enum: + - validated + alert: + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - alert + - repository + webhook-secret-scanning-scan-completed: + title: secret_scanning_scan completed event + type: object + properties: + action: + type: string + enum: + - completed + type: + type: string + description: What type of scan was completed + enum: + - backfill + - custom-pattern-backfill + - pattern-version-backfill + source: + type: string + description: What type of content was scanned + enum: + - git + - issues + - pull-requests + - discussions + - wiki + started_at: + type: string + format: date-time + description: 'The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + completed_at: + type: string + format: date-time + description: 'The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.' + secret_types: + type: array + description: List of patterns that were updated. This will be empty for + normal backfill scans or custom pattern updates + items: + type: string + nullable: true + custom_pattern_name: + type: string + description: If the scan was triggered by a custom pattern update, this + will be the name of the pattern that was updated + nullable: true + custom_pattern_scope: + type: string + description: If the scan was triggered by a custom pattern update, this + will be the scope of the pattern that was updated + enum: + - repository + - organization + - enterprise + nullable: true + repository: + "$ref": "#/components/schemas/repository-webhooks" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - source + - type + - started_at + - completed_at + webhook-security-advisory-published: + title: security_advisory published event + type: object + properties: + action: + type: string + enum: + - published + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + security_advisory: + "$ref": "#/components/schemas/webhooks_security_advisory" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - security_advisory + webhook-security-advisory-updated: + title: security_advisory updated event + type: object + properties: + action: + type: string + enum: + - updated + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + security_advisory: + "$ref": "#/components/schemas/webhooks_security_advisory" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - security_advisory + webhook-security-advisory-withdrawn: + title: security_advisory withdrawn event + type: object + properties: + action: + type: string + enum: + - withdrawn + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + security_advisory: + description: The details of the security advisory, including summary, description, + and severity. + type: object + properties: + cvss: + type: object + properties: + score: + type: number + vector_string: + type: string + nullable: true + required: + - vector_string + - score + cvss_severities: + "$ref": "#/components/schemas/cvss-severities" + cwes: + type: array + items: + type: object + properties: + cwe_id: + type: string + name: + type: string + required: + - cwe_id + - name + description: + type: string + ghsa_id: + type: string + identifiers: + type: array + items: + type: object + properties: + type: + type: string + value: + type: string + required: + - value + - type + published_at: + type: string + references: + type: array + items: + type: object + properties: + url: + type: string + format: uri + required: + - url + severity: + type: string + summary: + type: string + updated_at: + type: string + vulnerabilities: + type: array + items: + type: object + properties: + first_patched_version: + type: object + nullable: true + properties: + identifier: + type: string + required: + - identifier + package: + type: object + properties: + ecosystem: + type: string + name: + type: string + required: + - ecosystem + - name + severity: + type: string + vulnerable_version_range: + type: string + required: + - package + - severity + - vulnerable_version_range + - first_patched_version + withdrawn_at: + type: string + required: + - cvss + - cwes + - ghsa_id + - summary + - description + - severity + - identifiers + - references + - published_at + - updated_at + - withdrawn_at + - vulnerabilities + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - security_advisory + webhook-security-and-analysis: + title: security_and_analysis event + type: object + properties: + changes: + type: object + properties: + from: + type: object + properties: + security_and_analysis: + "$ref": "#/components/schemas/security-and-analysis" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/full-repository" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - changes + - repository + webhook-sponsorship-cancelled: + title: sponsorship cancelled event + type: object + properties: + action: + type: string + enum: + - cancelled + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + sponsorship: + "$ref": "#/components/schemas/webhooks_sponsorship" + required: + - action + - sponsorship + - sender + webhook-sponsorship-created: + title: sponsorship created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + sponsorship: + "$ref": "#/components/schemas/webhooks_sponsorship" + required: + - action + - sponsorship + - sender + webhook-sponsorship-edited: + title: sponsorship edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + type: object + properties: + privacy_level: + type: object + properties: + from: + description: The `edited` event types include the details about + the change when someone edits a sponsorship to change the privacy. + type: string + required: + - from + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + sponsorship: + "$ref": "#/components/schemas/webhooks_sponsorship" + required: + - action + - changes + - sponsorship + - sender + webhook-sponsorship-pending-cancellation: + title: sponsorship pending_cancellation event + type: object + properties: + action: + type: string + enum: + - pending_cancellation + effective_date: + "$ref": "#/components/schemas/webhooks_effective_date" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + sponsorship: + "$ref": "#/components/schemas/webhooks_sponsorship" + required: + - action + - sponsorship + - sender + webhook-sponsorship-pending-tier-change: + title: sponsorship pending_tier_change event + type: object + properties: + action: + type: string + enum: + - pending_tier_change + changes: + "$ref": "#/components/schemas/webhooks_changes_8" + effective_date: + "$ref": "#/components/schemas/webhooks_effective_date" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + sponsorship: + "$ref": "#/components/schemas/webhooks_sponsorship" + required: + - action + - changes + - sponsorship + - sender + webhook-sponsorship-tier-changed: + title: sponsorship tier_changed event + type: object + properties: + action: + type: string + enum: + - tier_changed + changes: + "$ref": "#/components/schemas/webhooks_changes_8" + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + sponsorship: + "$ref": "#/components/schemas/webhooks_sponsorship" + required: + - action + - changes + - sponsorship + - sender + webhook-star-created: + title: star created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + starred_at: + description: 'The time the star was created. This is a timestamp in ISO + 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` + action.' + type: string + nullable: true + required: + - action + - starred_at + - repository + - sender + webhook-star-deleted: + title: star deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + starred_at: + description: 'The time the star was created. This is a timestamp in ISO + 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` + action.' + nullable: true + required: + - action + - starred_at + - repository + - sender + webhook-status: + title: status event + type: object + properties: + avatar_url: + type: string + nullable: true + format: uri + branches: + description: An array of branch objects containing the status' SHA. Each + branch contains the given SHA, but the SHA may or may not be the head + of the branch. The array includes a maximum of 10 branches. + type: array + items: + type: object + properties: + commit: + type: object + properties: + sha: + type: string + nullable: true + url: + type: string + nullable: true + format: uri + required: + - sha + - url + name: + type: string + protected: + type: boolean + required: + - name + - commit + - protected + commit: + type: object + properties: + author: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + comments_url: + type: string + format: uri + commit: + type: object + properties: + author: + allOf: + - title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + - type: object + properties: + date: + type: string + email: + type: string + name: + type: string + required: + - date + comment_count: + type: integer + committer: + allOf: + - title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + - type: object + properties: + date: + type: string + email: + type: string + name: + type: string + required: + - date + message: + type: string + tree: + type: object + properties: + sha: + type: string + url: + type: string + format: uri + required: + - sha + - url + url: + type: string + format: uri + verification: + type: object + properties: + payload: + type: string + nullable: true + reason: + type: string + enum: + - expired_key + - not_signing_key + - gpgverify_error + - gpgverify_unavailable + - unsigned + - unknown_signature_type + - no_user + - unverified_email + - bad_email + - unknown_key + - malformed_signature + - invalid + - valid + - bad_cert + - ocsp_pending + signature: + type: string + nullable: true + verified: + type: boolean + verified_at: + type: string + nullable: true + required: + - verified + - reason + - signature + - payload + - verified_at + required: + - author + - committer + - message + - tree + - url + - comment_count + - verification + committer: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + html_url: + type: string + format: uri + node_id: + type: string + parents: + type: array + items: + type: object + properties: + html_url: + type: string + format: uri + sha: + type: string + url: + type: string + format: uri + required: + - sha + - url + - html_url + sha: + type: string + url: + type: string + format: uri + required: + - sha + - node_id + - commit + - url + - html_url + - comments_url + - author + - committer + - parents + context: + type: string + created_at: + type: string + description: + description: The optional human-readable description added to the status. + type: string + nullable: true + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + id: + description: The unique identifier of the status. + type: integer + installation: + "$ref": "#/components/schemas/simple-installation" + name: + type: string + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + sha: + description: The Commit SHA. + type: string + state: + description: The new state. Can be `pending`, `success`, `failure`, or `error`. + type: string + enum: + - pending + - success + - failure + - error + target_url: + description: The optional link added to the status. + type: string + nullable: true + updated_at: + type: string + required: + - id + - sha + - name + - target_url + - context + - description + - state + - commit + - branches + - created_at + - updated_at + - repository + - sender + webhook-sub-issues-parent-issue-added: + title: parent issue added event + type: object + properties: + action: + type: string + enum: + - parent_issue_added + parent_issue_id: + description: The ID of the parent issue. + type: number + parent_issue: + "$ref": "#/components/schemas/issue" + parent_issue_repo: + "$ref": "#/components/schemas/repository" + sub_issue_id: + description: The ID of the sub-issue. + type: number + sub_issue: + "$ref": "#/components/schemas/issue" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - parent_issue_id + - parent_issue + - parent_issue_repo + - sub_issue_id + - sub_issue + webhook-sub-issues-parent-issue-removed: + title: parent issue removed event + type: object + properties: + action: + type: string + enum: + - parent_issue_removed + parent_issue_id: + description: The ID of the parent issue. + type: number + parent_issue: + "$ref": "#/components/schemas/issue" + parent_issue_repo: + "$ref": "#/components/schemas/repository" + sub_issue_id: + description: The ID of the sub-issue. + type: number + sub_issue: + "$ref": "#/components/schemas/issue" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - parent_issue_id + - parent_issue + - parent_issue_repo + - sub_issue_id + - sub_issue + webhook-sub-issues-sub-issue-added: + title: sub-issue added event + type: object + properties: + action: + type: string + enum: + - sub_issue_added + sub_issue_id: + description: The ID of the sub-issue. + type: number + sub_issue: + "$ref": "#/components/schemas/issue" + sub_issue_repo: + "$ref": "#/components/schemas/repository" + parent_issue_id: + description: The ID of the parent issue. + type: number + parent_issue: + "$ref": "#/components/schemas/issue" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - sub_issue_id + - sub_issue + - sub_issue_repo + - parent_issue_id + - parent_issue + webhook-sub-issues-sub-issue-removed: + title: sub-issue removed event + type: object + properties: + action: + type: string + enum: + - sub_issue_removed + sub_issue_id: + description: The ID of the sub-issue. + type: number + sub_issue: + "$ref": "#/components/schemas/issue" + sub_issue_repo: + "$ref": "#/components/schemas/repository" + parent_issue_id: + description: The ID of the parent issue. + type: number + parent_issue: + "$ref": "#/components/schemas/issue" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - sub_issue_id + - sub_issue + - sub_issue_repo + - parent_issue_id + - parent_issue + webhook-team-add: + title: team_add event + type: object + properties: + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + team: + "$ref": "#/components/schemas/webhooks_team_1" + required: + - team + - repository + - sender + webhook-team-added-to-repository: + title: team added_to_repository event + type: object + properties: + action: + type: string + enum: + - added_to_repository + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are + merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sender: + "$ref": "#/components/schemas/simple-user" + team: + "$ref": "#/components/schemas/webhooks_team_1" + required: + - action + - team + - organization + webhook-team-created: + title: team created event + type: object + properties: + action: + type: string + enum: + - created + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are + merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sender: + "$ref": "#/components/schemas/simple-user" + team: + "$ref": "#/components/schemas/webhooks_team_1" + required: + - action + - team + - organization + - sender + webhook-team-deleted: + title: team deleted event + type: object + properties: + action: + type: string + enum: + - deleted + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are + merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sender: + "$ref": "#/components/schemas/simple-user" + team: + "$ref": "#/components/schemas/webhooks_team_1" + required: + - action + - team + - organization + webhook-team-edited: + title: team edited event + type: object + properties: + action: + type: string + enum: + - edited + changes: + description: The changes to the team if the action was `edited`. + type: object + properties: + description: + type: object + properties: + from: + description: The previous version of the description if the action + was `edited`. + type: string + required: + - from + name: + type: object + properties: + from: + description: The previous version of the name if the action was + `edited`. + type: string + required: + - from + privacy: + type: object + properties: + from: + description: The previous version of the team's privacy if the action + was `edited`. + type: string + required: + - from + notification_setting: + type: object + properties: + from: + description: The previous version of the team's notification setting + if the action was `edited`. + type: string + required: + - from + repository: + type: object + properties: + permissions: + type: object + properties: + from: + type: object + properties: + admin: + description: The previous version of the team member's `admin` + permission on a repository, if the action was `edited`. + type: boolean + pull: + description: The previous version of the team member's `pull` + permission on a repository, if the action was `edited`. + type: boolean + push: + description: The previous version of the team member's `push` + permission on a repository, if the action was `edited`. + type: boolean + required: + - from + required: + - permissions + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are + merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sender: + "$ref": "#/components/schemas/simple-user" + team: + "$ref": "#/components/schemas/webhooks_team_1" + required: + - action + - changes + - team + - organization + - sender + webhook-team-removed-from-repository: + title: team removed_from_repository event + type: object + properties: + action: + type: string + enum: + - removed_from_repository + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + title: Repository + description: A git repository + type: object + properties: + allow_auto_merge: + description: Whether to allow auto-merge for pull requests. + type: boolean + default: false + allow_forking: + description: Whether to allow private forks + type: boolean + allow_merge_commit: + description: Whether to allow merge commits for pull requests. + type: boolean + default: true + allow_rebase_merge: + description: Whether to allow rebase merges for pull requests. + type: boolean + default: true + allow_squash_merge: + description: Whether to allow squash merges for pull requests. + type: boolean + default: true + allow_update_branch: + type: boolean + archive_url: + type: string + format: uri-template + archived: + description: Whether the repository is archived. + type: boolean + default: false + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + clone_url: + type: string + format: uri + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + created_at: + oneOf: + - type: integer + - type: string + format: date-time + custom_properties: + type: object + 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. + additionalProperties: true + default_branch: + description: The default branch of the repository. + type: string + delete_branch_on_merge: + description: Whether to delete head branches when pull requests are + merged + type: boolean + default: false + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + disabled: + description: Returns whether or not this repository is disabled. + type: boolean + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks: + type: integer + forks_count: + type: integer + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + git_url: + type: string + format: uri + has_downloads: + description: Whether downloads are enabled. + type: boolean + default: true + has_issues: + description: Whether issues are enabled. + type: boolean + default: true + has_pages: + type: boolean + has_projects: + description: Whether projects are enabled. + type: boolean + default: true + has_wiki: + description: Whether the wiki is enabled. + type: boolean + default: true + homepage: + type: string + nullable: true + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + format: int64 + is_template: + type: boolean + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + language: + type: string + nullable: true + languages_url: + type: string + format: uri + license: + title: License + type: object + nullable: true + properties: + key: + type: string + name: + type: string + node_id: + type: string + spdx_id: + type: string + url: + type: string + nullable: true + format: uri + required: + - key + - name + - spdx_id + - url + - node_id + master_branch: + type: string + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + mirror_url: + type: string + nullable: true + format: uri + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + open_issues: + type: integer + open_issues_count: + type: integer + organization: + type: string + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + permissions: + type: object + properties: + admin: + type: boolean + maintain: + type: boolean + pull: + type: boolean + push: + type: boolean + triage: + type: boolean + required: + - pull + - push + - admin + private: + description: Whether the repository is private or public. + type: boolean + public: + type: boolean + pulls_url: + type: string + format: uri-template + pushed_at: + nullable: true + oneOf: + - type: integer + - type: string + format: date-time + releases_url: + type: string + format: uri-template + role_name: + type: string + nullable: true + size: + type: integer + ssh_url: + type: string + stargazers: + type: integer + stargazers_count: + type: integer + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + svn_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + topics: + type: array + items: + type: string + trees_url: + type: string + format: uri-template + updated_at: + type: string + format: date-time + url: + type: string + format: uri + visibility: + type: string + enum: + - public + - private + - internal + watchers: + type: integer + watchers_count: + type: integer + required: + - id + - node_id + - name + - full_name + - private + - owner + - html_url + - description + - fork + - url + - forks_url + - keys_url + - collaborators_url + - teams_url + - hooks_url + - issue_events_url + - events_url + - assignees_url + - branches_url + - tags_url + - blobs_url + - git_tags_url + - git_refs_url + - trees_url + - statuses_url + - languages_url + - stargazers_url + - contributors_url + - subscribers_url + - subscription_url + - commits_url + - git_commits_url + - comments_url + - issue_comment_url + - contents_url + - compare_url + - merges_url + - archive_url + - downloads_url + - issues_url + - pulls_url + - milestones_url + - notifications_url + - labels_url + - releases_url + - deployments_url + - created_at + - updated_at + - pushed_at + - git_url + - ssh_url + - clone_url + - svn_url + - homepage + - size + - stargazers_count + - watchers_count + - language + - has_issues + - has_projects + - has_downloads + - has_wiki + - has_pages + - forks_count + - mirror_url + - archived + - open_issues_count + - license + - forks + - open_issues + - watchers + - default_branch + - topics + - visibility + sender: + "$ref": "#/components/schemas/simple-user" + team: + "$ref": "#/components/schemas/webhooks_team_1" + required: + - action + - team + - organization + - sender + webhook-watch-started: + title: watch started event + type: object + properties: + action: + type: string + enum: + - started + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + required: + - action + - repository + - sender + webhook-workflow-dispatch: + title: workflow_dispatch event + type: object + properties: + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + inputs: + type: object + nullable: true + additionalProperties: true + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + ref: + type: string + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow: + type: string + required: + - inputs + - ref + - repository + - sender + - workflow + webhook-workflow-job-completed: + title: workflow_job completed event + type: object + properties: + action: + type: string + enum: + - completed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow_job: + allOf: + - title: Workflow Job + description: The workflow job. Many `workflow_job` keys, such as `head_sha`, + `conclusion`, and `started_at` are the same as those in a [`check_run`](#check_run) + object. + type: object + properties: + check_run_url: + type: string + format: uri + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + enum: + - success + - failure + - null + - skipped + - cancelled + - action_required + - neutral + - timed_out + created_at: + description: The time that the job created. + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + labels: + description: Custom labels for the job. Specified by the [`"runs-on"` + attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) + in the workflow YAML. + type: array + items: + type: string + name: + type: string + node_id: + type: string + run_attempt: + type: integer + run_id: + type: number + run_url: + type: string + format: uri + runner_group_id: + description: The ID of the runner group that is running this job. + This will be `null` as long as `workflow_job[status]` is `queued`. + type: integer + nullable: true + runner_group_name: + description: The name of the runner group that is running this job. + This will be `null` as long as `workflow_job[status]` is `queued`. + type: string + nullable: true + runner_id: + description: The ID of the runner that is running this job. This will + be `null` as long as `workflow_job[status]` is `queued`. + type: integer + nullable: true + runner_name: + description: The name of the runner that is running this job. This + will be `null` as long as `workflow_job[status]` is `queued`. + type: string + nullable: true + started_at: + type: string + status: + description: The current status of the job. Can be `queued`, `in_progress`, + `waiting`, or `completed`. + type: string + enum: + - queued + - in_progress + - completed + - waiting + head_branch: + type: string + description: The name of the current branch. + nullable: true + workflow_name: + type: string + description: The name of the workflow. + nullable: true + steps: + type: array + items: + title: Workflow Step + type: object + properties: + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + enum: + - failure + - skipped + - success + - cancelled + - null + name: + type: string + number: + type: integer + started_at: + type: string + nullable: true + status: + type: string + enum: + - in_progress + - completed + - queued + required: + - name + - status + - conclusion + - number + - started_at + - completed_at + url: + type: string + format: uri + required: + - id + - run_id + - run_url + - run_attempt + - node_id + - head_sha + - url + - html_url + - status + - conclusion + - started_at + - completed_at + - name + - steps + - check_run_url + - labels + - runner_id + - runner_name + - runner_group_id + - runner_group_name + - workflow_name + - head_branch + - created_at + - type: object + properties: + check_run_url: + type: string + completed_at: + type: string + conclusion: + type: string + enum: + - success + - failure + - skipped + - cancelled + - action_required + - neutral + - timed_out + created_at: + description: The time that the job created. + type: string + head_sha: + type: string + html_url: + type: string + id: + type: integer + labels: + type: array + items: + type: string + nullable: true + name: + type: string + node_id: + type: string + run_attempt: + type: integer + run_id: + type: integer + run_url: + type: string + runner_group_id: + type: number + nullable: true + runner_group_name: + type: string + nullable: true + runner_id: + type: number + nullable: true + runner_name: + type: string + nullable: true + started_at: + type: string + status: + type: string + head_branch: + type: string + description: The name of the current branch. + nullable: true + workflow_name: + type: string + description: The name of the workflow. + nullable: true + steps: + type: array + items: + type: object + nullable: true + url: + type: string + required: + - conclusion + deployment: + "$ref": "#/components/schemas/deployment" + required: + - action + - repository + - sender + - workflow_job + webhook-workflow-job-in-progress: + title: workflow_job in_progress event + type: object + properties: + action: + type: string + enum: + - in_progress + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow_job: + allOf: + - title: Workflow Job + description: The workflow job. Many `workflow_job` keys, such as `head_sha`, + `conclusion`, and `started_at` are the same as those in a [`check_run`](#check_run) + object. + type: object + properties: + check_run_url: + type: string + format: uri + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + enum: + - success + - failure + - null + - cancelled + - neutral + created_at: + description: The time that the job created. + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + labels: + description: Custom labels for the job. Specified by the [`"runs-on"` + attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) + in the workflow YAML. + type: array + items: + type: string + name: + type: string + node_id: + type: string + run_attempt: + type: integer + run_id: + type: number + run_url: + type: string + format: uri + runner_group_id: + description: The ID of the runner group that is running this job. + This will be `null` as long as `workflow_job[status]` is `queued`. + type: integer + nullable: true + runner_group_name: + description: The name of the runner group that is running this job. + This will be `null` as long as `workflow_job[status]` is `queued`. + type: string + nullable: true + runner_id: + description: The ID of the runner that is running this job. This will + be `null` as long as `workflow_job[status]` is `queued`. + type: integer + nullable: true + runner_name: + description: The name of the runner that is running this job. This + will be `null` as long as `workflow_job[status]` is `queued`. + type: string + nullable: true + started_at: + type: string + status: + description: The current status of the job. Can be `queued`, `in_progress`, + or `completed`. + type: string + enum: + - queued + - in_progress + - completed + head_branch: + type: string + description: The name of the current branch. + nullable: true + workflow_name: + type: string + description: The name of the workflow. + nullable: true + steps: + type: array + items: + title: Workflow Step + type: object + properties: + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + enum: + - failure + - skipped + - success + - null + - cancelled + name: + type: string + number: + type: integer + started_at: + type: string + nullable: true + status: + type: string + enum: + - in_progress + - completed + - queued + - pending + required: + - name + - status + - conclusion + - number + - started_at + - completed_at + url: + type: string + format: uri + required: + - id + - run_id + - run_url + - run_attempt + - node_id + - head_sha + - url + - html_url + - status + - conclusion + - started_at + - completed_at + - name + - steps + - check_run_url + - labels + - runner_id + - runner_name + - runner_group_id + - runner_group_name + - workflow_name + - head_branch + - created_at + - type: object + properties: + check_run_url: + type: string + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + created_at: + description: The time that the job created. + type: string + head_sha: + type: string + html_url: + type: string + id: + type: integer + labels: + type: array + items: + type: string + name: + type: string + node_id: + type: string + run_attempt: + type: integer + run_id: + type: integer + run_url: + type: string + runner_group_id: + type: number + nullable: true + runner_group_name: + type: string + nullable: true + runner_id: + type: number + nullable: true + runner_name: + type: string + nullable: true + started_at: + type: string + status: + type: string + enum: + - in_progress + - completed + - queued + head_branch: + type: string + description: The name of the current branch. + nullable: true + workflow_name: + type: string + description: The name of the workflow. + nullable: true + steps: + type: array + items: + title: Workflow Step + type: object + properties: + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + name: + type: string + number: + type: integer + started_at: + type: string + nullable: true + status: + type: string + enum: + - in_progress + - completed + - pending + - queued + required: + - name + - status + - conclusion + - number + - started_at + - completed_at + url: + type: string + required: + - status + - steps + deployment: + "$ref": "#/components/schemas/deployment" + required: + - action + - repository + - sender + - workflow_job + webhook-workflow-job-queued: + title: workflow_job queued event + type: object + properties: + action: + type: string + enum: + - queued + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow_job: + type: object + properties: + check_run_url: + type: string + format: uri + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + created_at: + description: The time that the job created. + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + labels: + type: array + items: + type: string + name: + type: string + node_id: + type: string + run_attempt: + type: integer + run_id: + type: number + run_url: + type: string + format: uri + runner_group_id: + type: integer + nullable: true + runner_group_name: + type: string + nullable: true + runner_id: + type: integer + nullable: true + runner_name: + type: string + nullable: true + started_at: + type: string + format: date-time + status: + type: string + enum: + - queued + - in_progress + - completed + - waiting + head_branch: + type: string + description: The name of the current branch. + nullable: true + workflow_name: + type: string + description: The name of the workflow. + nullable: true + steps: + type: array + items: + title: Workflow Step + type: object + properties: + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + enum: + - failure + - skipped + - success + - cancelled + - null + name: + type: string + number: + type: integer + started_at: + type: string + nullable: true + status: + type: string + enum: + - completed + - in_progress + - queued + - pending + required: + - name + - status + - conclusion + - number + - started_at + - completed_at + url: + type: string + format: uri + required: + - id + - run_id + - run_url + - run_attempt + - node_id + - head_sha + - url + - html_url + - status + - conclusion + - started_at + - completed_at + - name + - steps + - check_run_url + - labels + - runner_id + - runner_name + - runner_group_id + - runner_group_name + - workflow_name + - head_branch + - created_at + deployment: + "$ref": "#/components/schemas/deployment" + required: + - action + - repository + - sender + - workflow_job + webhook-workflow-job-waiting: + title: workflow_job waiting event + type: object + properties: + action: + type: string + enum: + - waiting + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow_job: + type: object + properties: + check_run_url: + type: string + format: uri + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + created_at: + description: The time that the job created. + type: string + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + labels: + type: array + items: + type: string + name: + type: string + node_id: + type: string + run_attempt: + type: integer + run_id: + type: number + run_url: + type: string + format: uri + runner_group_id: + type: integer + nullable: true + runner_group_name: + type: string + nullable: true + runner_id: + type: integer + nullable: true + runner_name: + type: string + nullable: true + started_at: + type: string + format: date-time + head_branch: + type: string + description: The name of the current branch. + nullable: true + workflow_name: + type: string + description: The name of the workflow. + nullable: true + status: + type: string + enum: + - queued + - in_progress + - completed + - waiting + steps: + type: array + items: + title: Workflow Step + type: object + properties: + completed_at: + type: string + nullable: true + conclusion: + type: string + nullable: true + enum: + - failure + - skipped + - success + - cancelled + - null + name: + type: string + number: + type: integer + started_at: + type: string + nullable: true + status: + type: string + enum: + - completed + - in_progress + - queued + - pending + - waiting + required: + - name + - status + - conclusion + - number + - started_at + - completed_at + url: + type: string + format: uri + required: + - id + - run_id + - run_url + - run_attempt + - node_id + - head_sha + - url + - html_url + - status + - conclusion + - started_at + - completed_at + - name + - steps + - check_run_url + - labels + - runner_id + - runner_name + - runner_group_id + - runner_group_name + - workflow_name + - head_branch + - created_at + deployment: + "$ref": "#/components/schemas/deployment" + required: + - action + - repository + - sender + - workflow_job + webhook-workflow-run-completed: + title: workflow_run completed event + type: object + properties: + action: + type: string + enum: + - completed + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow: + "$ref": "#/components/schemas/webhooks_workflow" + workflow_run: + title: Workflow Run + type: object + required: + - actor + - artifacts_url + - cancel_url + - check_suite_id + - check_suite_node_id + - check_suite_url + - conclusion + - created_at + - event + - head_branch + - head_commit + - head_repository + - head_sha + - html_url + - id + - jobs_url + - logs_url + - name + - node_id + - path + - previous_attempt_url + - pull_requests + - repository + - rerun_url + - run_attempt + - run_number + - run_started_at + - status + - triggering_actor + - updated_at + - url + - workflow_id + - workflow_url + properties: + actor: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + artifacts_url: + type: string + format: uri + cancel_url: + type: string + format: uri + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + format: uri + conclusion: + type: string + nullable: true + enum: + - action_required + - cancelled + - failure + - neutral + - skipped + - stale + - success + - timed_out + - startup_failure + created_at: + type: string + format: date-time + event: + type: string + head_branch: + type: string + nullable: true + head_commit: + title: SimpleCommit + type: object + required: + - id + - tree_id + - message + - timestamp + - author + - committer + properties: + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + required: + - email + - name + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + required: + - email + - name + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + id: + type: string + message: + type: string + timestamp: + type: string + tree_id: + type: string + head_repository: + title: Repository Lite + type: object + 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 + - issue_comment_url + - issue_events_url + - issues_url + - keys_url + - labels_url + - languages_url + - merges_url + - milestones_url + - name + - node_id + - notifications_url + - owner + - private + - pulls_url + - releases_url + - stargazers_url + - statuses_url + - subscribers_url + - subscription_url + - tags_url + - teams_url + - trees_url + - url + properties: + archive_url: + type: string + format: uri-template + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + languages_url: + type: string + format: uri + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + private: + description: Whether the repository is private or public. + type: boolean + pulls_url: + type: string + format: uri-template + releases_url: + type: string + format: uri-template + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + trees_url: + type: string + format: uri-template + url: + type: string + format: uri + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + format: uri + logs_url: + type: string + format: uri + name: + type: string + nullable: true + node_id: + type: string + path: + type: string + previous_attempt_url: + type: string + nullable: true + format: uri + pull_requests: + type: array + items: + type: object + required: + - url + - id + - number + - head + - base + nullable: true + properties: + base: + type: object + required: + - ref + - sha + - repo + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + required: + - id + - url + - name + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + sha: + type: string + head: + type: object + required: + - ref + - sha + - repo + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + required: + - id + - url + - name + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + sha: + type: string + id: + type: number + number: + type: number + url: + type: string + format: uri + referenced_workflows: + type: array + nullable: true + items: + type: object + required: + - path + - sha + properties: + path: + type: string + ref: + type: string + sha: + type: string + repository: + title: Repository Lite + type: object + 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 + - issue_comment_url + - issue_events_url + - issues_url + - keys_url + - labels_url + - languages_url + - merges_url + - milestones_url + - name + - node_id + - notifications_url + - owner + - private + - pulls_url + - releases_url + - stargazers_url + - statuses_url + - subscribers_url + - subscription_url + - tags_url + - teams_url + - trees_url + - url + properties: + archive_url: + type: string + format: uri-template + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + languages_url: + type: string + format: uri + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + private: + description: Whether the repository is private or public. + type: boolean + pulls_url: + type: string + format: uri-template + releases_url: + type: string + format: uri-template + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + trees_url: + type: string + format: uri-template + url: + type: string + format: uri + rerun_url: + type: string + format: uri + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - pending + - waiting + triggering_actor: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + format: uri + display_title: + type: string + example: Simple Workflow + description: The event-specific title associated with the run or the + run-name if set, or the value of `run-name` if it is set in the workflow. + required: + - action + - repository + - sender + - workflow + - workflow_run + webhook-workflow-run-in-progress: + title: workflow_run in_progress event + type: object + properties: + action: + type: string + enum: + - in_progress + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow: + "$ref": "#/components/schemas/webhooks_workflow" + workflow_run: + title: Workflow Run + type: object + required: + - actor + - artifacts_url + - cancel_url + - check_suite_id + - check_suite_node_id + - check_suite_url + - conclusion + - created_at + - event + - head_branch + - head_commit + - head_repository + - head_sha + - html_url + - id + - jobs_url + - logs_url + - name + - node_id + - path + - previous_attempt_url + - pull_requests + - repository + - rerun_url + - run_attempt + - run_number + - run_started_at + - status + - triggering_actor + - updated_at + - url + - workflow_id + - workflow_url + properties: + actor: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + artifacts_url: + type: string + format: uri + cancel_url: + type: string + format: uri + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + format: uri + conclusion: + type: string + nullable: true + enum: + - action_required + - cancelled + - failure + - neutral + - skipped + - stale + - success + - timed_out + created_at: + type: string + format: date-time + event: + type: string + head_branch: + type: string + nullable: true + head_commit: + title: SimpleCommit + type: object + required: + - id + - tree_id + - message + - timestamp + - author + - committer + properties: + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + required: + - email + - name + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + required: + - email + - name + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + id: + type: string + message: + type: string + timestamp: + type: string + tree_id: + type: string + head_repository: + title: Repository Lite + type: object + 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 + - issue_comment_url + - issue_events_url + - issues_url + - keys_url + - labels_url + - languages_url + - merges_url + - milestones_url + - name + - node_id + - notifications_url + - owner + - private + - pulls_url + - releases_url + - stargazers_url + - statuses_url + - subscribers_url + - subscription_url + - tags_url + - teams_url + - trees_url + - url + properties: + archive_url: + type: string + format: uri-template + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + languages_url: + type: string + format: uri + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + name: + description: The name of the repository. + type: string + nullable: true + node_id: + type: string + notifications_url: + type: string + format: uri-template + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + private: + description: Whether the repository is private or public. + type: boolean + pulls_url: + type: string + format: uri-template + releases_url: + type: string + format: uri-template + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + trees_url: + type: string + format: uri-template + url: + type: string + format: uri + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + format: uri + logs_url: + type: string + format: uri + name: + type: string + nullable: true + node_id: + type: string + path: + type: string + previous_attempt_url: + type: string + nullable: true + format: uri + pull_requests: + type: array + items: + type: object + required: + - url + - id + - number + - head + - base + nullable: true + properties: + base: + type: object + required: + - ref + - sha + - repo + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + required: + - id + - url + - name + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + sha: + type: string + head: + type: object + required: + - ref + - sha + - repo + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + required: + - id + - url + - name + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + sha: + type: string + id: + type: number + number: + type: number + url: + type: string + format: uri + referenced_workflows: + type: array + nullable: true + items: + type: object + required: + - path + - sha + properties: + path: + type: string + ref: + type: string + sha: + type: string + repository: + title: Repository Lite + type: object + 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 + - issue_comment_url + - issue_events_url + - issues_url + - keys_url + - labels_url + - languages_url + - merges_url + - milestones_url + - name + - node_id + - notifications_url + - owner + - private + - pulls_url + - releases_url + - stargazers_url + - statuses_url + - subscribers_url + - subscription_url + - tags_url + - teams_url + - trees_url + - url + properties: + archive_url: + type: string + format: uri-template + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + languages_url: + type: string + format: uri + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + owner: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + private: + description: Whether the repository is private or public. + type: boolean + pulls_url: + type: string + format: uri-template + releases_url: + type: string + format: uri-template + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + trees_url: + type: string + format: uri-template + url: + type: string + format: uri + rerun_url: + type: string + format: uri + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - pending + triggering_actor: + title: User + type: object + nullable: true + required: + - login + - id + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + format: uri + required: + - action + - repository + - sender + - workflow + - workflow_run + webhook-workflow-run-requested: + title: workflow_run requested event + type: object + properties: + action: + type: string + enum: + - requested + enterprise: + "$ref": "#/components/schemas/enterprise-webhooks" + installation: + "$ref": "#/components/schemas/simple-installation" + organization: + "$ref": "#/components/schemas/organization-simple-webhooks" + repository: + "$ref": "#/components/schemas/repository-webhooks" + sender: + "$ref": "#/components/schemas/simple-user" + workflow: + "$ref": "#/components/schemas/webhooks_workflow" + workflow_run: + title: Workflow Run + type: object + properties: + actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + artifacts_url: + type: string + format: uri + cancel_url: + type: string + format: uri + check_suite_id: + type: integer + check_suite_node_id: + type: string + check_suite_url: + type: string + format: uri + conclusion: + type: string + nullable: true + enum: + - success + - failure + - neutral + - cancelled + - timed_out + - action_required + - stale + - null + - skipped + - startup_failure + created_at: + type: string + format: date-time + event: + type: string + head_branch: + type: string + nullable: true + head_commit: + title: SimpleCommit + type: object + properties: + author: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + committer: + title: Committer + description: Metaproperties for Git author/committer information. + type: object + properties: + date: + type: string + format: date-time + email: + type: string + nullable: true + format: email + name: + description: The git author's name. + type: string + username: + type: string + required: + - email + - name + id: + type: string + message: + type: string + timestamp: + type: string + tree_id: + type: string + required: + - id + - tree_id + - message + - timestamp + - author + - committer + head_repository: + title: Repository Lite + type: object + properties: + archive_url: + type: string + format: uri-template + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + languages_url: + type: string + format: uri + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + private: + description: Whether the repository is private or public. + type: boolean + pulls_url: + type: string + format: uri-template + releases_url: + type: string + format: uri-template + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + trees_url: + type: string + format: uri-template + url: + type: string + format: uri + 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 + - issue_comment_url + - issue_events_url + - issues_url + - keys_url + - labels_url + - languages_url + - merges_url + - milestones_url + - name + - node_id + - notifications_url + - owner + - private + - pulls_url + - releases_url + - stargazers_url + - statuses_url + - subscribers_url + - subscription_url + - tags_url + - teams_url + - trees_url + - url + head_sha: + type: string + html_url: + type: string + format: uri + id: + type: integer + jobs_url: + type: string + format: uri + logs_url: + type: string + format: uri + name: + type: string + nullable: true + node_id: + type: string + path: + type: string + previous_attempt_url: + type: string + nullable: true + format: uri + pull_requests: + type: array + items: + type: object + properties: + base: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + head: + type: object + properties: + ref: + type: string + repo: + title: Repo Ref + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + format: uri + required: + - id + - url + - name + sha: + type: string + required: + - ref + - sha + - repo + id: + type: number + number: + type: number + url: + type: string + format: uri + required: + - url + - id + - number + - head + - base + referenced_workflows: + type: array + nullable: true + items: + type: object + properties: + path: + type: string + ref: + type: string + sha: + type: string + required: + - path + - sha + repository: + title: Repository Lite + type: object + properties: + archive_url: + type: string + format: uri-template + assignees_url: + type: string + format: uri-template + blobs_url: + type: string + format: uri-template + branches_url: + type: string + format: uri-template + collaborators_url: + type: string + format: uri-template + comments_url: + type: string + format: uri-template + commits_url: + type: string + format: uri-template + compare_url: + type: string + format: uri-template + contents_url: + type: string + format: uri-template + contributors_url: + type: string + format: uri + deployments_url: + type: string + format: uri + description: + type: string + nullable: true + downloads_url: + type: string + format: uri + events_url: + type: string + format: uri + fork: + type: boolean + forks_url: + type: string + format: uri + full_name: + type: string + git_commits_url: + type: string + format: uri-template + git_refs_url: + type: string + format: uri-template + git_tags_url: + type: string + format: uri-template + hooks_url: + type: string + format: uri + html_url: + type: string + format: uri + id: + description: Unique identifier of the repository + type: integer + issue_comment_url: + type: string + format: uri-template + issue_events_url: + type: string + format: uri-template + issues_url: + type: string + format: uri-template + keys_url: + type: string + format: uri-template + labels_url: + type: string + format: uri-template + languages_url: + type: string + format: uri + merges_url: + type: string + format: uri + milestones_url: + type: string + format: uri-template + name: + description: The name of the repository. + type: string + node_id: + type: string + notifications_url: + type: string + format: uri-template + owner: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + private: + description: Whether the repository is private or public. + type: boolean + pulls_url: + type: string + format: uri-template + releases_url: + type: string + format: uri-template + stargazers_url: + type: string + format: uri + statuses_url: + type: string + format: uri-template + subscribers_url: + type: string + format: uri + subscription_url: + type: string + format: uri + tags_url: + type: string + format: uri + teams_url: + type: string + format: uri + trees_url: + type: string + format: uri-template + url: + type: string + format: uri + 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 + - issue_comment_url + - issue_events_url + - issues_url + - keys_url + - labels_url + - languages_url + - merges_url + - milestones_url + - name + - node_id + - notifications_url + - owner + - private + - pulls_url + - releases_url + - stargazers_url + - statuses_url + - subscribers_url + - subscription_url + - tags_url + - teams_url + - trees_url + - url + rerun_url: + type: string + format: uri + run_attempt: + type: integer + run_number: + type: integer + run_started_at: + type: string + format: date-time + status: + type: string + enum: + - requested + - in_progress + - completed + - queued + - pending + - waiting + triggering_actor: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + required: + - login + - id + updated_at: + type: string + format: date-time + url: + type: string + format: uri + workflow_id: + type: integer + workflow_url: + type: string + format: uri + display_title: + type: string + required: + - artifacts_url + - cancel_url + - check_suite_url + - check_suite_id + - check_suite_node_id + - conclusion + - created_at + - event + - head_branch + - head_commit + - head_repository + - head_sha + - html_url + - id + - jobs_url + - logs_url + - node_id + - name + - path + - pull_requests + - repository + - rerun_url + - run_number + - status + - updated_at + - url + - workflow_id + - workflow_url + - run_attempt + - run_started_at + - previous_attempt_url + - actor + - triggering_actor + - display_title + required: + - action + - repository + - sender + - workflow + - workflow_run + create-event: + title: CreateEvent + type: object + properties: + ref: + type: string + ref_type: + type: string + full_ref: + type: string + master_branch: + type: string + description: + type: string + nullable: true + pusher_type: + type: string + required: + - ref + - ref_type + - full_ref + - master_branch + - pusher_type + delete-event: + title: DeleteEvent + type: object + properties: + ref: + type: string + ref_type: + type: string + full_ref: + type: string + pusher_type: + type: string + required: + - ref + - ref_type + - full_ref + - pusher_type + discussion-event: + title: DiscussionEvent + type: object + properties: + action: + type: string + discussion: + "$ref": "#/components/schemas/discussion" + required: + - action + - discussion + issues-event: + title: IssuesEvent + type: object + properties: + action: + type: string + issue: + "$ref": "#/components/schemas/issue" + assignee: + "$ref": "#/components/schemas/simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + label: + "$ref": "#/components/schemas/label" + labels: + type: array + items: + "$ref": "#/components/schemas/label" + required: + - action + - issue + issue-comment-event: + title: IssueCommentEvent + type: object + properties: + action: + type: string + issue: + "$ref": "#/components/schemas/issue" + comment: + "$ref": "#/components/schemas/issue-comment" + required: + - action + - issue + - comment + fork-event: + title: ForkEvent + type: object + properties: + action: + type: string + forkee: + type: object + properties: + id: + type: integer + node_id: + type: string + name: + type: string + full_name: + type: string + private: + type: boolean + owner: + "$ref": "#/components/schemas/simple-user" + html_url: + type: string + description: + type: string + nullable: true + fork: + type: boolean + url: + type: string + forks_url: + type: string + keys_url: + type: string + collaborators_url: + type: string + teams_url: + type: string + hooks_url: + type: string + issue_events_url: + type: string + events_url: + type: string + assignees_url: + type: string + branches_url: + type: string + tags_url: + type: string + blobs_url: + type: string + git_tags_url: + type: string + git_refs_url: + type: string + trees_url: + type: string + statuses_url: + type: string + languages_url: + type: string + stargazers_url: + type: string + contributors_url: + type: string + subscribers_url: + type: string + subscription_url: + type: string + commits_url: + type: string + git_commits_url: + type: string + comments_url: + type: string + issue_comment_url: + type: string + contents_url: + type: string + compare_url: + type: string + merges_url: + type: string + archive_url: + type: string + downloads_url: + type: string + issues_url: + type: string + pulls_url: + type: string + milestones_url: + type: string + notifications_url: + type: string + labels_url: + type: string + releases_url: + type: string + deployments_url: + type: string + created_at: + type: string + format: date-time + nullable: true + updated_at: + type: string + format: date-time + nullable: true + pushed_at: + type: string + format: date-time + nullable: true + git_url: + type: string + ssh_url: + type: string + clone_url: + type: string + svn_url: + type: string + homepage: + type: string + nullable: true + size: + type: integer + stargazers_count: + type: integer + watchers_count: + type: integer + language: + type: string + nullable: true + has_issues: + type: boolean + has_projects: + type: boolean + has_downloads: + type: boolean + has_wiki: + type: boolean + has_pages: + type: boolean + has_discussions: + type: boolean + forks_count: + type: integer + mirror_url: + type: string + nullable: true + archived: + type: boolean + disabled: + type: boolean + open_issues_count: + type: integer + license: + "$ref": "#/components/schemas/nullable-license-simple" + allow_forking: + type: boolean + is_template: + type: boolean + web_commit_signoff_required: + type: boolean + topics: + type: array + items: + type: string + visibility: + type: string + forks: + type: integer + open_issues: + type: integer + watchers: + type: integer + default_branch: + type: string + public: + type: boolean + required: + - action + - forkee + gollum-event: + title: GollumEvent + type: object + properties: + pages: + type: array + items: + type: object + properties: + page_name: + type: string + nullable: true + title: + type: string + nullable: true + summary: + type: string + nullable: true + action: + type: string + sha: + type: string + html_url: + type: string + required: + - pages + member-event: + title: MemberEvent + type: object + properties: + action: + type: string + member: + "$ref": "#/components/schemas/simple-user" + required: + - action + - member + public-event: + title: PublicEvent + type: object + push-event: + title: PushEvent + type: object + properties: + repository_id: + type: integer + push_id: + type: integer + ref: + type: string + head: + type: string + before: + type: string + required: + - repository_id + - push_id + - ref + - head + - before + pull-request-event: + title: PullRequestEvent + type: object + properties: + action: + type: string + number: + type: integer + pull_request: + "$ref": "#/components/schemas/pull-request-minimal" + assignee: + "$ref": "#/components/schemas/simple-user" + assignees: + type: array + items: + "$ref": "#/components/schemas/simple-user" + label: + "$ref": "#/components/schemas/label" + labels: + type: array + items: + "$ref": "#/components/schemas/label" + required: + - action + - number + - pull_request + pull-request-review-comment-event: + title: PullRequestReviewCommentEvent + type: object + properties: + action: + type: string + pull_request: + "$ref": "#/components/schemas/pull-request-minimal" + comment: + type: object + properties: + id: + type: integer + node_id: + type: string + url: + type: string + format: uri + pull_request_review_id: + type: integer + nullable: true + diff_hunk: + type: string + path: + type: string + position: + type: integer + nullable: true + original_position: + type: integer + subject_type: + type: string + nullable: true + commit_id: + type: string + user: + title: User + type: object + nullable: true + properties: + avatar_url: + type: string + format: uri + deleted: + type: boolean + email: + type: string + nullable: true + events_url: + type: string + format: uri-template + followers_url: + type: string + format: uri + following_url: + type: string + format: uri-template + gists_url: + type: string + format: uri-template + gravatar_id: + type: string + html_url: + type: string + format: uri + id: + type: integer + format: int64 + login: + type: string + name: + type: string + node_id: + type: string + organizations_url: + type: string + format: uri + received_events_url: + type: string + format: uri + repos_url: + type: string + format: uri + site_admin: + type: boolean + starred_url: + type: string + format: uri-template + subscriptions_url: + type: string + format: uri + type: + type: string + enum: + - Bot + - User + - Organization + url: + type: string + format: uri + user_view_type: + type: string + body: + type: string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + html_url: + type: string + format: uri + pull_request_url: + type: string + format: uri + _links: + type: object + properties: + html: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + pull_request: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + self: + title: Link + type: object + properties: + href: + type: string + format: uri-template + required: + - href + required: + - self + - html + - pull_request + original_commit_id: + type: string + reactions: + title: Reactions + type: object + properties: + "+1": + type: integer + "-1": + type: integer + confused: + type: integer + eyes: + type: integer + heart: + type: integer + hooray: + type: integer + laugh: + type: integer + rocket: + type: integer + total_count: + type: integer + url: + type: string + format: uri + in_reply_to_id: + type: integer + required: + - url + - pull_request_review_id + - id + - node_id + - diff_hunk + - path + - position + - original_position + - commit_id + - original_commit_id + - user + - body + - created_at + - updated_at + - html_url + - pull_request_url + - _links + - reactions + required: + - action + - comment + - pull_request + pull-request-review-event: + title: PullRequestReviewEvent + type: object + properties: + action: + type: string + review: + type: object + properties: + id: + type: integer + node_id: + type: string + user: + "$ref": "#/components/schemas/nullable-simple-user" + body: + type: string + commit_id: + type: string + submitted_at: + type: string + nullable: true + state: + type: string + html_url: + type: string + format: uri + pull_request_url: + type: string + format: uri + _links: + type: object + properties: + html: + type: object + properties: + href: + type: string + required: + - href + pull_request: + type: object + properties: + href: + type: string + required: + - href + required: + - html + - pull_request + updated_at: + type: string + pull_request: + "$ref": "#/components/schemas/pull-request-minimal" + required: + - action + - review + - pull_request + commit-comment-event: + title: CommitCommentEvent + type: object + properties: + action: + type: string + comment: + type: object + properties: + html_url: + type: string + format: uri + url: + type: string + format: uri + id: + type: integer + node_id: + type: string + body: + type: string + path: + type: string + nullable: true + position: + type: integer + nullable: true + line: + type: integer + nullable: true + commit_id: + type: string + user: + "$ref": "#/components/schemas/nullable-simple-user" + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + reactions: + "$ref": "#/components/schemas/reaction-rollup" + required: + - action + - comment + release-event: + title: ReleaseEvent + type: object + properties: + action: + type: string + release: + allOf: + - "$ref": "#/components/schemas/release" + - type: object + properties: + is_short_description_html_truncated: + type: boolean + short_description_html: + type: string + required: + - action + - release + watch-event: + title: WatchEvent + type: object + properties: + action: + type: string + required: + - action + examples: + root: + value: + current_user_url: https://api.github.com/user + current_user_authorizations_html_url: https://github.com/settings/connections/applications{/client_id} + authorizations_url: https://api.github.com/authorizations + code_search_url: https://api.github.com/search/code?q={query}{&page,per_page,sort,order} + commit_search_url: https://api.github.com/search/commits?q={query}{&page,per_page,sort,order} + emails_url: https://api.github.com/user/emails + emojis_url: https://api.github.com/emojis + events_url: https://api.github.com/events + feeds_url: https://api.github.com/feeds + followers_url: https://api.github.com/user/followers + following_url: https://api.github.com/user/following{/target} + gists_url: https://api.github.com/gists{/gist_id} + hub_url: https://api.github.com/hub + issue_search_url: https://api.github.com/search/issues?q={query}{&page,per_page,sort,order} + issues_url: https://api.github.com/issues + keys_url: https://api.github.com/user/keys + label_search_url: https://api.github.com/search/labels?q={query}&repository_id={repository_id}{&page,per_page} + notifications_url: https://api.github.com/notifications + organization_url: https://api.github.com/orgs/{org} + organization_repositories_url: https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort} + organization_teams_url: https://api.github.com/orgs/{org}/teams + public_gists_url: https://api.github.com/gists/public + rate_limit_url: https://api.github.com/rate_limit + repository_url: https://api.github.com/repos/{owner}/{repo} + repository_search_url: https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order} + current_user_repositories_url: https://api.github.com/user/repos{?type,page,per_page,sort} + starred_url: https://api.github.com/user/starred{/owner}{/repo} + starred_gists_url: https://api.github.com/gists/starred + topic_search_url: https://api.github.com/search/topics?q={query}{&page,per_page} + user_url: https://api.github.com/users/{user} + user_organizations_url: https://api.github.com/user/orgs + user_repositories_url: https://api.github.com/users/{user}/repos{?type,page,per_page,sort} + user_search_url: https://api.github.com/search/users?q={query}{&page,per_page,sort,order} + global-advisory-items: + value: + - id: 1 + ghsa_id: GHSA-abcd-1234-efgh + cve_id: CVE-2050-00000 + url: https://api.github.com/advisories/GHSA-abcd-1234-efgh + html_url: https://github.com/advisories/GHSA-abcd-1234-efgh + repository_advisory_url: https://api.github.com/repos/project/a-package/security-advisories/GHSA-abcd-1234-efgh + summary: Heartbleed security advisory + description: This bug allows an attacker to read portions of the affected + server’s memory, potentially disclosing sensitive information. + type: reviewed + severity: high + source_code_location: https://github.com/project/a-package + identifiers: + - type: GHSA + value: GHSA-abcd-1234-efgh + - type: CVE + value: CVE-2050-00000 + references: + - https://nvd.nist.gov/vuln/detail/CVE-2050-00000 + published_at: '2023-03-23T02:30:56Z' + updated_at: '2023-03-24T02:30:56Z' + github_reviewed_at: '2023-03-23T02:30:56Z' + nvd_published_at: '2023-03-25T02:30:56Z' + withdrawn_at: + vulnerabilities: + - package: + ecosystem: npm + name: a-package + first_patched_version: 1.0.3 + vulnerable_version_range: "<=1.0.2" + vulnerable_functions: + - a_function + cvss: + vector_string: CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H + score: 7.6 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H + score: 7.6 + cvss_v4: + vector_string: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 9.3 + cwes: + - cwe_id: CWE-400 + name: Uncontrolled Resource Consumption + epss: + - percentage: 0.00045 + percentile: 0.16001e0 + credits: + - user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + type: analyst + global-advisory: + value: + ghsa_id: GHSA-abcd-1234-efgh + cve_id: CVE-2050-00000 + url: https://api.github.com/advisories/GHSA-abcd-1234-efgh + html_url: https://github.com/advisories/GHSA-abcd-1234-efgh + repository_advisory_url: https://api.github.com/repos/project/a-package/security-advisories/GHSA-abcd-1234-efgh + summary: A short summary of the advisory. + description: A detailed description of what the advisory entails. + type: reviewed + severity: high + source_code_location: https://github.com/project/a-package + identifiers: + - type: GHSA + value: GHSA-abcd-1234-efgh + - type: CVE + value: CVE-2050-00000 + references: + - https://nvd.nist.gov/vuln/detail/CVE-2050-00000 + published_at: '2023-03-23T02:30:56Z' + updated_at: '2023-03-24T02:30:56Z' + github_reviewed_at: '2023-03-23T02:30:56Z' + nvd_published_at: '2023-03-25T02:30:56Z' + withdrawn_at: + vulnerabilities: + - package: + ecosystem: npm + name: a-package + first_patched_version: 1.0.3 + vulnerable_version_range: "<=1.0.2" + vulnerable_functions: + - a_function + cvss: + vector_string: CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H + score: 7.6 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H + score: 7.6 + cvss_v4: + vector_string: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 9.3 + cwes: + - cwe_id: CWE-400 + name: Uncontrolled Resource Consumption + credits: + - user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + type: analyst + integration: + value: + id: 1 + slug: octoapp + client_id: Iv1.ab1112223334445c + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + integration-from-manifest: + value: + id: 1 + slug: octoapp + node_id: MDxOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + client_id: Iv1.8a61f9b3a7aba766 + client_secret: 1726be1638095a19edd134c77bde3aa2ece1e5d8 + webhook_secret: e340154128314309424b7c8e90325147d99fdafa + pem: | + -----BEGIN RSA PRIVATE KEY----- + MIIEowIBAAKCAQEAuEPzOUE+kiEH1WLiMeBytTEF856j0hOVcSUSUkZxKvqczkWM + 9vo1gDyC7ZXhdH9fKh32aapba3RSsp4ke+giSmYTk2mGR538ShSDxh0OgpJmjiKP + X0Bj4j5sFqfXuCtl9SkH4iueivv4R53ktqM+n6hk98l6hRwC39GVIblAh2lEM4L/ + 6WvYwuQXPMM5OG2Ryh2tDZ1WS5RKfgq+9ksNJ5Q9UtqtqHkO+E63N5OK9sbzpUUm + oNaOl3udTlZD3A8iqwMPVxH4SxgATBPAc+bmjk6BMJ0qIzDcVGTrqrzUiywCTLma + szdk8GjzXtPDmuBgNn+o6s02qVGpyydgEuqmTQIDAQABAoIBACL6AvkjQVVLn8kJ + dBYznJJ4M8ECo+YEgaFwgAHODT0zRQCCgzd+Vxl4YwHmKV2Lr+y2s0drZt8GvYva + KOK8NYYZyi15IlwFyRXmvvykF1UBpSXluYFDH7KaVroWMgRreHcIys5LqVSIb6Bo + gDmK0yBLPp8qR29s2b7ScZRtLaqGJiX+j55rNzrZwxHkxFHyG9OG+u9IsBElcKCP + kYCVE8ZdYexfnKOZbgn2kZB9qu0T/Mdvki8yk3I2bI6xYO24oQmhnT36qnqWoCBX + NuCNsBQgpYZeZET8mEAUmo9d+ABmIHIvSs005agK8xRaP4+6jYgy6WwoejJRF5yd + NBuF7aECgYEA50nZ4FiZYV0vcJDxFYeY3kYOvVuKn8OyW+2rg7JIQTremIjv8FkE + ZnwuF9ZRxgqLxUIfKKfzp/5l5LrycNoj2YKfHKnRejxRWXqG+ZETfxxlmlRns0QG + J4+BYL0CoanDSeA4fuyn4Bv7cy/03TDhfg/Uq0Aeg+hhcPE/vx3ebPsCgYEAy/Pv + eDLssOSdeyIxf0Brtocg6aPXIVaLdus+bXmLg77rJIFytAZmTTW8SkkSczWtucI3 + FI1I6sei/8FdPzAl62/JDdlf7Wd9K7JIotY4TzT7Tm7QU7xpfLLYIP1bOFjN81rk + 77oOD4LsXcosB/U6s1blPJMZ6AlO2EKs10UuR1cCgYBipzuJ2ADEaOz9RLWwi0AH + Pza2Sj+c2epQD9ZivD7Zo/Sid3ZwvGeGF13JyR7kLEdmAkgsHUdu1rI7mAolXMaB + 1pdrsHureeLxGbRM6za3tzMXWv1Il7FQWoPC8ZwXvMOR1VQDv4nzq7vbbA8z8c+c + 57+8tALQHOTDOgQIzwK61QKBgERGVc0EJy4Uag+VY8J4m1ZQKBluqo7TfP6DQ7O8 + M5MX73maB/7yAX8pVO39RjrhJlYACRZNMbK+v/ckEQYdJSSKmGCVe0JrGYDuPtic + I9+IGfSorf7KHPoMmMN6bPYQ7Gjh7a++tgRFTMEc8956Hnt4xGahy9NcglNtBpVN + 6G8jAoGBAMCh028pdzJa/xeBHLLaVB2sc0Fe7993WlsPmnVE779dAz7qMscOtXJK + fgtriltLSSD6rTA9hUAsL/X62rY0wdXuNdijjBb/qvrx7CAV6i37NK1CjABNjsfG + ZM372Ac6zc1EqSrid2IjET1YqyIW2KGLI1R2xbQc98UGlt48OdWu + -----END RSA PRIVATE KEY----- + webhook-config: + value: + content_type: json + insecure_ssl: '0' + secret: "********" + url: https://example.com/webhook + hook-delivery-items: + value: + - id: 12345678 + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + delivered_at: '2019-06-03T00:57:16Z' + redelivery: false + duration: 0.27 + status: OK + status_code: 200 + event: issues + action: opened + installation_id: 123 + repository_id: 456 + throttled_at: '2019-06-03T00:57:16Z' + - id: 123456789 + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + delivered_at: '2019-06-04T00:57:16Z' + redelivery: true + duration: 0.28 + status: OK + status_code: 200 + event: issues + action: opened + installation_id: 123 + repository_id: 456 + throttled_at: + hook-delivery: + value: + id: 12345678 + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + delivered_at: '2019-06-03T00:57:16Z' + redelivery: false + duration: 0.27 + status: OK + status_code: 200 + event: issues + action: opened + installation_id: 123 + repository_id: 456 + url: https://www.example.com + throttled_at: '2019-06-03T00:57:16Z' + request: + headers: + X-GitHub-Delivery: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + X-Hub-Signature-256: sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e + Accept: "*/*" + X-GitHub-Hook-ID: '42' + User-Agent: GitHub-Hookshot/b8c71d8 + X-GitHub-Event: issues + X-GitHub-Hook-Installation-Target-ID: '123' + X-GitHub-Hook-Installation-Target-Type: repository + content-type: application/json + X-Hub-Signature: sha1=a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + payload: + action: opened + issue: + body: foo + repository: + id: 123 + response: + headers: + Content-Type: text/html;charset=utf-8 + payload: ok + integration-installation-request-paginated: + value: + - id: 25381 + node_id: MDEyOkludGVncmF0aW9uMTIzNDU2Nzg5MA== + account: + login: octo-org + id: 6811672 + node_id: MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI= + avatar_url: https://avatars3.githubusercontent.com/u/6811672?v=4 + gravatar_id: '' + url: https://api.github.com/users/octo-org + html_url: https://github.com/octo-org + followers_url: https://api.github.com/users/octo-org/followers + following_url: https://api.github.com/users/octo-org/following{/other_user} + gists_url: https://api.github.com/users/octo-org/gists{/gist_id} + starred_url: https://api.github.com/users/octo-org/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octo-org/subscriptions + organizations_url: https://api.github.com/users/octo-org/orgs + repos_url: https://api.github.com/users/octo-org/repos + events_url: https://api.github.com/users/octo-org/events{/privacy} + received_events_url: https://api.github.com/users/octo-org/received_events + type: Organization + site_admin: false + requester: + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2022-07-08T16:18:44-04:00' + base-installation-items: + value: + - id: 1 + account: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + access_tokens_url: https://api.github.com/app/installations/1/access_tokens + repositories_url: https://api.github.com/installation/repositories + html_url: https://github.com/organizations/github/settings/installations/1 + app_id: 1 + target_id: 1 + target_type: Organization + permissions: + checks: write + metadata: read + contents: read + events: + - push + - pull_request + single_file_name: config.yaml + has_multiple_single_files: true + single_file_paths: + - config.yml + - ".github/issue_TEMPLATE.md" + repository_selection: selected + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + app_slug: github-actions + suspended_at: + suspended_by: + base-installation: + value: + id: 1 + account: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + access_tokens_url: https://api.github.com/app/installations/1/access_tokens + repositories_url: https://api.github.com/installation/repositories + html_url: https://github.com/organizations/github/settings/installations/1 + app_id: 1 + target_id: 1 + target_type: Organization + permissions: + checks: write + metadata: read + contents: read + events: + - push + - pull_request + single_file_name: config.yaml + has_multiple_single_files: true + single_file_paths: + - config.yml + - ".github/issue_TEMPLATE.md" + repository_selection: selected + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + app_slug: github-actions + suspended_at: + suspended_by: + installation-token: + value: + token: ghs_16C7e42F292c6912E7710c838347Ae178B4a + expires_at: '2016-07-11T22:14:10Z' + permissions: + issues: write + contents: read + repository_selection: selected + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + authorization-with-user: + value: + id: 1 + url: https://api.github.com/authorizations/1 + scopes: + - public_repo + - user + token: ghu_16C7e42F292c6912E7710c838347Ae178B4a + token_last_eight: Ae178B4a + hashed_token: 25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8 + app: + url: http://my-github-app.com + name: my github app + client_id: Iv1.8a61f9b3a7aba766 + note: optional note + note_url: http://optional/note/url + updated_at: '2011-09-06T20:39:23Z' + created_at: '2011-09-06T17:26:27Z' + fingerprint: jklmnop12345678 + expires_at: '2011-09-08T17:26:27Z' + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + scope-token: + value: + id: 1 + url: https://api.github.com/authorizations/1 + scopes: [] + token: ghu_16C7e42F292c6912E7710c838347Ae178B4a + token_last_eight: Ae178B4a + hashed_token: 25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8 + app: + url: http://my-github-app.com + name: my github app + client_id: Iv1.8a61f9b3a7aba766 + note: optional note + note_url: http://optional/note/url + updated_at: '2011-09-06T20:39:23Z' + created_at: '2011-09-06T17:26:27Z' + fingerprint: jklmnop12345678 + expires_at: '2011-09-08T17:26:27Z' + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + installation: + permissions: + metadata: read + issues: write + contents: read + repository_selection: selected + single_file_name: ".github/workflow.yml" + repositories_url: https://api.github.com/user/repos + account: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + has_multiple_single_files: false + single_file_paths: [] + classroom-assignment: + value: + id: 12, + public_repo: false, + title: Intro to Binaries + type: individual + invite_link: https://classroom.github.com/a/Lx7jiUgx + invitations_enabled: true, + slug: intro-to-binaries + students_are_repo_admins: false + feedback_pull_requests_enabled: true + max_teams: 0 + max_members: 0 + editor: codespaces + accepted: 100 + submitted: 40 + passing: 10 + language: ruby + deadline: '2011-01-26T19:06:43Z' + stater_code_repository: + id: 1296269 + full_name: octocat/Hello-World + html_url: https://github.com/octocat/Hello-World + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + private: false + default_branch: main + classroom: + id: 1296269 + name: Programming Elixir + archived: false, + url: https://classroom.github.com/classrooms/1-programming-elixir + classroom-accepted-assignment: + value: + id: 12, + submitted: false, + passing: false, + commit_count: 5 + grade: 5/10 + students: + - id: 1 + login: octocat + avatar_url: https://github.com/images/error/octocat_happy.gif + html_url: https://github.com/octocat + repository: + id: 1296269 + full_name: octocat/Hello-World + html_url: https://github.com/octocat/Hello-World + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + private: false + default_branch: main + assignment: + id: 12, + public_repo: false, + title: Intro to Binaries + type: individual + invite_link: https://classroom.github.com/a/Lx7jiUgx + invitations_enabled: true, + slug: intro-to-binaries + students_are_repo_admins: false + feedback_pull_requests_enabled: true + max_teams: 0 + max_members: 0 + editor: codespaces + accepted: 100 + submitted: 40 + passing: 10 + language: ruby + classroom: + id: 1296269 + name: Programming Elixir + archived: false, + url: https://classroom.github.com/classrooms/1-programming-elixir + classroom-assignment-grades: + value: + - assignment_name: Introduction to Strings + assignment_url: https://classroom.github.com/classrooms/1337/assignments/1337 + starter_code_url: '' + github_username: octocat + roster_identifier: octocat@github.com + student_repository_name: intro-to-strings-1337-octocat + student_repository_url: https://github.com/timeforschool/intro-to-strings-1337-octocat + submission_timestamp: 2018-11-12 01:02 + points_awarded: 10 + points_available: 15 + group_name: octocat-and-friends + - assignment_name: Introduction to Strings + assignment_url: https://classroom.github.com/classrooms/1337/assignments/1337 + starter_code_url: '' + github_username: monalisa + roster_identifier: monalisa@github.com + student_repository_name: intro-to-strings-1337-monalisa + student_repository_url: https://github.com/timeforschool/intro-to-strings-1337-monalisa + submission_timestamp: 2018-11-12 01:11 + points_awarded: 15 + points_available: 15 + group_name: monalisa-and-friends + simple-classroom: + value: + id: 1296269 + name: Programming Elixir + archived: false, + url: https://classroom.github.com/classrooms/1-programming-elixir + classroom: + value: + id: 1296269 + name: Programming Elixir + archived: false, + organization: + id: 1 + login: programming-elixir + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + html_url: https://github.com/programming-elixir + name: Learn how to build fault tolerant applications + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + url: https://classroom.github.com/classrooms/1-programming-elixir + simple-classroom-assignment: + value: + id: 12, + public_repo: false, + title: Intro to Binaries + type: individual + invite_link: https://classroom.github.com/a/Lx7jiUgx + invitations_enabled: true, + slug: intro-to-binaries + students_are_repo_admins: false + feedback_pull_requests_enabled: true + max_teams: 0 + max_members: 0 + editor: codespaces + accepted: 100 + submitted: 40 + passing: 10 + language: ruby + deadline: '2020-01-11T11:59:22Z' + classroom: + id: 1296269 + name: Programming Elixir + archived: false, + url: https://classroom.github.com/classrooms/1-programming-elixir + code-of-conduct-simple-items: + value: + - key: citizen_code_of_conduct + name: Citizen Code of Conduct + url: https://api.github.com/codes_of_conduct/citizen_code_of_conduct + html_url: http://citizencodeofconduct.org/ + - key: contributor_covenant + name: Contributor Covenant + url: https://api.github.com/codes_of_conduct/contributor_covenant + html_url: https://www.contributor-covenant.org/version/2/0/code_of_conduct/ + code-of-conduct: + value: + key: contributor_covenant + name: Contributor Covenant + url: https://api.github.com/codes_of_conduct/contributor_covenant + body: | + # Contributor Covenant Code of Conduct + + ## Our Pledge + + In 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. + + ## Our Standards + + Examples of behavior that contributes to creating a positive environment include: + + * Using welcoming and inclusive language + * Being respectful of differing viewpoints and experiences + * Gracefully accepting constructive criticism + * Focusing on what is best for the community + * Showing empathy towards other community members + + Examples of unacceptable behavior by participants include: + + * The use of sexualized language or imagery and unwelcome sexual attention or advances + * Trolling, insulting/derogatory comments, and personal or political attacks + * Public or private harassment + * Publishing others' private information, such as a physical or electronic address, without explicit permission + * Other conduct which could reasonably be considered inappropriate in a professional setting + + ## Our Responsibilities + + Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response + to any instances of unacceptable behavior. + + Project 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. + + ## Scope + + This 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, + 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. + + ## Enforcement + + Instances 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. + + Project 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. + + ## Attribution + + This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/). + html_url: http://contributor-covenant.org/version/1/4/ + emojis-get: + value: + "+1": https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png?v8 + "-1": https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png?v8 + '100': https://github.githubassets.com/images/icons/emoji/unicode/1f4af.png?v8 + '1234': https://github.githubassets.com/images/icons/emoji/unicode/1f522.png?v8 + 1st_place_medal: https://github.githubassets.com/images/icons/emoji/unicode/1f947.png?v8 + 2nd_place_medal: https://github.githubassets.com/images/icons/emoji/unicode/1f948.png?v8 + 3rd_place_medal: https://github.githubassets.com/images/icons/emoji/unicode/1f949.png?v8 + 8ball: https://github.githubassets.com/images/icons/emoji/unicode/1f3b1.png?v8 + a: https://github.githubassets.com/images/icons/emoji/unicode/1f170.png?v8 + ab: https://github.githubassets.com/images/icons/emoji/unicode/1f18e.png?v8 + abacus: https://github.githubassets.com/images/icons/emoji/unicode/1f9ee.png?v8 + abc: https://github.githubassets.com/images/icons/emoji/unicode/1f524.png?v8 + abcd: https://github.githubassets.com/images/icons/emoji/unicode/1f521.png?v8 + accept: https://github.githubassets.com/images/icons/emoji/unicode/1f251.png?v8 + accessibility: https://github.githubassets.com/images/icons/emoji/accessibility.png?v8 + accordion: https://github.githubassets.com/images/icons/emoji/unicode/1fa97.png?v8 + adhesive_bandage: https://github.githubassets.com/images/icons/emoji/unicode/1fa79.png?v8 + adult: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1.png?v8 + aerial_tramway: https://github.githubassets.com/images/icons/emoji/unicode/1f6a1.png?v8 + afghanistan: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1eb.png?v8 + airplane: https://github.githubassets.com/images/icons/emoji/unicode/2708.png?v8 + aland_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1fd.png?v8 + alarm_clock: https://github.githubassets.com/images/icons/emoji/unicode/23f0.png?v8 + albania: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f1.png?v8 + alembic: https://github.githubassets.com/images/icons/emoji/unicode/2697.png?v8 + algeria: https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ff.png?v8 + alien: https://github.githubassets.com/images/icons/emoji/unicode/1f47d.png?v8 + ambulance: https://github.githubassets.com/images/icons/emoji/unicode/1f691.png?v8 + american_samoa: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f8.png?v8 + amphora: https://github.githubassets.com/images/icons/emoji/unicode/1f3fa.png?v8 + anatomical_heart: https://github.githubassets.com/images/icons/emoji/unicode/1fac0.png?v8 + anchor: https://github.githubassets.com/images/icons/emoji/unicode/2693.png?v8 + andorra: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1e9.png?v8 + angel: https://github.githubassets.com/images/icons/emoji/unicode/1f47c.png?v8 + anger: https://github.githubassets.com/images/icons/emoji/unicode/1f4a2.png?v8 + angola: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f4.png?v8 + angry: https://github.githubassets.com/images/icons/emoji/unicode/1f620.png?v8 + anguilla: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ee.png?v8 + anguished: https://github.githubassets.com/images/icons/emoji/unicode/1f627.png?v8 + ant: https://github.githubassets.com/images/icons/emoji/unicode/1f41c.png?v8 + antarctica: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f6.png?v8 + antigua_barbuda: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ec.png?v8 + apple: https://github.githubassets.com/images/icons/emoji/unicode/1f34e.png?v8 + aquarius: https://github.githubassets.com/images/icons/emoji/unicode/2652.png?v8 + argentina: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f7.png?v8 + aries: https://github.githubassets.com/images/icons/emoji/unicode/2648.png?v8 + armenia: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f2.png?v8 + arrow_backward: https://github.githubassets.com/images/icons/emoji/unicode/25c0.png?v8 + arrow_double_down: https://github.githubassets.com/images/icons/emoji/unicode/23ec.png?v8 + arrow_double_up: https://github.githubassets.com/images/icons/emoji/unicode/23eb.png?v8 + arrow_down: https://github.githubassets.com/images/icons/emoji/unicode/2b07.png?v8 + arrow_down_small: https://github.githubassets.com/images/icons/emoji/unicode/1f53d.png?v8 + arrow_forward: https://github.githubassets.com/images/icons/emoji/unicode/25b6.png?v8 + arrow_heading_down: https://github.githubassets.com/images/icons/emoji/unicode/2935.png?v8 + arrow_heading_up: https://github.githubassets.com/images/icons/emoji/unicode/2934.png?v8 + arrow_left: https://github.githubassets.com/images/icons/emoji/unicode/2b05.png?v8 + arrow_lower_left: https://github.githubassets.com/images/icons/emoji/unicode/2199.png?v8 + arrow_lower_right: https://github.githubassets.com/images/icons/emoji/unicode/2198.png?v8 + arrow_right: https://github.githubassets.com/images/icons/emoji/unicode/27a1.png?v8 + arrow_right_hook: https://github.githubassets.com/images/icons/emoji/unicode/21aa.png?v8 + arrow_up: https://github.githubassets.com/images/icons/emoji/unicode/2b06.png?v8 + arrow_up_down: https://github.githubassets.com/images/icons/emoji/unicode/2195.png?v8 + arrow_up_small: https://github.githubassets.com/images/icons/emoji/unicode/1f53c.png?v8 + arrow_upper_left: https://github.githubassets.com/images/icons/emoji/unicode/2196.png?v8 + arrow_upper_right: https://github.githubassets.com/images/icons/emoji/unicode/2197.png?v8 + arrows_clockwise: https://github.githubassets.com/images/icons/emoji/unicode/1f503.png?v8 + arrows_counterclockwise: https://github.githubassets.com/images/icons/emoji/unicode/1f504.png?v8 + art: https://github.githubassets.com/images/icons/emoji/unicode/1f3a8.png?v8 + articulated_lorry: https://github.githubassets.com/images/icons/emoji/unicode/1f69b.png?v8 + artificial_satellite: https://github.githubassets.com/images/icons/emoji/unicode/1f6f0.png?v8 + artist: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3a8.png?v8 + aruba: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1fc.png?v8 + ascension_island: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1e8.png?v8 + asterisk: https://github.githubassets.com/images/icons/emoji/unicode/002a-20e3.png?v8 + astonished: https://github.githubassets.com/images/icons/emoji/unicode/1f632.png?v8 + astronaut: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f680.png?v8 + athletic_shoe: https://github.githubassets.com/images/icons/emoji/unicode/1f45f.png?v8 + atm: https://github.githubassets.com/images/icons/emoji/unicode/1f3e7.png?v8 + atom: https://github.githubassets.com/images/icons/emoji/atom.png?v8 + atom_symbol: https://github.githubassets.com/images/icons/emoji/unicode/269b.png?v8 + australia: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1fa.png?v8 + austria: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f9.png?v8 + auto_rickshaw: https://github.githubassets.com/images/icons/emoji/unicode/1f6fa.png?v8 + avocado: https://github.githubassets.com/images/icons/emoji/unicode/1f951.png?v8 + axe: https://github.githubassets.com/images/icons/emoji/unicode/1fa93.png?v8 + azerbaijan: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ff.png?v8 + b: https://github.githubassets.com/images/icons/emoji/unicode/1f171.png?v8 + baby: https://github.githubassets.com/images/icons/emoji/unicode/1f476.png?v8 + baby_bottle: https://github.githubassets.com/images/icons/emoji/unicode/1f37c.png?v8 + baby_chick: https://github.githubassets.com/images/icons/emoji/unicode/1f424.png?v8 + baby_symbol: https://github.githubassets.com/images/icons/emoji/unicode/1f6bc.png?v8 + back: https://github.githubassets.com/images/icons/emoji/unicode/1f519.png?v8 + bacon: https://github.githubassets.com/images/icons/emoji/unicode/1f953.png?v8 + badger: https://github.githubassets.com/images/icons/emoji/unicode/1f9a1.png?v8 + badminton: https://github.githubassets.com/images/icons/emoji/unicode/1f3f8.png?v8 + bagel: https://github.githubassets.com/images/icons/emoji/unicode/1f96f.png?v8 + baggage_claim: https://github.githubassets.com/images/icons/emoji/unicode/1f6c4.png?v8 + baguette_bread: https://github.githubassets.com/images/icons/emoji/unicode/1f956.png?v8 + bahamas: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f8.png?v8 + bahrain: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ed.png?v8 + balance_scale: https://github.githubassets.com/images/icons/emoji/unicode/2696.png?v8 + bald_man: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b2.png?v8 + bald_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b2.png?v8 + ballet_shoes: https://github.githubassets.com/images/icons/emoji/unicode/1fa70.png?v8 + balloon: https://github.githubassets.com/images/icons/emoji/unicode/1f388.png?v8 + ballot_box: https://github.githubassets.com/images/icons/emoji/unicode/1f5f3.png?v8 + ballot_box_with_check: https://github.githubassets.com/images/icons/emoji/unicode/2611.png?v8 + bamboo: https://github.githubassets.com/images/icons/emoji/unicode/1f38d.png?v8 + banana: https://github.githubassets.com/images/icons/emoji/unicode/1f34c.png?v8 + bangbang: https://github.githubassets.com/images/icons/emoji/unicode/203c.png?v8 + bangladesh: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1e9.png?v8 + banjo: https://github.githubassets.com/images/icons/emoji/unicode/1fa95.png?v8 + bank: https://github.githubassets.com/images/icons/emoji/unicode/1f3e6.png?v8 + bar_chart: https://github.githubassets.com/images/icons/emoji/unicode/1f4ca.png?v8 + barbados: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1e7.png?v8 + barber: https://github.githubassets.com/images/icons/emoji/unicode/1f488.png?v8 + baseball: https://github.githubassets.com/images/icons/emoji/unicode/26be.png?v8 + basecamp: https://github.githubassets.com/images/icons/emoji/basecamp.png?v8 + basecampy: https://github.githubassets.com/images/icons/emoji/basecampy.png?v8 + basket: https://github.githubassets.com/images/icons/emoji/unicode/1f9fa.png?v8 + basketball: https://github.githubassets.com/images/icons/emoji/unicode/1f3c0.png?v8 + basketball_man: https://github.githubassets.com/images/icons/emoji/unicode/26f9-2642.png?v8 + basketball_woman: https://github.githubassets.com/images/icons/emoji/unicode/26f9-2640.png?v8 + bat: https://github.githubassets.com/images/icons/emoji/unicode/1f987.png?v8 + bath: https://github.githubassets.com/images/icons/emoji/unicode/1f6c0.png?v8 + bathtub: https://github.githubassets.com/images/icons/emoji/unicode/1f6c1.png?v8 + battery: https://github.githubassets.com/images/icons/emoji/unicode/1f50b.png?v8 + beach_umbrella: https://github.githubassets.com/images/icons/emoji/unicode/1f3d6.png?v8 + bear: https://github.githubassets.com/images/icons/emoji/unicode/1f43b.png?v8 + bearded_person: https://github.githubassets.com/images/icons/emoji/unicode/1f9d4.png?v8 + beaver: https://github.githubassets.com/images/icons/emoji/unicode/1f9ab.png?v8 + bed: https://github.githubassets.com/images/icons/emoji/unicode/1f6cf.png?v8 + bee: https://github.githubassets.com/images/icons/emoji/unicode/1f41d.png?v8 + beer: https://github.githubassets.com/images/icons/emoji/unicode/1f37a.png?v8 + beers: https://github.githubassets.com/images/icons/emoji/unicode/1f37b.png?v8 + beetle: https://github.githubassets.com/images/icons/emoji/unicode/1fab2.png?v8 + beginner: https://github.githubassets.com/images/icons/emoji/unicode/1f530.png?v8 + belarus: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1fe.png?v8 + belgium: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ea.png?v8 + belize: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ff.png?v8 + bell: https://github.githubassets.com/images/icons/emoji/unicode/1f514.png?v8 + bell_pepper: https://github.githubassets.com/images/icons/emoji/unicode/1fad1.png?v8 + bellhop_bell: https://github.githubassets.com/images/icons/emoji/unicode/1f6ce.png?v8 + benin: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ef.png?v8 + bento: https://github.githubassets.com/images/icons/emoji/unicode/1f371.png?v8 + bermuda: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f2.png?v8 + beverage_box: https://github.githubassets.com/images/icons/emoji/unicode/1f9c3.png?v8 + bhutan: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f9.png?v8 + bicyclist: https://github.githubassets.com/images/icons/emoji/unicode/1f6b4.png?v8 + bike: https://github.githubassets.com/images/icons/emoji/unicode/1f6b2.png?v8 + biking_man: https://github.githubassets.com/images/icons/emoji/unicode/1f6b4-2642.png?v8 + biking_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f6b4-2640.png?v8 + bikini: https://github.githubassets.com/images/icons/emoji/unicode/1f459.png?v8 + billed_cap: https://github.githubassets.com/images/icons/emoji/unicode/1f9e2.png?v8 + biohazard: https://github.githubassets.com/images/icons/emoji/unicode/2623.png?v8 + bird: https://github.githubassets.com/images/icons/emoji/unicode/1f426.png?v8 + birthday: https://github.githubassets.com/images/icons/emoji/unicode/1f382.png?v8 + bison: https://github.githubassets.com/images/icons/emoji/unicode/1f9ac.png?v8 + black_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f408-2b1b.png?v8 + black_circle: https://github.githubassets.com/images/icons/emoji/unicode/26ab.png?v8 + black_flag: https://github.githubassets.com/images/icons/emoji/unicode/1f3f4.png?v8 + black_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f5a4.png?v8 + black_joker: https://github.githubassets.com/images/icons/emoji/unicode/1f0cf.png?v8 + black_large_square: https://github.githubassets.com/images/icons/emoji/unicode/2b1b.png?v8 + black_medium_small_square: https://github.githubassets.com/images/icons/emoji/unicode/25fe.png?v8 + black_medium_square: https://github.githubassets.com/images/icons/emoji/unicode/25fc.png?v8 + black_nib: https://github.githubassets.com/images/icons/emoji/unicode/2712.png?v8 + black_small_square: https://github.githubassets.com/images/icons/emoji/unicode/25aa.png?v8 + black_square_button: https://github.githubassets.com/images/icons/emoji/unicode/1f532.png?v8 + blond_haired_man: https://github.githubassets.com/images/icons/emoji/unicode/1f471-2642.png?v8 + blond_haired_person: https://github.githubassets.com/images/icons/emoji/unicode/1f471.png?v8 + blond_haired_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f471-2640.png?v8 + blonde_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f471-2640.png?v8 + blossom: https://github.githubassets.com/images/icons/emoji/unicode/1f33c.png?v8 + blowfish: https://github.githubassets.com/images/icons/emoji/unicode/1f421.png?v8 + blue_book: https://github.githubassets.com/images/icons/emoji/unicode/1f4d8.png?v8 + blue_car: https://github.githubassets.com/images/icons/emoji/unicode/1f699.png?v8 + blue_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f499.png?v8 + blue_square: https://github.githubassets.com/images/icons/emoji/unicode/1f7e6.png?v8 + blueberries: https://github.githubassets.com/images/icons/emoji/unicode/1fad0.png?v8 + blush: https://github.githubassets.com/images/icons/emoji/unicode/1f60a.png?v8 + boar: https://github.githubassets.com/images/icons/emoji/unicode/1f417.png?v8 + boat: https://github.githubassets.com/images/icons/emoji/unicode/26f5.png?v8 + bolivia: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f4.png?v8 + bomb: https://github.githubassets.com/images/icons/emoji/unicode/1f4a3.png?v8 + bone: https://github.githubassets.com/images/icons/emoji/unicode/1f9b4.png?v8 + book: https://github.githubassets.com/images/icons/emoji/unicode/1f4d6.png?v8 + bookmark: https://github.githubassets.com/images/icons/emoji/unicode/1f516.png?v8 + bookmark_tabs: https://github.githubassets.com/images/icons/emoji/unicode/1f4d1.png?v8 + books: https://github.githubassets.com/images/icons/emoji/unicode/1f4da.png?v8 + boom: https://github.githubassets.com/images/icons/emoji/unicode/1f4a5.png?v8 + boomerang: https://github.githubassets.com/images/icons/emoji/unicode/1fa83.png?v8 + boot: https://github.githubassets.com/images/icons/emoji/unicode/1f462.png?v8 + bosnia_herzegovina: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1e6.png?v8 + botswana: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1fc.png?v8 + bouncing_ball_man: https://github.githubassets.com/images/icons/emoji/unicode/26f9-2642.png?v8 + bouncing_ball_person: https://github.githubassets.com/images/icons/emoji/unicode/26f9.png?v8 + bouncing_ball_woman: https://github.githubassets.com/images/icons/emoji/unicode/26f9-2640.png?v8 + bouquet: https://github.githubassets.com/images/icons/emoji/unicode/1f490.png?v8 + bouvet_island: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1fb.png?v8 + bow: https://github.githubassets.com/images/icons/emoji/unicode/1f647.png?v8 + bow_and_arrow: https://github.githubassets.com/images/icons/emoji/unicode/1f3f9.png?v8 + bowing_man: https://github.githubassets.com/images/icons/emoji/unicode/1f647-2642.png?v8 + bowing_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f647-2640.png?v8 + bowl_with_spoon: https://github.githubassets.com/images/icons/emoji/unicode/1f963.png?v8 + bowling: https://github.githubassets.com/images/icons/emoji/unicode/1f3b3.png?v8 + bowtie: https://github.githubassets.com/images/icons/emoji/bowtie.png?v8 + boxing_glove: https://github.githubassets.com/images/icons/emoji/unicode/1f94a.png?v8 + boy: https://github.githubassets.com/images/icons/emoji/unicode/1f466.png?v8 + brain: https://github.githubassets.com/images/icons/emoji/unicode/1f9e0.png?v8 + brazil: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f7.png?v8 + bread: https://github.githubassets.com/images/icons/emoji/unicode/1f35e.png?v8 + breast_feeding: https://github.githubassets.com/images/icons/emoji/unicode/1f931.png?v8 + bricks: https://github.githubassets.com/images/icons/emoji/unicode/1f9f1.png?v8 + bride_with_veil: https://github.githubassets.com/images/icons/emoji/unicode/1f470-2640.png?v8 + bridge_at_night: https://github.githubassets.com/images/icons/emoji/unicode/1f309.png?v8 + briefcase: https://github.githubassets.com/images/icons/emoji/unicode/1f4bc.png?v8 + british_indian_ocean_territory: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f4.png?v8 + british_virgin_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1ec.png?v8 + broccoli: https://github.githubassets.com/images/icons/emoji/unicode/1f966.png?v8 + broken_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f494.png?v8 + broom: https://github.githubassets.com/images/icons/emoji/unicode/1f9f9.png?v8 + brown_circle: https://github.githubassets.com/images/icons/emoji/unicode/1f7e4.png?v8 + brown_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f90e.png?v8 + brown_square: https://github.githubassets.com/images/icons/emoji/unicode/1f7eb.png?v8 + brunei: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f3.png?v8 + bubble_tea: https://github.githubassets.com/images/icons/emoji/unicode/1f9cb.png?v8 + bucket: https://github.githubassets.com/images/icons/emoji/unicode/1faa3.png?v8 + bug: https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png?v8 + building_construction: https://github.githubassets.com/images/icons/emoji/unicode/1f3d7.png?v8 + bulb: https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png?v8 + bulgaria: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ec.png?v8 + bullettrain_front: https://github.githubassets.com/images/icons/emoji/unicode/1f685.png?v8 + bullettrain_side: https://github.githubassets.com/images/icons/emoji/unicode/1f684.png?v8 + burkina_faso: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1eb.png?v8 + burrito: https://github.githubassets.com/images/icons/emoji/unicode/1f32f.png?v8 + burundi: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ee.png?v8 + bus: https://github.githubassets.com/images/icons/emoji/unicode/1f68c.png?v8 + business_suit_levitating: https://github.githubassets.com/images/icons/emoji/unicode/1f574.png?v8 + busstop: https://github.githubassets.com/images/icons/emoji/unicode/1f68f.png?v8 + bust_in_silhouette: https://github.githubassets.com/images/icons/emoji/unicode/1f464.png?v8 + busts_in_silhouette: https://github.githubassets.com/images/icons/emoji/unicode/1f465.png?v8 + butter: https://github.githubassets.com/images/icons/emoji/unicode/1f9c8.png?v8 + butterfly: https://github.githubassets.com/images/icons/emoji/unicode/1f98b.png?v8 + cactus: https://github.githubassets.com/images/icons/emoji/unicode/1f335.png?v8 + cake: https://github.githubassets.com/images/icons/emoji/unicode/1f370.png?v8 + calendar: https://github.githubassets.com/images/icons/emoji/unicode/1f4c6.png?v8 + call_me_hand: https://github.githubassets.com/images/icons/emoji/unicode/1f919.png?v8 + calling: https://github.githubassets.com/images/icons/emoji/unicode/1f4f2.png?v8 + cambodia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ed.png?v8 + camel: https://github.githubassets.com/images/icons/emoji/unicode/1f42b.png?v8 + camera: https://github.githubassets.com/images/icons/emoji/unicode/1f4f7.png?v8 + camera_flash: https://github.githubassets.com/images/icons/emoji/unicode/1f4f8.png?v8 + cameroon: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f2.png?v8 + camping: https://github.githubassets.com/images/icons/emoji/unicode/1f3d5.png?v8 + canada: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1e6.png?v8 + canary_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1e8.png?v8 + cancer: https://github.githubassets.com/images/icons/emoji/unicode/264b.png?v8 + candle: https://github.githubassets.com/images/icons/emoji/unicode/1f56f.png?v8 + candy: https://github.githubassets.com/images/icons/emoji/unicode/1f36c.png?v8 + canned_food: https://github.githubassets.com/images/icons/emoji/unicode/1f96b.png?v8 + canoe: https://github.githubassets.com/images/icons/emoji/unicode/1f6f6.png?v8 + cape_verde: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fb.png?v8 + capital_abcd: https://github.githubassets.com/images/icons/emoji/unicode/1f520.png?v8 + capricorn: https://github.githubassets.com/images/icons/emoji/unicode/2651.png?v8 + car: https://github.githubassets.com/images/icons/emoji/unicode/1f697.png?v8 + card_file_box: https://github.githubassets.com/images/icons/emoji/unicode/1f5c3.png?v8 + card_index: https://github.githubassets.com/images/icons/emoji/unicode/1f4c7.png?v8 + card_index_dividers: https://github.githubassets.com/images/icons/emoji/unicode/1f5c2.png?v8 + caribbean_netherlands: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f6.png?v8 + carousel_horse: https://github.githubassets.com/images/icons/emoji/unicode/1f3a0.png?v8 + carpentry_saw: https://github.githubassets.com/images/icons/emoji/unicode/1fa9a.png?v8 + carrot: https://github.githubassets.com/images/icons/emoji/unicode/1f955.png?v8 + cartwheeling: https://github.githubassets.com/images/icons/emoji/unicode/1f938.png?v8 + cat: https://github.githubassets.com/images/icons/emoji/unicode/1f431.png?v8 + cat2: https://github.githubassets.com/images/icons/emoji/unicode/1f408.png?v8 + cayman_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1fe.png?v8 + cd: https://github.githubassets.com/images/icons/emoji/unicode/1f4bf.png?v8 + central_african_republic: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1eb.png?v8 + ceuta_melilla: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1e6.png?v8 + chad: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1e9.png?v8 + chains: https://github.githubassets.com/images/icons/emoji/unicode/26d3.png?v8 + chair: https://github.githubassets.com/images/icons/emoji/unicode/1fa91.png?v8 + champagne: https://github.githubassets.com/images/icons/emoji/unicode/1f37e.png?v8 + chart: https://github.githubassets.com/images/icons/emoji/unicode/1f4b9.png?v8 + chart_with_downwards_trend: https://github.githubassets.com/images/icons/emoji/unicode/1f4c9.png?v8 + chart_with_upwards_trend: https://github.githubassets.com/images/icons/emoji/unicode/1f4c8.png?v8 + checkered_flag: https://github.githubassets.com/images/icons/emoji/unicode/1f3c1.png?v8 + cheese: https://github.githubassets.com/images/icons/emoji/unicode/1f9c0.png?v8 + cherries: https://github.githubassets.com/images/icons/emoji/unicode/1f352.png?v8 + cherry_blossom: https://github.githubassets.com/images/icons/emoji/unicode/1f338.png?v8 + chess_pawn: https://github.githubassets.com/images/icons/emoji/unicode/265f.png?v8 + chestnut: https://github.githubassets.com/images/icons/emoji/unicode/1f330.png?v8 + chicken: https://github.githubassets.com/images/icons/emoji/unicode/1f414.png?v8 + child: https://github.githubassets.com/images/icons/emoji/unicode/1f9d2.png?v8 + children_crossing: https://github.githubassets.com/images/icons/emoji/unicode/1f6b8.png?v8 + chile: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f1.png?v8 + chipmunk: https://github.githubassets.com/images/icons/emoji/unicode/1f43f.png?v8 + chocolate_bar: https://github.githubassets.com/images/icons/emoji/unicode/1f36b.png?v8 + chopsticks: https://github.githubassets.com/images/icons/emoji/unicode/1f962.png?v8 + christmas_island: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fd.png?v8 + christmas_tree: https://github.githubassets.com/images/icons/emoji/unicode/1f384.png?v8 + church: https://github.githubassets.com/images/icons/emoji/unicode/26ea.png?v8 + cinema: https://github.githubassets.com/images/icons/emoji/unicode/1f3a6.png?v8 + circus_tent: https://github.githubassets.com/images/icons/emoji/unicode/1f3aa.png?v8 + city_sunrise: https://github.githubassets.com/images/icons/emoji/unicode/1f307.png?v8 + city_sunset: https://github.githubassets.com/images/icons/emoji/unicode/1f306.png?v8 + cityscape: https://github.githubassets.com/images/icons/emoji/unicode/1f3d9.png?v8 + cl: https://github.githubassets.com/images/icons/emoji/unicode/1f191.png?v8 + clamp: https://github.githubassets.com/images/icons/emoji/unicode/1f5dc.png?v8 + clap: https://github.githubassets.com/images/icons/emoji/unicode/1f44f.png?v8 + clapper: https://github.githubassets.com/images/icons/emoji/unicode/1f3ac.png?v8 + classical_building: https://github.githubassets.com/images/icons/emoji/unicode/1f3db.png?v8 + climbing: https://github.githubassets.com/images/icons/emoji/unicode/1f9d7.png?v8 + climbing_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9d7-2642.png?v8 + climbing_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9d7-2640.png?v8 + clinking_glasses: https://github.githubassets.com/images/icons/emoji/unicode/1f942.png?v8 + clipboard: https://github.githubassets.com/images/icons/emoji/unicode/1f4cb.png?v8 + clipperton_island: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f5.png?v8 + clock1: https://github.githubassets.com/images/icons/emoji/unicode/1f550.png?v8 + clock10: https://github.githubassets.com/images/icons/emoji/unicode/1f559.png?v8 + clock1030: https://github.githubassets.com/images/icons/emoji/unicode/1f565.png?v8 + clock11: https://github.githubassets.com/images/icons/emoji/unicode/1f55a.png?v8 + clock1130: https://github.githubassets.com/images/icons/emoji/unicode/1f566.png?v8 + clock12: https://github.githubassets.com/images/icons/emoji/unicode/1f55b.png?v8 + clock1230: https://github.githubassets.com/images/icons/emoji/unicode/1f567.png?v8 + clock130: https://github.githubassets.com/images/icons/emoji/unicode/1f55c.png?v8 + clock2: https://github.githubassets.com/images/icons/emoji/unicode/1f551.png?v8 + clock230: https://github.githubassets.com/images/icons/emoji/unicode/1f55d.png?v8 + clock3: https://github.githubassets.com/images/icons/emoji/unicode/1f552.png?v8 + clock330: https://github.githubassets.com/images/icons/emoji/unicode/1f55e.png?v8 + clock4: https://github.githubassets.com/images/icons/emoji/unicode/1f553.png?v8 + clock430: https://github.githubassets.com/images/icons/emoji/unicode/1f55f.png?v8 + clock5: https://github.githubassets.com/images/icons/emoji/unicode/1f554.png?v8 + clock530: https://github.githubassets.com/images/icons/emoji/unicode/1f560.png?v8 + clock6: https://github.githubassets.com/images/icons/emoji/unicode/1f555.png?v8 + clock630: https://github.githubassets.com/images/icons/emoji/unicode/1f561.png?v8 + clock7: https://github.githubassets.com/images/icons/emoji/unicode/1f556.png?v8 + clock730: https://github.githubassets.com/images/icons/emoji/unicode/1f562.png?v8 + clock8: https://github.githubassets.com/images/icons/emoji/unicode/1f557.png?v8 + clock830: https://github.githubassets.com/images/icons/emoji/unicode/1f563.png?v8 + clock9: https://github.githubassets.com/images/icons/emoji/unicode/1f558.png?v8 + clock930: https://github.githubassets.com/images/icons/emoji/unicode/1f564.png?v8 + closed_book: https://github.githubassets.com/images/icons/emoji/unicode/1f4d5.png?v8 + closed_lock_with_key: https://github.githubassets.com/images/icons/emoji/unicode/1f510.png?v8 + closed_umbrella: https://github.githubassets.com/images/icons/emoji/unicode/1f302.png?v8 + cloud: https://github.githubassets.com/images/icons/emoji/unicode/2601.png?v8 + cloud_with_lightning: https://github.githubassets.com/images/icons/emoji/unicode/1f329.png?v8 + cloud_with_lightning_and_rain: https://github.githubassets.com/images/icons/emoji/unicode/26c8.png?v8 + cloud_with_rain: https://github.githubassets.com/images/icons/emoji/unicode/1f327.png?v8 + cloud_with_snow: https://github.githubassets.com/images/icons/emoji/unicode/1f328.png?v8 + clown_face: https://github.githubassets.com/images/icons/emoji/unicode/1f921.png?v8 + clubs: https://github.githubassets.com/images/icons/emoji/unicode/2663.png?v8 + cn: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f3.png?v8 + coat: https://github.githubassets.com/images/icons/emoji/unicode/1f9e5.png?v8 + cockroach: https://github.githubassets.com/images/icons/emoji/unicode/1fab3.png?v8 + cocktail: https://github.githubassets.com/images/icons/emoji/unicode/1f378.png?v8 + coconut: https://github.githubassets.com/images/icons/emoji/unicode/1f965.png?v8 + cocos_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1e8.png?v8 + coffee: https://github.githubassets.com/images/icons/emoji/unicode/2615.png?v8 + coffin: https://github.githubassets.com/images/icons/emoji/unicode/26b0.png?v8 + coin: https://github.githubassets.com/images/icons/emoji/unicode/1fa99.png?v8 + cold_face: https://github.githubassets.com/images/icons/emoji/unicode/1f976.png?v8 + cold_sweat: https://github.githubassets.com/images/icons/emoji/unicode/1f630.png?v8 + collision: https://github.githubassets.com/images/icons/emoji/unicode/1f4a5.png?v8 + colombia: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f4.png?v8 + comet: https://github.githubassets.com/images/icons/emoji/unicode/2604.png?v8 + comoros: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f2.png?v8 + compass: https://github.githubassets.com/images/icons/emoji/unicode/1f9ed.png?v8 + computer: https://github.githubassets.com/images/icons/emoji/unicode/1f4bb.png?v8 + computer_mouse: https://github.githubassets.com/images/icons/emoji/unicode/1f5b1.png?v8 + confetti_ball: https://github.githubassets.com/images/icons/emoji/unicode/1f38a.png?v8 + confounded: https://github.githubassets.com/images/icons/emoji/unicode/1f616.png?v8 + confused: https://github.githubassets.com/images/icons/emoji/unicode/1f615.png?v8 + congo_brazzaville: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ec.png?v8 + congo_kinshasa: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1e9.png?v8 + congratulations: https://github.githubassets.com/images/icons/emoji/unicode/3297.png?v8 + construction: https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png?v8 + construction_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f477.png?v8 + construction_worker_man: https://github.githubassets.com/images/icons/emoji/unicode/1f477-2642.png?v8 + construction_worker_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f477-2640.png?v8 + control_knobs: https://github.githubassets.com/images/icons/emoji/unicode/1f39b.png?v8 + convenience_store: https://github.githubassets.com/images/icons/emoji/unicode/1f3ea.png?v8 + cook: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f373.png?v8 + cook_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f0.png?v8 + cookie: https://github.githubassets.com/images/icons/emoji/unicode/1f36a.png?v8 + cool: https://github.githubassets.com/images/icons/emoji/unicode/1f192.png?v8 + cop: https://github.githubassets.com/images/icons/emoji/unicode/1f46e.png?v8 + copilot: https://github.githubassets.com/images/icons/emoji/copilot.png?v8 + copyright: https://github.githubassets.com/images/icons/emoji/unicode/00a9.png?v8 + corn: https://github.githubassets.com/images/icons/emoji/unicode/1f33d.png?v8 + costa_rica: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f7.png?v8 + cote_divoire: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ee.png?v8 + couch_and_lamp: https://github.githubassets.com/images/icons/emoji/unicode/1f6cb.png?v8 + couple: https://github.githubassets.com/images/icons/emoji/unicode/1f46b.png?v8 + couple_with_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f491.png?v8 + couple_with_heart_man_man: https://github.githubassets.com/images/icons/emoji/unicode/1f468-2764-1f468.png?v8 + couple_with_heart_woman_man: https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f468.png?v8 + couple_with_heart_woman_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f469.png?v8 + couplekiss: https://github.githubassets.com/images/icons/emoji/unicode/1f48f.png?v8 + couplekiss_man_man: https://github.githubassets.com/images/icons/emoji/unicode/1f468-2764-1f48b-1f468.png?v8 + couplekiss_man_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f48b-1f468.png?v8 + couplekiss_woman_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f48b-1f469.png?v8 + cow: https://github.githubassets.com/images/icons/emoji/unicode/1f42e.png?v8 + cow2: https://github.githubassets.com/images/icons/emoji/unicode/1f404.png?v8 + cowboy_hat_face: https://github.githubassets.com/images/icons/emoji/unicode/1f920.png?v8 + crab: https://github.githubassets.com/images/icons/emoji/unicode/1f980.png?v8 + crayon: https://github.githubassets.com/images/icons/emoji/unicode/1f58d.png?v8 + credit_card: https://github.githubassets.com/images/icons/emoji/unicode/1f4b3.png?v8 + crescent_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f319.png?v8 + cricket: https://github.githubassets.com/images/icons/emoji/unicode/1f997.png?v8 + cricket_game: https://github.githubassets.com/images/icons/emoji/unicode/1f3cf.png?v8 + croatia: https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f7.png?v8 + crocodile: https://github.githubassets.com/images/icons/emoji/unicode/1f40a.png?v8 + croissant: https://github.githubassets.com/images/icons/emoji/unicode/1f950.png?v8 + crossed_fingers: https://github.githubassets.com/images/icons/emoji/unicode/1f91e.png?v8 + crossed_flags: https://github.githubassets.com/images/icons/emoji/unicode/1f38c.png?v8 + crossed_swords: https://github.githubassets.com/images/icons/emoji/unicode/2694.png?v8 + crown: https://github.githubassets.com/images/icons/emoji/unicode/1f451.png?v8 + cry: https://github.githubassets.com/images/icons/emoji/unicode/1f622.png?v8 + crying_cat_face: https://github.githubassets.com/images/icons/emoji/unicode/1f63f.png?v8 + crystal_ball: https://github.githubassets.com/images/icons/emoji/unicode/1f52e.png?v8 + cuba: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fa.png?v8 + cucumber: https://github.githubassets.com/images/icons/emoji/unicode/1f952.png?v8 + cup_with_straw: https://github.githubassets.com/images/icons/emoji/unicode/1f964.png?v8 + cupcake: https://github.githubassets.com/images/icons/emoji/unicode/1f9c1.png?v8 + cupid: https://github.githubassets.com/images/icons/emoji/unicode/1f498.png?v8 + curacao: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fc.png?v8 + curling_stone: https://github.githubassets.com/images/icons/emoji/unicode/1f94c.png?v8 + curly_haired_man: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b1.png?v8 + curly_haired_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b1.png?v8 + curly_loop: https://github.githubassets.com/images/icons/emoji/unicode/27b0.png?v8 + currency_exchange: https://github.githubassets.com/images/icons/emoji/unicode/1f4b1.png?v8 + curry: https://github.githubassets.com/images/icons/emoji/unicode/1f35b.png?v8 + cursing_face: https://github.githubassets.com/images/icons/emoji/unicode/1f92c.png?v8 + custard: https://github.githubassets.com/images/icons/emoji/unicode/1f36e.png?v8 + customs: https://github.githubassets.com/images/icons/emoji/unicode/1f6c3.png?v8 + cut_of_meat: https://github.githubassets.com/images/icons/emoji/unicode/1f969.png?v8 + cyclone: https://github.githubassets.com/images/icons/emoji/unicode/1f300.png?v8 + cyprus: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fe.png?v8 + czech_republic: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ff.png?v8 + dagger: https://github.githubassets.com/images/icons/emoji/unicode/1f5e1.png?v8 + dancer: https://github.githubassets.com/images/icons/emoji/unicode/1f483.png?v8 + dancers: https://github.githubassets.com/images/icons/emoji/unicode/1f46f.png?v8 + dancing_men: https://github.githubassets.com/images/icons/emoji/unicode/1f46f-2642.png?v8 + dancing_women: https://github.githubassets.com/images/icons/emoji/unicode/1f46f-2640.png?v8 + dango: https://github.githubassets.com/images/icons/emoji/unicode/1f361.png?v8 + dark_sunglasses: https://github.githubassets.com/images/icons/emoji/unicode/1f576.png?v8 + dart: https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png?v8 + dash: https://github.githubassets.com/images/icons/emoji/unicode/1f4a8.png?v8 + date: https://github.githubassets.com/images/icons/emoji/unicode/1f4c5.png?v8 + de: https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ea.png?v8 + deaf_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9cf-2642.png?v8 + deaf_person: https://github.githubassets.com/images/icons/emoji/unicode/1f9cf.png?v8 + deaf_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9cf-2640.png?v8 + deciduous_tree: https://github.githubassets.com/images/icons/emoji/unicode/1f333.png?v8 + deer: https://github.githubassets.com/images/icons/emoji/unicode/1f98c.png?v8 + denmark: https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1f0.png?v8 + department_store: https://github.githubassets.com/images/icons/emoji/unicode/1f3ec.png?v8 + dependabot: https://github.githubassets.com/images/icons/emoji/dependabot.png?v8 + derelict_house: https://github.githubassets.com/images/icons/emoji/unicode/1f3da.png?v8 + desert: https://github.githubassets.com/images/icons/emoji/unicode/1f3dc.png?v8 + desert_island: https://github.githubassets.com/images/icons/emoji/unicode/1f3dd.png?v8 + desktop_computer: https://github.githubassets.com/images/icons/emoji/unicode/1f5a5.png?v8 + detective: https://github.githubassets.com/images/icons/emoji/unicode/1f575.png?v8 + diamond_shape_with_a_dot_inside: https://github.githubassets.com/images/icons/emoji/unicode/1f4a0.png?v8 + diamonds: https://github.githubassets.com/images/icons/emoji/unicode/2666.png?v8 + diego_garcia: https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ec.png?v8 + disappointed: https://github.githubassets.com/images/icons/emoji/unicode/1f61e.png?v8 + disappointed_relieved: https://github.githubassets.com/images/icons/emoji/unicode/1f625.png?v8 + disguised_face: https://github.githubassets.com/images/icons/emoji/unicode/1f978.png?v8 + diving_mask: https://github.githubassets.com/images/icons/emoji/unicode/1f93f.png?v8 + diya_lamp: https://github.githubassets.com/images/icons/emoji/unicode/1fa94.png?v8 + dizzy: https://github.githubassets.com/images/icons/emoji/unicode/1f4ab.png?v8 + dizzy_face: https://github.githubassets.com/images/icons/emoji/unicode/1f635.png?v8 + djibouti: https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ef.png?v8 + dna: https://github.githubassets.com/images/icons/emoji/unicode/1f9ec.png?v8 + do_not_litter: https://github.githubassets.com/images/icons/emoji/unicode/1f6af.png?v8 + dodo: https://github.githubassets.com/images/icons/emoji/unicode/1f9a4.png?v8 + dog: https://github.githubassets.com/images/icons/emoji/unicode/1f436.png?v8 + dog2: https://github.githubassets.com/images/icons/emoji/unicode/1f415.png?v8 + dollar: https://github.githubassets.com/images/icons/emoji/unicode/1f4b5.png?v8 + dolls: https://github.githubassets.com/images/icons/emoji/unicode/1f38e.png?v8 + dolphin: https://github.githubassets.com/images/icons/emoji/unicode/1f42c.png?v8 + dominica: https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1f2.png?v8 + dominican_republic: https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1f4.png?v8 + door: https://github.githubassets.com/images/icons/emoji/unicode/1f6aa.png?v8 + doughnut: https://github.githubassets.com/images/icons/emoji/unicode/1f369.png?v8 + dove: https://github.githubassets.com/images/icons/emoji/unicode/1f54a.png?v8 + dragon: https://github.githubassets.com/images/icons/emoji/unicode/1f409.png?v8 + dragon_face: https://github.githubassets.com/images/icons/emoji/unicode/1f432.png?v8 + dress: https://github.githubassets.com/images/icons/emoji/unicode/1f457.png?v8 + dromedary_camel: https://github.githubassets.com/images/icons/emoji/unicode/1f42a.png?v8 + drooling_face: https://github.githubassets.com/images/icons/emoji/unicode/1f924.png?v8 + drop_of_blood: https://github.githubassets.com/images/icons/emoji/unicode/1fa78.png?v8 + droplet: https://github.githubassets.com/images/icons/emoji/unicode/1f4a7.png?v8 + drum: https://github.githubassets.com/images/icons/emoji/unicode/1f941.png?v8 + duck: https://github.githubassets.com/images/icons/emoji/unicode/1f986.png?v8 + dumpling: https://github.githubassets.com/images/icons/emoji/unicode/1f95f.png?v8 + dvd: https://github.githubassets.com/images/icons/emoji/unicode/1f4c0.png?v8 + e-mail: https://github.githubassets.com/images/icons/emoji/unicode/1f4e7.png?v8 + eagle: https://github.githubassets.com/images/icons/emoji/unicode/1f985.png?v8 + ear: https://github.githubassets.com/images/icons/emoji/unicode/1f442.png?v8 + ear_of_rice: https://github.githubassets.com/images/icons/emoji/unicode/1f33e.png?v8 + ear_with_hearing_aid: https://github.githubassets.com/images/icons/emoji/unicode/1f9bb.png?v8 + earth_africa: https://github.githubassets.com/images/icons/emoji/unicode/1f30d.png?v8 + earth_americas: https://github.githubassets.com/images/icons/emoji/unicode/1f30e.png?v8 + earth_asia: https://github.githubassets.com/images/icons/emoji/unicode/1f30f.png?v8 + ecuador: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1e8.png?v8 + egg: https://github.githubassets.com/images/icons/emoji/unicode/1f95a.png?v8 + eggplant: https://github.githubassets.com/images/icons/emoji/unicode/1f346.png?v8 + egypt: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ec.png?v8 + eight: https://github.githubassets.com/images/icons/emoji/unicode/0038-20e3.png?v8 + eight_pointed_black_star: https://github.githubassets.com/images/icons/emoji/unicode/2734.png?v8 + eight_spoked_asterisk: https://github.githubassets.com/images/icons/emoji/unicode/2733.png?v8 + eject_button: https://github.githubassets.com/images/icons/emoji/unicode/23cf.png?v8 + el_salvador: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1fb.png?v8 + electric_plug: https://github.githubassets.com/images/icons/emoji/unicode/1f50c.png?v8 + electron: https://github.githubassets.com/images/icons/emoji/electron.png?v8 + elephant: https://github.githubassets.com/images/icons/emoji/unicode/1f418.png?v8 + elevator: https://github.githubassets.com/images/icons/emoji/unicode/1f6d7.png?v8 + elf: https://github.githubassets.com/images/icons/emoji/unicode/1f9dd.png?v8 + elf_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9dd-2642.png?v8 + elf_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9dd-2640.png?v8 + email: https://github.githubassets.com/images/icons/emoji/unicode/1f4e7.png?v8 + end: https://github.githubassets.com/images/icons/emoji/unicode/1f51a.png?v8 + england: https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.png?v8 + envelope: https://github.githubassets.com/images/icons/emoji/unicode/2709.png?v8 + envelope_with_arrow: https://github.githubassets.com/images/icons/emoji/unicode/1f4e9.png?v8 + equatorial_guinea: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f6.png?v8 + eritrea: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f7.png?v8 + es: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f8.png?v8 + estonia: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ea.png?v8 + ethiopia: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f9.png?v8 + eu: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1fa.png?v8 + euro: https://github.githubassets.com/images/icons/emoji/unicode/1f4b6.png?v8 + european_castle: https://github.githubassets.com/images/icons/emoji/unicode/1f3f0.png?v8 + european_post_office: https://github.githubassets.com/images/icons/emoji/unicode/1f3e4.png?v8 + european_union: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1fa.png?v8 + evergreen_tree: https://github.githubassets.com/images/icons/emoji/unicode/1f332.png?v8 + exclamation: https://github.githubassets.com/images/icons/emoji/unicode/2757.png?v8 + exploding_head: https://github.githubassets.com/images/icons/emoji/unicode/1f92f.png?v8 + expressionless: https://github.githubassets.com/images/icons/emoji/unicode/1f611.png?v8 + eye: https://github.githubassets.com/images/icons/emoji/unicode/1f441.png?v8 + eye_speech_bubble: https://github.githubassets.com/images/icons/emoji/unicode/1f441-1f5e8.png?v8 + eyeglasses: https://github.githubassets.com/images/icons/emoji/unicode/1f453.png?v8 + eyes: https://github.githubassets.com/images/icons/emoji/unicode/1f440.png?v8 + face_exhaling: https://github.githubassets.com/images/icons/emoji/unicode/1f62e-1f4a8.png?v8 + face_in_clouds: https://github.githubassets.com/images/icons/emoji/unicode/1f636-1f32b.png?v8 + face_with_head_bandage: https://github.githubassets.com/images/icons/emoji/unicode/1f915.png?v8 + face_with_spiral_eyes: https://github.githubassets.com/images/icons/emoji/unicode/1f635-1f4ab.png?v8 + face_with_thermometer: https://github.githubassets.com/images/icons/emoji/unicode/1f912.png?v8 + facepalm: https://github.githubassets.com/images/icons/emoji/unicode/1f926.png?v8 + facepunch: https://github.githubassets.com/images/icons/emoji/unicode/1f44a.png?v8 + factory: https://github.githubassets.com/images/icons/emoji/unicode/1f3ed.png?v8 + factory_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3ed.png?v8 + fairy: https://github.githubassets.com/images/icons/emoji/unicode/1f9da.png?v8 + fairy_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9da-2642.png?v8 + fairy_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9da-2640.png?v8 + falafel: https://github.githubassets.com/images/icons/emoji/unicode/1f9c6.png?v8 + falkland_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f0.png?v8 + fallen_leaf: https://github.githubassets.com/images/icons/emoji/unicode/1f342.png?v8 + family: https://github.githubassets.com/images/icons/emoji/unicode/1f46a.png?v8 + family_man_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f466.png?v8 + family_man_boy_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f466-1f466.png?v8 + family_man_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f467.png?v8 + family_man_girl_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f467-1f466.png?v8 + family_man_girl_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f467-1f467.png?v8 + family_man_man_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f466.png?v8 + family_man_man_boy_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f466-1f466.png?v8 + family_man_man_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f467.png?v8 + family_man_man_girl_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f467-1f466.png?v8 + family_man_man_girl_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f467-1f467.png?v8 + family_man_woman_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f466.png?v8 + family_man_woman_boy_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f466-1f466.png?v8 + family_man_woman_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f467.png?v8 + family_man_woman_girl_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f467-1f466.png?v8 + family_man_woman_girl_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f467-1f467.png?v8 + family_woman_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f466.png?v8 + family_woman_boy_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f466-1f466.png?v8 + family_woman_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f467.png?v8 + family_woman_girl_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f467-1f466.png?v8 + family_woman_girl_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f467-1f467.png?v8 + family_woman_woman_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f466.png?v8 + family_woman_woman_boy_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f466-1f466.png?v8 + family_woman_woman_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f467.png?v8 + family_woman_woman_girl_boy: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f467-1f466.png?v8 + family_woman_woman_girl_girl: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f467-1f467.png?v8 + farmer: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f33e.png?v8 + faroe_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f4.png?v8 + fast_forward: https://github.githubassets.com/images/icons/emoji/unicode/23e9.png?v8 + fax: https://github.githubassets.com/images/icons/emoji/unicode/1f4e0.png?v8 + fearful: https://github.githubassets.com/images/icons/emoji/unicode/1f628.png?v8 + feather: https://github.githubassets.com/images/icons/emoji/unicode/1fab6.png?v8 + feelsgood: https://github.githubassets.com/images/icons/emoji/feelsgood.png?v8 + feet: https://github.githubassets.com/images/icons/emoji/unicode/1f43e.png?v8 + female_detective: https://github.githubassets.com/images/icons/emoji/unicode/1f575-2640.png?v8 + female_sign: https://github.githubassets.com/images/icons/emoji/unicode/2640.png?v8 + ferris_wheel: https://github.githubassets.com/images/icons/emoji/unicode/1f3a1.png?v8 + ferry: https://github.githubassets.com/images/icons/emoji/unicode/26f4.png?v8 + field_hockey: https://github.githubassets.com/images/icons/emoji/unicode/1f3d1.png?v8 + fiji: https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1ef.png?v8 + file_cabinet: https://github.githubassets.com/images/icons/emoji/unicode/1f5c4.png?v8 + file_folder: https://github.githubassets.com/images/icons/emoji/unicode/1f4c1.png?v8 + film_projector: https://github.githubassets.com/images/icons/emoji/unicode/1f4fd.png?v8 + film_strip: https://github.githubassets.com/images/icons/emoji/unicode/1f39e.png?v8 + finland: https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1ee.png?v8 + finnadie: https://github.githubassets.com/images/icons/emoji/finnadie.png?v8 + fire: https://github.githubassets.com/images/icons/emoji/unicode/1f525.png?v8 + fire_engine: https://github.githubassets.com/images/icons/emoji/unicode/1f692.png?v8 + fire_extinguisher: https://github.githubassets.com/images/icons/emoji/unicode/1f9ef.png?v8 + firecracker: https://github.githubassets.com/images/icons/emoji/unicode/1f9e8.png?v8 + firefighter: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f692.png?v8 + fireworks: https://github.githubassets.com/images/icons/emoji/unicode/1f386.png?v8 + first_quarter_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f313.png?v8 + first_quarter_moon_with_face: https://github.githubassets.com/images/icons/emoji/unicode/1f31b.png?v8 + fish: https://github.githubassets.com/images/icons/emoji/unicode/1f41f.png?v8 + fish_cake: https://github.githubassets.com/images/icons/emoji/unicode/1f365.png?v8 + fishsticks: https://github.githubassets.com/images/icons/emoji/fishsticks.png?v8 + fishing_pole_and_fish: https://github.githubassets.com/images/icons/emoji/unicode/1f3a3.png?v8 + fist: https://github.githubassets.com/images/icons/emoji/unicode/270a.png?v8 + fist_left: https://github.githubassets.com/images/icons/emoji/unicode/1f91b.png?v8 + fist_oncoming: https://github.githubassets.com/images/icons/emoji/unicode/1f44a.png?v8 + fist_raised: https://github.githubassets.com/images/icons/emoji/unicode/270a.png?v8 + fist_right: https://github.githubassets.com/images/icons/emoji/unicode/1f91c.png?v8 + five: https://github.githubassets.com/images/icons/emoji/unicode/0035-20e3.png?v8 + flags: https://github.githubassets.com/images/icons/emoji/unicode/1f38f.png?v8 + flamingo: https://github.githubassets.com/images/icons/emoji/unicode/1f9a9.png?v8 + flashlight: https://github.githubassets.com/images/icons/emoji/unicode/1f526.png?v8 + flat_shoe: https://github.githubassets.com/images/icons/emoji/unicode/1f97f.png?v8 + flatbread: https://github.githubassets.com/images/icons/emoji/unicode/1fad3.png?v8 + fleur_de_lis: https://github.githubassets.com/images/icons/emoji/unicode/269c.png?v8 + flight_arrival: https://github.githubassets.com/images/icons/emoji/unicode/1f6ec.png?v8 + flight_departure: https://github.githubassets.com/images/icons/emoji/unicode/1f6eb.png?v8 + flipper: https://github.githubassets.com/images/icons/emoji/unicode/1f42c.png?v8 + floppy_disk: https://github.githubassets.com/images/icons/emoji/unicode/1f4be.png?v8 + flower_playing_cards: https://github.githubassets.com/images/icons/emoji/unicode/1f3b4.png?v8 + flushed: https://github.githubassets.com/images/icons/emoji/unicode/1f633.png?v8 + fly: https://github.githubassets.com/images/icons/emoji/unicode/1fab0.png?v8 + flying_disc: https://github.githubassets.com/images/icons/emoji/unicode/1f94f.png?v8 + flying_saucer: https://github.githubassets.com/images/icons/emoji/unicode/1f6f8.png?v8 + fog: https://github.githubassets.com/images/icons/emoji/unicode/1f32b.png?v8 + foggy: https://github.githubassets.com/images/icons/emoji/unicode/1f301.png?v8 + fondue: https://github.githubassets.com/images/icons/emoji/unicode/1fad5.png?v8 + foot: https://github.githubassets.com/images/icons/emoji/unicode/1f9b6.png?v8 + football: https://github.githubassets.com/images/icons/emoji/unicode/1f3c8.png?v8 + footprints: https://github.githubassets.com/images/icons/emoji/unicode/1f463.png?v8 + fork_and_knife: https://github.githubassets.com/images/icons/emoji/unicode/1f374.png?v8 + fortune_cookie: https://github.githubassets.com/images/icons/emoji/unicode/1f960.png?v8 + fountain: https://github.githubassets.com/images/icons/emoji/unicode/26f2.png?v8 + fountain_pen: https://github.githubassets.com/images/icons/emoji/unicode/1f58b.png?v8 + four: https://github.githubassets.com/images/icons/emoji/unicode/0034-20e3.png?v8 + four_leaf_clover: https://github.githubassets.com/images/icons/emoji/unicode/1f340.png?v8 + fox_face: https://github.githubassets.com/images/icons/emoji/unicode/1f98a.png?v8 + fr: https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f7.png?v8 + framed_picture: https://github.githubassets.com/images/icons/emoji/unicode/1f5bc.png?v8 + free: https://github.githubassets.com/images/icons/emoji/unicode/1f193.png?v8 + french_guiana: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1eb.png?v8 + french_polynesia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1eb.png?v8 + french_southern_territories: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1eb.png?v8 + fried_egg: https://github.githubassets.com/images/icons/emoji/unicode/1f373.png?v8 + fried_shrimp: https://github.githubassets.com/images/icons/emoji/unicode/1f364.png?v8 + fries: https://github.githubassets.com/images/icons/emoji/unicode/1f35f.png?v8 + frog: https://github.githubassets.com/images/icons/emoji/unicode/1f438.png?v8 + frowning: https://github.githubassets.com/images/icons/emoji/unicode/1f626.png?v8 + frowning_face: https://github.githubassets.com/images/icons/emoji/unicode/2639.png?v8 + frowning_man: https://github.githubassets.com/images/icons/emoji/unicode/1f64d-2642.png?v8 + frowning_person: https://github.githubassets.com/images/icons/emoji/unicode/1f64d.png?v8 + frowning_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f64d-2640.png?v8 + fu: https://github.githubassets.com/images/icons/emoji/unicode/1f595.png?v8 + fuelpump: https://github.githubassets.com/images/icons/emoji/unicode/26fd.png?v8 + full_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f315.png?v8 + full_moon_with_face: https://github.githubassets.com/images/icons/emoji/unicode/1f31d.png?v8 + funeral_urn: https://github.githubassets.com/images/icons/emoji/unicode/26b1.png?v8 + gabon: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e6.png?v8 + gambia: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f2.png?v8 + game_die: https://github.githubassets.com/images/icons/emoji/unicode/1f3b2.png?v8 + garlic: https://github.githubassets.com/images/icons/emoji/unicode/1f9c4.png?v8 + gb: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png?v8 + gear: https://github.githubassets.com/images/icons/emoji/unicode/2699.png?v8 + gem: https://github.githubassets.com/images/icons/emoji/unicode/1f48e.png?v8 + gemini: https://github.githubassets.com/images/icons/emoji/unicode/264a.png?v8 + genie: https://github.githubassets.com/images/icons/emoji/unicode/1f9de.png?v8 + genie_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9de-2642.png?v8 + genie_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9de-2640.png?v8 + georgia: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ea.png?v8 + ghana: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ed.png?v8 + ghost: https://github.githubassets.com/images/icons/emoji/unicode/1f47b.png?v8 + gibraltar: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ee.png?v8 + gift: https://github.githubassets.com/images/icons/emoji/unicode/1f381.png?v8 + gift_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f49d.png?v8 + giraffe: https://github.githubassets.com/images/icons/emoji/unicode/1f992.png?v8 + girl: https://github.githubassets.com/images/icons/emoji/unicode/1f467.png?v8 + globe_with_meridians: https://github.githubassets.com/images/icons/emoji/unicode/1f310.png?v8 + gloves: https://github.githubassets.com/images/icons/emoji/unicode/1f9e4.png?v8 + goal_net: https://github.githubassets.com/images/icons/emoji/unicode/1f945.png?v8 + goat: https://github.githubassets.com/images/icons/emoji/unicode/1f410.png?v8 + goberserk: https://github.githubassets.com/images/icons/emoji/goberserk.png?v8 + godmode: https://github.githubassets.com/images/icons/emoji/godmode.png?v8 + goggles: https://github.githubassets.com/images/icons/emoji/unicode/1f97d.png?v8 + golf: https://github.githubassets.com/images/icons/emoji/unicode/26f3.png?v8 + golfing: https://github.githubassets.com/images/icons/emoji/unicode/1f3cc.png?v8 + golfing_man: https://github.githubassets.com/images/icons/emoji/unicode/1f3cc-2642.png?v8 + golfing_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f3cc-2640.png?v8 + gorilla: https://github.githubassets.com/images/icons/emoji/unicode/1f98d.png?v8 + grapes: https://github.githubassets.com/images/icons/emoji/unicode/1f347.png?v8 + greece: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f7.png?v8 + green_apple: https://github.githubassets.com/images/icons/emoji/unicode/1f34f.png?v8 + green_book: https://github.githubassets.com/images/icons/emoji/unicode/1f4d7.png?v8 + green_circle: https://github.githubassets.com/images/icons/emoji/unicode/1f7e2.png?v8 + green_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f49a.png?v8 + green_salad: https://github.githubassets.com/images/icons/emoji/unicode/1f957.png?v8 + green_square: https://github.githubassets.com/images/icons/emoji/unicode/1f7e9.png?v8 + greenland: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f1.png?v8 + grenada: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e9.png?v8 + grey_exclamation: https://github.githubassets.com/images/icons/emoji/unicode/2755.png?v8 + grey_question: https://github.githubassets.com/images/icons/emoji/unicode/2754.png?v8 + grimacing: https://github.githubassets.com/images/icons/emoji/unicode/1f62c.png?v8 + grin: https://github.githubassets.com/images/icons/emoji/unicode/1f601.png?v8 + grinning: https://github.githubassets.com/images/icons/emoji/unicode/1f600.png?v8 + guadeloupe: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f5.png?v8 + guam: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1fa.png?v8 + guard: https://github.githubassets.com/images/icons/emoji/unicode/1f482.png?v8 + guardsman: https://github.githubassets.com/images/icons/emoji/unicode/1f482-2642.png?v8 + guardswoman: https://github.githubassets.com/images/icons/emoji/unicode/1f482-2640.png?v8 + guatemala: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f9.png?v8 + guernsey: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ec.png?v8 + guide_dog: https://github.githubassets.com/images/icons/emoji/unicode/1f9ae.png?v8 + guinea: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f3.png?v8 + guinea_bissau: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1fc.png?v8 + guitar: https://github.githubassets.com/images/icons/emoji/unicode/1f3b8.png?v8 + gun: https://github.githubassets.com/images/icons/emoji/unicode/1f52b.png?v8 + guyana: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1fe.png?v8 + haircut: https://github.githubassets.com/images/icons/emoji/unicode/1f487.png?v8 + haircut_man: https://github.githubassets.com/images/icons/emoji/unicode/1f487-2642.png?v8 + haircut_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f487-2640.png?v8 + haiti: https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f9.png?v8 + hamburger: https://github.githubassets.com/images/icons/emoji/unicode/1f354.png?v8 + hammer: https://github.githubassets.com/images/icons/emoji/unicode/1f528.png?v8 + hammer_and_pick: https://github.githubassets.com/images/icons/emoji/unicode/2692.png?v8 + hammer_and_wrench: https://github.githubassets.com/images/icons/emoji/unicode/1f6e0.png?v8 + hamster: https://github.githubassets.com/images/icons/emoji/unicode/1f439.png?v8 + hand: https://github.githubassets.com/images/icons/emoji/unicode/270b.png?v8 + hand_over_mouth: https://github.githubassets.com/images/icons/emoji/unicode/1f92d.png?v8 + handbag: https://github.githubassets.com/images/icons/emoji/unicode/1f45c.png?v8 + handball_person: https://github.githubassets.com/images/icons/emoji/unicode/1f93e.png?v8 + handshake: https://github.githubassets.com/images/icons/emoji/unicode/1f91d.png?v8 + hankey: https://github.githubassets.com/images/icons/emoji/unicode/1f4a9.png?v8 + hash: https://github.githubassets.com/images/icons/emoji/unicode/0023-20e3.png?v8 + hatched_chick: https://github.githubassets.com/images/icons/emoji/unicode/1f425.png?v8 + hatching_chick: https://github.githubassets.com/images/icons/emoji/unicode/1f423.png?v8 + headphones: https://github.githubassets.com/images/icons/emoji/unicode/1f3a7.png?v8 + headstone: https://github.githubassets.com/images/icons/emoji/unicode/1faa6.png?v8 + health_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-2695.png?v8 + hear_no_evil: https://github.githubassets.com/images/icons/emoji/unicode/1f649.png?v8 + heard_mcdonald_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f2.png?v8 + heart: https://github.githubassets.com/images/icons/emoji/unicode/2764.png?v8 + heart_decoration: https://github.githubassets.com/images/icons/emoji/unicode/1f49f.png?v8 + heart_eyes: https://github.githubassets.com/images/icons/emoji/unicode/1f60d.png?v8 + heart_eyes_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f63b.png?v8 + heart_on_fire: https://github.githubassets.com/images/icons/emoji/unicode/2764-1f525.png?v8 + heartbeat: https://github.githubassets.com/images/icons/emoji/unicode/1f493.png?v8 + heartpulse: https://github.githubassets.com/images/icons/emoji/unicode/1f497.png?v8 + hearts: https://github.githubassets.com/images/icons/emoji/unicode/2665.png?v8 + heavy_check_mark: https://github.githubassets.com/images/icons/emoji/unicode/2714.png?v8 + heavy_division_sign: https://github.githubassets.com/images/icons/emoji/unicode/2797.png?v8 + heavy_dollar_sign: https://github.githubassets.com/images/icons/emoji/unicode/1f4b2.png?v8 + heavy_exclamation_mark: https://github.githubassets.com/images/icons/emoji/unicode/2757.png?v8 + heavy_heart_exclamation: https://github.githubassets.com/images/icons/emoji/unicode/2763.png?v8 + heavy_minus_sign: https://github.githubassets.com/images/icons/emoji/unicode/2796.png?v8 + heavy_multiplication_x: https://github.githubassets.com/images/icons/emoji/unicode/2716.png?v8 + heavy_plus_sign: https://github.githubassets.com/images/icons/emoji/unicode/2795.png?v8 + hedgehog: https://github.githubassets.com/images/icons/emoji/unicode/1f994.png?v8 + helicopter: https://github.githubassets.com/images/icons/emoji/unicode/1f681.png?v8 + herb: https://github.githubassets.com/images/icons/emoji/unicode/1f33f.png?v8 + hibiscus: https://github.githubassets.com/images/icons/emoji/unicode/1f33a.png?v8 + high_brightness: https://github.githubassets.com/images/icons/emoji/unicode/1f506.png?v8 + high_heel: https://github.githubassets.com/images/icons/emoji/unicode/1f460.png?v8 + hiking_boot: https://github.githubassets.com/images/icons/emoji/unicode/1f97e.png?v8 + hindu_temple: https://github.githubassets.com/images/icons/emoji/unicode/1f6d5.png?v8 + hippopotamus: https://github.githubassets.com/images/icons/emoji/unicode/1f99b.png?v8 + hocho: https://github.githubassets.com/images/icons/emoji/unicode/1f52a.png?v8 + hole: https://github.githubassets.com/images/icons/emoji/unicode/1f573.png?v8 + honduras: https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f3.png?v8 + honey_pot: https://github.githubassets.com/images/icons/emoji/unicode/1f36f.png?v8 + honeybee: https://github.githubassets.com/images/icons/emoji/unicode/1f41d.png?v8 + hong_kong: https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f0.png?v8 + hook: https://github.githubassets.com/images/icons/emoji/unicode/1fa9d.png?v8 + horse: https://github.githubassets.com/images/icons/emoji/unicode/1f434.png?v8 + horse_racing: https://github.githubassets.com/images/icons/emoji/unicode/1f3c7.png?v8 + hospital: https://github.githubassets.com/images/icons/emoji/unicode/1f3e5.png?v8 + hot_face: https://github.githubassets.com/images/icons/emoji/unicode/1f975.png?v8 + hot_pepper: https://github.githubassets.com/images/icons/emoji/unicode/1f336.png?v8 + hotdog: https://github.githubassets.com/images/icons/emoji/unicode/1f32d.png?v8 + hotel: https://github.githubassets.com/images/icons/emoji/unicode/1f3e8.png?v8 + hotsprings: https://github.githubassets.com/images/icons/emoji/unicode/2668.png?v8 + hourglass: https://github.githubassets.com/images/icons/emoji/unicode/231b.png?v8 + hourglass_flowing_sand: https://github.githubassets.com/images/icons/emoji/unicode/23f3.png?v8 + house: https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png?v8 + house_with_garden: https://github.githubassets.com/images/icons/emoji/unicode/1f3e1.png?v8 + houses: https://github.githubassets.com/images/icons/emoji/unicode/1f3d8.png?v8 + hugs: https://github.githubassets.com/images/icons/emoji/unicode/1f917.png?v8 + hungary: https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1fa.png?v8 + hurtrealbad: https://github.githubassets.com/images/icons/emoji/hurtrealbad.png?v8 + hushed: https://github.githubassets.com/images/icons/emoji/unicode/1f62f.png?v8 + hut: https://github.githubassets.com/images/icons/emoji/unicode/1f6d6.png?v8 + ice_cream: https://github.githubassets.com/images/icons/emoji/unicode/1f368.png?v8 + ice_cube: https://github.githubassets.com/images/icons/emoji/unicode/1f9ca.png?v8 + ice_hockey: https://github.githubassets.com/images/icons/emoji/unicode/1f3d2.png?v8 + ice_skate: https://github.githubassets.com/images/icons/emoji/unicode/26f8.png?v8 + icecream: https://github.githubassets.com/images/icons/emoji/unicode/1f366.png?v8 + iceland: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f8.png?v8 + id: https://github.githubassets.com/images/icons/emoji/unicode/1f194.png?v8 + ideograph_advantage: https://github.githubassets.com/images/icons/emoji/unicode/1f250.png?v8 + imp: https://github.githubassets.com/images/icons/emoji/unicode/1f47f.png?v8 + inbox_tray: https://github.githubassets.com/images/icons/emoji/unicode/1f4e5.png?v8 + incoming_envelope: https://github.githubassets.com/images/icons/emoji/unicode/1f4e8.png?v8 + india: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f3.png?v8 + indonesia: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1e9.png?v8 + infinity: https://github.githubassets.com/images/icons/emoji/unicode/267e.png?v8 + information_desk_person: https://github.githubassets.com/images/icons/emoji/unicode/1f481.png?v8 + information_source: https://github.githubassets.com/images/icons/emoji/unicode/2139.png?v8 + innocent: https://github.githubassets.com/images/icons/emoji/unicode/1f607.png?v8 + interrobang: https://github.githubassets.com/images/icons/emoji/unicode/2049.png?v8 + iphone: https://github.githubassets.com/images/icons/emoji/unicode/1f4f1.png?v8 + iran: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f7.png?v8 + iraq: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f6.png?v8 + ireland: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1ea.png?v8 + isle_of_man: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f2.png?v8 + israel: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f1.png?v8 + it: https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f9.png?v8 + izakaya_lantern: https://github.githubassets.com/images/icons/emoji/unicode/1f3ee.png?v8 + jack_o_lantern: https://github.githubassets.com/images/icons/emoji/unicode/1f383.png?v8 + jamaica: https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1f2.png?v8 + japan: https://github.githubassets.com/images/icons/emoji/unicode/1f5fe.png?v8 + japanese_castle: https://github.githubassets.com/images/icons/emoji/unicode/1f3ef.png?v8 + japanese_goblin: https://github.githubassets.com/images/icons/emoji/unicode/1f47a.png?v8 + japanese_ogre: https://github.githubassets.com/images/icons/emoji/unicode/1f479.png?v8 + jeans: https://github.githubassets.com/images/icons/emoji/unicode/1f456.png?v8 + jersey: https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1ea.png?v8 + jigsaw: https://github.githubassets.com/images/icons/emoji/unicode/1f9e9.png?v8 + jordan: https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1f4.png?v8 + joy: https://github.githubassets.com/images/icons/emoji/unicode/1f602.png?v8 + joy_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f639.png?v8 + joystick: https://github.githubassets.com/images/icons/emoji/unicode/1f579.png?v8 + jp: https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1f5.png?v8 + judge: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-2696.png?v8 + juggling_person: https://github.githubassets.com/images/icons/emoji/unicode/1f939.png?v8 + kangaroo: https://github.githubassets.com/images/icons/emoji/unicode/1f998.png?v8 + kazakhstan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ff.png?v8 + kenya: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ea.png?v8 + key: https://github.githubassets.com/images/icons/emoji/unicode/1f511.png?v8 + keyboard: https://github.githubassets.com/images/icons/emoji/unicode/2328.png?v8 + keycap_ten: https://github.githubassets.com/images/icons/emoji/unicode/1f51f.png?v8 + kick_scooter: https://github.githubassets.com/images/icons/emoji/unicode/1f6f4.png?v8 + kimono: https://github.githubassets.com/images/icons/emoji/unicode/1f458.png?v8 + kiribati: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ee.png?v8 + kiss: https://github.githubassets.com/images/icons/emoji/unicode/1f48b.png?v8 + kissing: https://github.githubassets.com/images/icons/emoji/unicode/1f617.png?v8 + kissing_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f63d.png?v8 + kissing_closed_eyes: https://github.githubassets.com/images/icons/emoji/unicode/1f61a.png?v8 + kissing_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f618.png?v8 + kissing_smiling_eyes: https://github.githubassets.com/images/icons/emoji/unicode/1f619.png?v8 + kite: https://github.githubassets.com/images/icons/emoji/unicode/1fa81.png?v8 + kiwi_fruit: https://github.githubassets.com/images/icons/emoji/unicode/1f95d.png?v8 + kneeling_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9ce-2642.png?v8 + kneeling_person: https://github.githubassets.com/images/icons/emoji/unicode/1f9ce.png?v8 + kneeling_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9ce-2640.png?v8 + knife: https://github.githubassets.com/images/icons/emoji/unicode/1f52a.png?v8 + knot: https://github.githubassets.com/images/icons/emoji/unicode/1faa2.png?v8 + koala: https://github.githubassets.com/images/icons/emoji/unicode/1f428.png?v8 + koko: https://github.githubassets.com/images/icons/emoji/unicode/1f201.png?v8 + kosovo: https://github.githubassets.com/images/icons/emoji/unicode/1f1fd-1f1f0.png?v8 + kr: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f7.png?v8 + kuwait: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1fc.png?v8 + kyrgyzstan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ec.png?v8 + lab_coat: https://github.githubassets.com/images/icons/emoji/unicode/1f97c.png?v8 + label: https://github.githubassets.com/images/icons/emoji/unicode/1f3f7.png?v8 + lacrosse: https://github.githubassets.com/images/icons/emoji/unicode/1f94d.png?v8 + ladder: https://github.githubassets.com/images/icons/emoji/unicode/1fa9c.png?v8 + lady_beetle: https://github.githubassets.com/images/icons/emoji/unicode/1f41e.png?v8 + lantern: https://github.githubassets.com/images/icons/emoji/unicode/1f3ee.png?v8 + laos: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1e6.png?v8 + large_blue_circle: https://github.githubassets.com/images/icons/emoji/unicode/1f535.png?v8 + large_blue_diamond: https://github.githubassets.com/images/icons/emoji/unicode/1f537.png?v8 + large_orange_diamond: https://github.githubassets.com/images/icons/emoji/unicode/1f536.png?v8 + last_quarter_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f317.png?v8 + last_quarter_moon_with_face: https://github.githubassets.com/images/icons/emoji/unicode/1f31c.png?v8 + latin_cross: https://github.githubassets.com/images/icons/emoji/unicode/271d.png?v8 + latvia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1fb.png?v8 + laughing: https://github.githubassets.com/images/icons/emoji/unicode/1f606.png?v8 + leafy_green: https://github.githubassets.com/images/icons/emoji/unicode/1f96c.png?v8 + leaves: https://github.githubassets.com/images/icons/emoji/unicode/1f343.png?v8 + lebanon: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1e7.png?v8 + ledger: https://github.githubassets.com/images/icons/emoji/unicode/1f4d2.png?v8 + left_luggage: https://github.githubassets.com/images/icons/emoji/unicode/1f6c5.png?v8 + left_right_arrow: https://github.githubassets.com/images/icons/emoji/unicode/2194.png?v8 + left_speech_bubble: https://github.githubassets.com/images/icons/emoji/unicode/1f5e8.png?v8 + leftwards_arrow_with_hook: https://github.githubassets.com/images/icons/emoji/unicode/21a9.png?v8 + leg: https://github.githubassets.com/images/icons/emoji/unicode/1f9b5.png?v8 + lemon: https://github.githubassets.com/images/icons/emoji/unicode/1f34b.png?v8 + leo: https://github.githubassets.com/images/icons/emoji/unicode/264c.png?v8 + leopard: https://github.githubassets.com/images/icons/emoji/unicode/1f406.png?v8 + lesotho: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f8.png?v8 + level_slider: https://github.githubassets.com/images/icons/emoji/unicode/1f39a.png?v8 + liberia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f7.png?v8 + libra: https://github.githubassets.com/images/icons/emoji/unicode/264e.png?v8 + libya: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1fe.png?v8 + liechtenstein: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1ee.png?v8 + light_rail: https://github.githubassets.com/images/icons/emoji/unicode/1f688.png?v8 + link: https://github.githubassets.com/images/icons/emoji/unicode/1f517.png?v8 + lion: https://github.githubassets.com/images/icons/emoji/unicode/1f981.png?v8 + lips: https://github.githubassets.com/images/icons/emoji/unicode/1f444.png?v8 + lipstick: https://github.githubassets.com/images/icons/emoji/unicode/1f484.png?v8 + lithuania: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f9.png?v8 + lizard: https://github.githubassets.com/images/icons/emoji/unicode/1f98e.png?v8 + llama: https://github.githubassets.com/images/icons/emoji/unicode/1f999.png?v8 + lobster: https://github.githubassets.com/images/icons/emoji/unicode/1f99e.png?v8 + lock: https://github.githubassets.com/images/icons/emoji/unicode/1f512.png?v8 + lock_with_ink_pen: https://github.githubassets.com/images/icons/emoji/unicode/1f50f.png?v8 + lollipop: https://github.githubassets.com/images/icons/emoji/unicode/1f36d.png?v8 + long_drum: https://github.githubassets.com/images/icons/emoji/unicode/1fa98.png?v8 + loop: https://github.githubassets.com/images/icons/emoji/unicode/27bf.png?v8 + lotion_bottle: https://github.githubassets.com/images/icons/emoji/unicode/1f9f4.png?v8 + lotus_position: https://github.githubassets.com/images/icons/emoji/unicode/1f9d8.png?v8 + lotus_position_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9d8-2642.png?v8 + lotus_position_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9d8-2640.png?v8 + loud_sound: https://github.githubassets.com/images/icons/emoji/unicode/1f50a.png?v8 + loudspeaker: https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png?v8 + love_hotel: https://github.githubassets.com/images/icons/emoji/unicode/1f3e9.png?v8 + love_letter: https://github.githubassets.com/images/icons/emoji/unicode/1f48c.png?v8 + love_you_gesture: https://github.githubassets.com/images/icons/emoji/unicode/1f91f.png?v8 + low_brightness: https://github.githubassets.com/images/icons/emoji/unicode/1f505.png?v8 + luggage: https://github.githubassets.com/images/icons/emoji/unicode/1f9f3.png?v8 + lungs: https://github.githubassets.com/images/icons/emoji/unicode/1fac1.png?v8 + luxembourg: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1fa.png?v8 + lying_face: https://github.githubassets.com/images/icons/emoji/unicode/1f925.png?v8 + m: https://github.githubassets.com/images/icons/emoji/unicode/24c2.png?v8 + macau: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f4.png?v8 + macedonia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f0.png?v8 + madagascar: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ec.png?v8 + mag: https://github.githubassets.com/images/icons/emoji/unicode/1f50d.png?v8 + mag_right: https://github.githubassets.com/images/icons/emoji/unicode/1f50e.png?v8 + mage: https://github.githubassets.com/images/icons/emoji/unicode/1f9d9.png?v8 + mage_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9d9-2642.png?v8 + mage_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9d9-2640.png?v8 + magic_wand: https://github.githubassets.com/images/icons/emoji/unicode/1fa84.png?v8 + magnet: https://github.githubassets.com/images/icons/emoji/unicode/1f9f2.png?v8 + mahjong: https://github.githubassets.com/images/icons/emoji/unicode/1f004.png?v8 + mailbox: https://github.githubassets.com/images/icons/emoji/unicode/1f4eb.png?v8 + mailbox_closed: https://github.githubassets.com/images/icons/emoji/unicode/1f4ea.png?v8 + mailbox_with_mail: https://github.githubassets.com/images/icons/emoji/unicode/1f4ec.png?v8 + mailbox_with_no_mail: https://github.githubassets.com/images/icons/emoji/unicode/1f4ed.png?v8 + malawi: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fc.png?v8 + malaysia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fe.png?v8 + maldives: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fb.png?v8 + male_detective: https://github.githubassets.com/images/icons/emoji/unicode/1f575-2642.png?v8 + male_sign: https://github.githubassets.com/images/icons/emoji/unicode/2642.png?v8 + mali: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f1.png?v8 + malta: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f9.png?v8 + mammoth: https://github.githubassets.com/images/icons/emoji/unicode/1f9a3.png?v8 + man: https://github.githubassets.com/images/icons/emoji/unicode/1f468.png?v8 + man_artist: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3a8.png?v8 + man_astronaut: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f680.png?v8 + man_beard: https://github.githubassets.com/images/icons/emoji/unicode/1f9d4-2642.png?v8 + man_cartwheeling: https://github.githubassets.com/images/icons/emoji/unicode/1f938-2642.png?v8 + man_cook: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f373.png?v8 + man_dancing: https://github.githubassets.com/images/icons/emoji/unicode/1f57a.png?v8 + man_facepalming: https://github.githubassets.com/images/icons/emoji/unicode/1f926-2642.png?v8 + man_factory_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3ed.png?v8 + man_farmer: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f33e.png?v8 + man_feeding_baby: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f37c.png?v8 + man_firefighter: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f692.png?v8 + man_health_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f468-2695.png?v8 + man_in_manual_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9bd.png?v8 + man_in_motorized_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9bc.png?v8 + man_in_tuxedo: https://github.githubassets.com/images/icons/emoji/unicode/1f935-2642.png?v8 + man_judge: https://github.githubassets.com/images/icons/emoji/unicode/1f468-2696.png?v8 + man_juggling: https://github.githubassets.com/images/icons/emoji/unicode/1f939-2642.png?v8 + man_mechanic: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f527.png?v8 + man_office_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f4bc.png?v8 + man_pilot: https://github.githubassets.com/images/icons/emoji/unicode/1f468-2708.png?v8 + man_playing_handball: https://github.githubassets.com/images/icons/emoji/unicode/1f93e-2642.png?v8 + man_playing_water_polo: https://github.githubassets.com/images/icons/emoji/unicode/1f93d-2642.png?v8 + man_scientist: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f52c.png?v8 + man_shrugging: https://github.githubassets.com/images/icons/emoji/unicode/1f937-2642.png?v8 + man_singer: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3a4.png?v8 + man_student: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f393.png?v8 + man_teacher: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3eb.png?v8 + man_technologist: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f4bb.png?v8 + man_with_gua_pi_mao: https://github.githubassets.com/images/icons/emoji/unicode/1f472.png?v8 + man_with_probing_cane: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9af.png?v8 + man_with_turban: https://github.githubassets.com/images/icons/emoji/unicode/1f473-2642.png?v8 + man_with_veil: https://github.githubassets.com/images/icons/emoji/unicode/1f470-2642.png?v8 + mandarin: https://github.githubassets.com/images/icons/emoji/unicode/1f34a.png?v8 + mango: https://github.githubassets.com/images/icons/emoji/unicode/1f96d.png?v8 + mans_shoe: https://github.githubassets.com/images/icons/emoji/unicode/1f45e.png?v8 + mantelpiece_clock: https://github.githubassets.com/images/icons/emoji/unicode/1f570.png?v8 + manual_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f9bd.png?v8 + maple_leaf: https://github.githubassets.com/images/icons/emoji/unicode/1f341.png?v8 + marshall_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ed.png?v8 + martial_arts_uniform: https://github.githubassets.com/images/icons/emoji/unicode/1f94b.png?v8 + martinique: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f6.png?v8 + mask: https://github.githubassets.com/images/icons/emoji/unicode/1f637.png?v8 + massage: https://github.githubassets.com/images/icons/emoji/unicode/1f486.png?v8 + massage_man: https://github.githubassets.com/images/icons/emoji/unicode/1f486-2642.png?v8 + massage_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f486-2640.png?v8 + mate: https://github.githubassets.com/images/icons/emoji/unicode/1f9c9.png?v8 + mauritania: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f7.png?v8 + mauritius: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fa.png?v8 + mayotte: https://github.githubassets.com/images/icons/emoji/unicode/1f1fe-1f1f9.png?v8 + meat_on_bone: https://github.githubassets.com/images/icons/emoji/unicode/1f356.png?v8 + mechanic: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f527.png?v8 + mechanical_arm: https://github.githubassets.com/images/icons/emoji/unicode/1f9be.png?v8 + mechanical_leg: https://github.githubassets.com/images/icons/emoji/unicode/1f9bf.png?v8 + medal_military: https://github.githubassets.com/images/icons/emoji/unicode/1f396.png?v8 + medal_sports: https://github.githubassets.com/images/icons/emoji/unicode/1f3c5.png?v8 + medical_symbol: https://github.githubassets.com/images/icons/emoji/unicode/2695.png?v8 + mega: https://github.githubassets.com/images/icons/emoji/unicode/1f4e3.png?v8 + melon: https://github.githubassets.com/images/icons/emoji/unicode/1f348.png?v8 + memo: https://github.githubassets.com/images/icons/emoji/unicode/1f4dd.png?v8 + men_wrestling: https://github.githubassets.com/images/icons/emoji/unicode/1f93c-2642.png?v8 + mending_heart: https://github.githubassets.com/images/icons/emoji/unicode/2764-1fa79.png?v8 + menorah: https://github.githubassets.com/images/icons/emoji/unicode/1f54e.png?v8 + mens: https://github.githubassets.com/images/icons/emoji/unicode/1f6b9.png?v8 + mermaid: https://github.githubassets.com/images/icons/emoji/unicode/1f9dc-2640.png?v8 + merman: https://github.githubassets.com/images/icons/emoji/unicode/1f9dc-2642.png?v8 + merperson: https://github.githubassets.com/images/icons/emoji/unicode/1f9dc.png?v8 + metal: https://github.githubassets.com/images/icons/emoji/unicode/1f918.png?v8 + metro: https://github.githubassets.com/images/icons/emoji/unicode/1f687.png?v8 + mexico: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fd.png?v8 + microbe: https://github.githubassets.com/images/icons/emoji/unicode/1f9a0.png?v8 + micronesia: https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f2.png?v8 + microphone: https://github.githubassets.com/images/icons/emoji/unicode/1f3a4.png?v8 + microscope: https://github.githubassets.com/images/icons/emoji/unicode/1f52c.png?v8 + middle_finger: https://github.githubassets.com/images/icons/emoji/unicode/1f595.png?v8 + military_helmet: https://github.githubassets.com/images/icons/emoji/unicode/1fa96.png?v8 + milk_glass: https://github.githubassets.com/images/icons/emoji/unicode/1f95b.png?v8 + milky_way: https://github.githubassets.com/images/icons/emoji/unicode/1f30c.png?v8 + minibus: https://github.githubassets.com/images/icons/emoji/unicode/1f690.png?v8 + minidisc: https://github.githubassets.com/images/icons/emoji/unicode/1f4bd.png?v8 + mirror: https://github.githubassets.com/images/icons/emoji/unicode/1fa9e.png?v8 + mobile_phone_off: https://github.githubassets.com/images/icons/emoji/unicode/1f4f4.png?v8 + moldova: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1e9.png?v8 + monaco: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1e8.png?v8 + money_mouth_face: https://github.githubassets.com/images/icons/emoji/unicode/1f911.png?v8 + money_with_wings: https://github.githubassets.com/images/icons/emoji/unicode/1f4b8.png?v8 + moneybag: https://github.githubassets.com/images/icons/emoji/unicode/1f4b0.png?v8 + mongolia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f3.png?v8 + monkey: https://github.githubassets.com/images/icons/emoji/unicode/1f412.png?v8 + monkey_face: https://github.githubassets.com/images/icons/emoji/unicode/1f435.png?v8 + monocle_face: https://github.githubassets.com/images/icons/emoji/unicode/1f9d0.png?v8 + monorail: https://github.githubassets.com/images/icons/emoji/unicode/1f69d.png?v8 + montenegro: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ea.png?v8 + montserrat: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f8.png?v8 + moon: https://github.githubassets.com/images/icons/emoji/unicode/1f314.png?v8 + moon_cake: https://github.githubassets.com/images/icons/emoji/unicode/1f96e.png?v8 + morocco: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1e6.png?v8 + mortar_board: https://github.githubassets.com/images/icons/emoji/unicode/1f393.png?v8 + mosque: https://github.githubassets.com/images/icons/emoji/unicode/1f54c.png?v8 + mosquito: https://github.githubassets.com/images/icons/emoji/unicode/1f99f.png?v8 + motor_boat: https://github.githubassets.com/images/icons/emoji/unicode/1f6e5.png?v8 + motor_scooter: https://github.githubassets.com/images/icons/emoji/unicode/1f6f5.png?v8 + motorcycle: https://github.githubassets.com/images/icons/emoji/unicode/1f3cd.png?v8 + motorized_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f9bc.png?v8 + motorway: https://github.githubassets.com/images/icons/emoji/unicode/1f6e3.png?v8 + mount_fuji: https://github.githubassets.com/images/icons/emoji/unicode/1f5fb.png?v8 + mountain: https://github.githubassets.com/images/icons/emoji/unicode/26f0.png?v8 + mountain_bicyclist: https://github.githubassets.com/images/icons/emoji/unicode/1f6b5.png?v8 + mountain_biking_man: https://github.githubassets.com/images/icons/emoji/unicode/1f6b5-2642.png?v8 + mountain_biking_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f6b5-2640.png?v8 + mountain_cableway: https://github.githubassets.com/images/icons/emoji/unicode/1f6a0.png?v8 + mountain_railway: https://github.githubassets.com/images/icons/emoji/unicode/1f69e.png?v8 + mountain_snow: https://github.githubassets.com/images/icons/emoji/unicode/1f3d4.png?v8 + mouse: https://github.githubassets.com/images/icons/emoji/unicode/1f42d.png?v8 + mouse2: https://github.githubassets.com/images/icons/emoji/unicode/1f401.png?v8 + mouse_trap: https://github.githubassets.com/images/icons/emoji/unicode/1faa4.png?v8 + movie_camera: https://github.githubassets.com/images/icons/emoji/unicode/1f3a5.png?v8 + moyai: https://github.githubassets.com/images/icons/emoji/unicode/1f5ff.png?v8 + mozambique: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ff.png?v8 + mrs_claus: https://github.githubassets.com/images/icons/emoji/unicode/1f936.png?v8 + muscle: https://github.githubassets.com/images/icons/emoji/unicode/1f4aa.png?v8 + mushroom: https://github.githubassets.com/images/icons/emoji/unicode/1f344.png?v8 + musical_keyboard: https://github.githubassets.com/images/icons/emoji/unicode/1f3b9.png?v8 + musical_note: https://github.githubassets.com/images/icons/emoji/unicode/1f3b5.png?v8 + musical_score: https://github.githubassets.com/images/icons/emoji/unicode/1f3bc.png?v8 + mute: https://github.githubassets.com/images/icons/emoji/unicode/1f507.png?v8 + mx_claus: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f384.png?v8 + myanmar: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f2.png?v8 + nail_care: https://github.githubassets.com/images/icons/emoji/unicode/1f485.png?v8 + name_badge: https://github.githubassets.com/images/icons/emoji/unicode/1f4db.png?v8 + namibia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1e6.png?v8 + national_park: https://github.githubassets.com/images/icons/emoji/unicode/1f3de.png?v8 + nauru: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f7.png?v8 + nauseated_face: https://github.githubassets.com/images/icons/emoji/unicode/1f922.png?v8 + nazar_amulet: https://github.githubassets.com/images/icons/emoji/unicode/1f9ff.png?v8 + neckbeard: https://github.githubassets.com/images/icons/emoji/neckbeard.png?v8 + necktie: https://github.githubassets.com/images/icons/emoji/unicode/1f454.png?v8 + negative_squared_cross_mark: https://github.githubassets.com/images/icons/emoji/unicode/274e.png?v8 + nepal: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f5.png?v8 + nerd_face: https://github.githubassets.com/images/icons/emoji/unicode/1f913.png?v8 + nesting_dolls: https://github.githubassets.com/images/icons/emoji/unicode/1fa86.png?v8 + netherlands: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f1.png?v8 + neutral_face: https://github.githubassets.com/images/icons/emoji/unicode/1f610.png?v8 + new: https://github.githubassets.com/images/icons/emoji/unicode/1f195.png?v8 + new_caledonia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1e8.png?v8 + new_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f311.png?v8 + new_moon_with_face: https://github.githubassets.com/images/icons/emoji/unicode/1f31a.png?v8 + new_zealand: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ff.png?v8 + newspaper: https://github.githubassets.com/images/icons/emoji/unicode/1f4f0.png?v8 + newspaper_roll: https://github.githubassets.com/images/icons/emoji/unicode/1f5de.png?v8 + next_track_button: https://github.githubassets.com/images/icons/emoji/unicode/23ed.png?v8 + ng: https://github.githubassets.com/images/icons/emoji/unicode/1f196.png?v8 + ng_man: https://github.githubassets.com/images/icons/emoji/unicode/1f645-2642.png?v8 + ng_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f645-2640.png?v8 + nicaragua: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ee.png?v8 + niger: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ea.png?v8 + nigeria: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ec.png?v8 + night_with_stars: https://github.githubassets.com/images/icons/emoji/unicode/1f303.png?v8 + nine: https://github.githubassets.com/images/icons/emoji/unicode/0039-20e3.png?v8 + ninja: https://github.githubassets.com/images/icons/emoji/unicode/1f977.png?v8 + niue: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1fa.png?v8 + no_bell: https://github.githubassets.com/images/icons/emoji/unicode/1f515.png?v8 + no_bicycles: https://github.githubassets.com/images/icons/emoji/unicode/1f6b3.png?v8 + no_entry: https://github.githubassets.com/images/icons/emoji/unicode/26d4.png?v8 + no_entry_sign: https://github.githubassets.com/images/icons/emoji/unicode/1f6ab.png?v8 + no_good: https://github.githubassets.com/images/icons/emoji/unicode/1f645.png?v8 + no_good_man: https://github.githubassets.com/images/icons/emoji/unicode/1f645-2642.png?v8 + no_good_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f645-2640.png?v8 + no_mobile_phones: https://github.githubassets.com/images/icons/emoji/unicode/1f4f5.png?v8 + no_mouth: https://github.githubassets.com/images/icons/emoji/unicode/1f636.png?v8 + no_pedestrians: https://github.githubassets.com/images/icons/emoji/unicode/1f6b7.png?v8 + no_smoking: https://github.githubassets.com/images/icons/emoji/unicode/1f6ad.png?v8 + non-potable_water: https://github.githubassets.com/images/icons/emoji/unicode/1f6b1.png?v8 + norfolk_island: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1eb.png?v8 + north_korea: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f5.png?v8 + northern_mariana_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f5.png?v8 + norway: https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f4.png?v8 + nose: https://github.githubassets.com/images/icons/emoji/unicode/1f443.png?v8 + notebook: https://github.githubassets.com/images/icons/emoji/unicode/1f4d3.png?v8 + notebook_with_decorative_cover: https://github.githubassets.com/images/icons/emoji/unicode/1f4d4.png?v8 + notes: https://github.githubassets.com/images/icons/emoji/unicode/1f3b6.png?v8 + nut_and_bolt: https://github.githubassets.com/images/icons/emoji/unicode/1f529.png?v8 + o: https://github.githubassets.com/images/icons/emoji/unicode/2b55.png?v8 + o2: https://github.githubassets.com/images/icons/emoji/unicode/1f17e.png?v8 + ocean: https://github.githubassets.com/images/icons/emoji/unicode/1f30a.png?v8 + octocat: https://github.githubassets.com/images/icons/emoji/octocat.png?v8 + octopus: https://github.githubassets.com/images/icons/emoji/unicode/1f419.png?v8 + oden: https://github.githubassets.com/images/icons/emoji/unicode/1f362.png?v8 + office: https://github.githubassets.com/images/icons/emoji/unicode/1f3e2.png?v8 + office_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f4bc.png?v8 + oil_drum: https://github.githubassets.com/images/icons/emoji/unicode/1f6e2.png?v8 + ok: https://github.githubassets.com/images/icons/emoji/unicode/1f197.png?v8 + ok_hand: https://github.githubassets.com/images/icons/emoji/unicode/1f44c.png?v8 + ok_man: https://github.githubassets.com/images/icons/emoji/unicode/1f646-2642.png?v8 + ok_person: https://github.githubassets.com/images/icons/emoji/unicode/1f646.png?v8 + ok_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f646-2640.png?v8 + old_key: https://github.githubassets.com/images/icons/emoji/unicode/1f5dd.png?v8 + older_adult: https://github.githubassets.com/images/icons/emoji/unicode/1f9d3.png?v8 + older_man: https://github.githubassets.com/images/icons/emoji/unicode/1f474.png?v8 + older_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f475.png?v8 + olive: https://github.githubassets.com/images/icons/emoji/unicode/1fad2.png?v8 + om: https://github.githubassets.com/images/icons/emoji/unicode/1f549.png?v8 + oman: https://github.githubassets.com/images/icons/emoji/unicode/1f1f4-1f1f2.png?v8 + 'on': https://github.githubassets.com/images/icons/emoji/unicode/1f51b.png?v8 + oncoming_automobile: https://github.githubassets.com/images/icons/emoji/unicode/1f698.png?v8 + oncoming_bus: https://github.githubassets.com/images/icons/emoji/unicode/1f68d.png?v8 + oncoming_police_car: https://github.githubassets.com/images/icons/emoji/unicode/1f694.png?v8 + oncoming_taxi: https://github.githubassets.com/images/icons/emoji/unicode/1f696.png?v8 + one: https://github.githubassets.com/images/icons/emoji/unicode/0031-20e3.png?v8 + one_piece_swimsuit: https://github.githubassets.com/images/icons/emoji/unicode/1fa71.png?v8 + onion: https://github.githubassets.com/images/icons/emoji/unicode/1f9c5.png?v8 + open_book: https://github.githubassets.com/images/icons/emoji/unicode/1f4d6.png?v8 + open_file_folder: https://github.githubassets.com/images/icons/emoji/unicode/1f4c2.png?v8 + open_hands: https://github.githubassets.com/images/icons/emoji/unicode/1f450.png?v8 + open_mouth: https://github.githubassets.com/images/icons/emoji/unicode/1f62e.png?v8 + open_umbrella: https://github.githubassets.com/images/icons/emoji/unicode/2602.png?v8 + ophiuchus: https://github.githubassets.com/images/icons/emoji/unicode/26ce.png?v8 + orange: https://github.githubassets.com/images/icons/emoji/unicode/1f34a.png?v8 + orange_book: https://github.githubassets.com/images/icons/emoji/unicode/1f4d9.png?v8 + orange_circle: https://github.githubassets.com/images/icons/emoji/unicode/1f7e0.png?v8 + orange_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f9e1.png?v8 + orange_square: https://github.githubassets.com/images/icons/emoji/unicode/1f7e7.png?v8 + orangutan: https://github.githubassets.com/images/icons/emoji/unicode/1f9a7.png?v8 + orthodox_cross: https://github.githubassets.com/images/icons/emoji/unicode/2626.png?v8 + otter: https://github.githubassets.com/images/icons/emoji/unicode/1f9a6.png?v8 + outbox_tray: https://github.githubassets.com/images/icons/emoji/unicode/1f4e4.png?v8 + owl: https://github.githubassets.com/images/icons/emoji/unicode/1f989.png?v8 + ox: https://github.githubassets.com/images/icons/emoji/unicode/1f402.png?v8 + oyster: https://github.githubassets.com/images/icons/emoji/unicode/1f9aa.png?v8 + package: https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png?v8 + page_facing_up: https://github.githubassets.com/images/icons/emoji/unicode/1f4c4.png?v8 + page_with_curl: https://github.githubassets.com/images/icons/emoji/unicode/1f4c3.png?v8 + pager: https://github.githubassets.com/images/icons/emoji/unicode/1f4df.png?v8 + paintbrush: https://github.githubassets.com/images/icons/emoji/unicode/1f58c.png?v8 + pakistan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f0.png?v8 + palau: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1fc.png?v8 + palestinian_territories: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f8.png?v8 + palm_tree: https://github.githubassets.com/images/icons/emoji/unicode/1f334.png?v8 + palms_up_together: https://github.githubassets.com/images/icons/emoji/unicode/1f932.png?v8 + panama: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1e6.png?v8 + pancakes: https://github.githubassets.com/images/icons/emoji/unicode/1f95e.png?v8 + panda_face: https://github.githubassets.com/images/icons/emoji/unicode/1f43c.png?v8 + paperclip: https://github.githubassets.com/images/icons/emoji/unicode/1f4ce.png?v8 + paperclips: https://github.githubassets.com/images/icons/emoji/unicode/1f587.png?v8 + papua_new_guinea: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1ec.png?v8 + parachute: https://github.githubassets.com/images/icons/emoji/unicode/1fa82.png?v8 + paraguay: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1fe.png?v8 + parasol_on_ground: https://github.githubassets.com/images/icons/emoji/unicode/26f1.png?v8 + parking: https://github.githubassets.com/images/icons/emoji/unicode/1f17f.png?v8 + parrot: https://github.githubassets.com/images/icons/emoji/unicode/1f99c.png?v8 + part_alternation_mark: https://github.githubassets.com/images/icons/emoji/unicode/303d.png?v8 + partly_sunny: https://github.githubassets.com/images/icons/emoji/unicode/26c5.png?v8 + partying_face: https://github.githubassets.com/images/icons/emoji/unicode/1f973.png?v8 + passenger_ship: https://github.githubassets.com/images/icons/emoji/unicode/1f6f3.png?v8 + passport_control: https://github.githubassets.com/images/icons/emoji/unicode/1f6c2.png?v8 + pause_button: https://github.githubassets.com/images/icons/emoji/unicode/23f8.png?v8 + paw_prints: https://github.githubassets.com/images/icons/emoji/unicode/1f43e.png?v8 + peace_symbol: https://github.githubassets.com/images/icons/emoji/unicode/262e.png?v8 + peach: https://github.githubassets.com/images/icons/emoji/unicode/1f351.png?v8 + peacock: https://github.githubassets.com/images/icons/emoji/unicode/1f99a.png?v8 + peanuts: https://github.githubassets.com/images/icons/emoji/unicode/1f95c.png?v8 + pear: https://github.githubassets.com/images/icons/emoji/unicode/1f350.png?v8 + pen: https://github.githubassets.com/images/icons/emoji/unicode/1f58a.png?v8 + pencil: https://github.githubassets.com/images/icons/emoji/unicode/1f4dd.png?v8 + pencil2: https://github.githubassets.com/images/icons/emoji/unicode/270f.png?v8 + penguin: https://github.githubassets.com/images/icons/emoji/unicode/1f427.png?v8 + pensive: https://github.githubassets.com/images/icons/emoji/unicode/1f614.png?v8 + people_holding_hands: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f91d-1f9d1.png?v8 + people_hugging: https://github.githubassets.com/images/icons/emoji/unicode/1fac2.png?v8 + performing_arts: https://github.githubassets.com/images/icons/emoji/unicode/1f3ad.png?v8 + persevere: https://github.githubassets.com/images/icons/emoji/unicode/1f623.png?v8 + person_bald: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b2.png?v8 + person_curly_hair: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b1.png?v8 + person_feeding_baby: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f37c.png?v8 + person_fencing: https://github.githubassets.com/images/icons/emoji/unicode/1f93a.png?v8 + person_in_manual_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9bd.png?v8 + person_in_motorized_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9bc.png?v8 + person_in_tuxedo: https://github.githubassets.com/images/icons/emoji/unicode/1f935.png?v8 + person_red_hair: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b0.png?v8 + person_white_hair: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b3.png?v8 + person_with_probing_cane: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9af.png?v8 + person_with_turban: https://github.githubassets.com/images/icons/emoji/unicode/1f473.png?v8 + person_with_veil: https://github.githubassets.com/images/icons/emoji/unicode/1f470.png?v8 + peru: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1ea.png?v8 + petri_dish: https://github.githubassets.com/images/icons/emoji/unicode/1f9eb.png?v8 + philippines: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1ed.png?v8 + phone: https://github.githubassets.com/images/icons/emoji/unicode/260e.png?v8 + pick: https://github.githubassets.com/images/icons/emoji/unicode/26cf.png?v8 + pickup_truck: https://github.githubassets.com/images/icons/emoji/unicode/1f6fb.png?v8 + pie: https://github.githubassets.com/images/icons/emoji/unicode/1f967.png?v8 + pig: https://github.githubassets.com/images/icons/emoji/unicode/1f437.png?v8 + pig2: https://github.githubassets.com/images/icons/emoji/unicode/1f416.png?v8 + pig_nose: https://github.githubassets.com/images/icons/emoji/unicode/1f43d.png?v8 + pill: https://github.githubassets.com/images/icons/emoji/unicode/1f48a.png?v8 + pilot: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-2708.png?v8 + pinata: https://github.githubassets.com/images/icons/emoji/unicode/1fa85.png?v8 + pinched_fingers: https://github.githubassets.com/images/icons/emoji/unicode/1f90c.png?v8 + pinching_hand: https://github.githubassets.com/images/icons/emoji/unicode/1f90f.png?v8 + pineapple: https://github.githubassets.com/images/icons/emoji/unicode/1f34d.png?v8 + ping_pong: https://github.githubassets.com/images/icons/emoji/unicode/1f3d3.png?v8 + pirate_flag: https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-2620.png?v8 + pisces: https://github.githubassets.com/images/icons/emoji/unicode/2653.png?v8 + pitcairn_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f3.png?v8 + pizza: https://github.githubassets.com/images/icons/emoji/unicode/1f355.png?v8 + placard: https://github.githubassets.com/images/icons/emoji/unicode/1faa7.png?v8 + place_of_worship: https://github.githubassets.com/images/icons/emoji/unicode/1f6d0.png?v8 + plate_with_cutlery: https://github.githubassets.com/images/icons/emoji/unicode/1f37d.png?v8 + play_or_pause_button: https://github.githubassets.com/images/icons/emoji/unicode/23ef.png?v8 + pleading_face: https://github.githubassets.com/images/icons/emoji/unicode/1f97a.png?v8 + plunger: https://github.githubassets.com/images/icons/emoji/unicode/1faa0.png?v8 + point_down: https://github.githubassets.com/images/icons/emoji/unicode/1f447.png?v8 + point_left: https://github.githubassets.com/images/icons/emoji/unicode/1f448.png?v8 + point_right: https://github.githubassets.com/images/icons/emoji/unicode/1f449.png?v8 + point_up: https://github.githubassets.com/images/icons/emoji/unicode/261d.png?v8 + point_up_2: https://github.githubassets.com/images/icons/emoji/unicode/1f446.png?v8 + poland: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f1.png?v8 + polar_bear: https://github.githubassets.com/images/icons/emoji/unicode/1f43b-2744.png?v8 + police_car: https://github.githubassets.com/images/icons/emoji/unicode/1f693.png?v8 + police_officer: https://github.githubassets.com/images/icons/emoji/unicode/1f46e.png?v8 + policeman: https://github.githubassets.com/images/icons/emoji/unicode/1f46e-2642.png?v8 + policewoman: https://github.githubassets.com/images/icons/emoji/unicode/1f46e-2640.png?v8 + poodle: https://github.githubassets.com/images/icons/emoji/unicode/1f429.png?v8 + poop: https://github.githubassets.com/images/icons/emoji/unicode/1f4a9.png?v8 + popcorn: https://github.githubassets.com/images/icons/emoji/unicode/1f37f.png?v8 + portugal: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f9.png?v8 + post_office: https://github.githubassets.com/images/icons/emoji/unicode/1f3e3.png?v8 + postal_horn: https://github.githubassets.com/images/icons/emoji/unicode/1f4ef.png?v8 + postbox: https://github.githubassets.com/images/icons/emoji/unicode/1f4ee.png?v8 + potable_water: https://github.githubassets.com/images/icons/emoji/unicode/1f6b0.png?v8 + potato: https://github.githubassets.com/images/icons/emoji/unicode/1f954.png?v8 + potted_plant: https://github.githubassets.com/images/icons/emoji/unicode/1fab4.png?v8 + pouch: https://github.githubassets.com/images/icons/emoji/unicode/1f45d.png?v8 + poultry_leg: https://github.githubassets.com/images/icons/emoji/unicode/1f357.png?v8 + pound: https://github.githubassets.com/images/icons/emoji/unicode/1f4b7.png?v8 + pout: https://github.githubassets.com/images/icons/emoji/unicode/1f621.png?v8 + pouting_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f63e.png?v8 + pouting_face: https://github.githubassets.com/images/icons/emoji/unicode/1f64e.png?v8 + pouting_man: https://github.githubassets.com/images/icons/emoji/unicode/1f64e-2642.png?v8 + pouting_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f64e-2640.png?v8 + pray: https://github.githubassets.com/images/icons/emoji/unicode/1f64f.png?v8 + prayer_beads: https://github.githubassets.com/images/icons/emoji/unicode/1f4ff.png?v8 + pregnant_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f930.png?v8 + pretzel: https://github.githubassets.com/images/icons/emoji/unicode/1f968.png?v8 + previous_track_button: https://github.githubassets.com/images/icons/emoji/unicode/23ee.png?v8 + prince: https://github.githubassets.com/images/icons/emoji/unicode/1f934.png?v8 + princess: https://github.githubassets.com/images/icons/emoji/unicode/1f478.png?v8 + printer: https://github.githubassets.com/images/icons/emoji/unicode/1f5a8.png?v8 + probing_cane: https://github.githubassets.com/images/icons/emoji/unicode/1f9af.png?v8 + puerto_rico: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f7.png?v8 + punch: https://github.githubassets.com/images/icons/emoji/unicode/1f44a.png?v8 + purple_circle: https://github.githubassets.com/images/icons/emoji/unicode/1f7e3.png?v8 + purple_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f49c.png?v8 + purple_square: https://github.githubassets.com/images/icons/emoji/unicode/1f7ea.png?v8 + purse: https://github.githubassets.com/images/icons/emoji/unicode/1f45b.png?v8 + pushpin: https://github.githubassets.com/images/icons/emoji/unicode/1f4cc.png?v8 + put_litter_in_its_place: https://github.githubassets.com/images/icons/emoji/unicode/1f6ae.png?v8 + qatar: https://github.githubassets.com/images/icons/emoji/unicode/1f1f6-1f1e6.png?v8 + question: https://github.githubassets.com/images/icons/emoji/unicode/2753.png?v8 + rabbit: https://github.githubassets.com/images/icons/emoji/unicode/1f430.png?v8 + rabbit2: https://github.githubassets.com/images/icons/emoji/unicode/1f407.png?v8 + raccoon: https://github.githubassets.com/images/icons/emoji/unicode/1f99d.png?v8 + racehorse: https://github.githubassets.com/images/icons/emoji/unicode/1f40e.png?v8 + racing_car: https://github.githubassets.com/images/icons/emoji/unicode/1f3ce.png?v8 + radio: https://github.githubassets.com/images/icons/emoji/unicode/1f4fb.png?v8 + radio_button: https://github.githubassets.com/images/icons/emoji/unicode/1f518.png?v8 + radioactive: https://github.githubassets.com/images/icons/emoji/unicode/2622.png?v8 + rage: https://github.githubassets.com/images/icons/emoji/unicode/1f621.png?v8 + rage1: https://github.githubassets.com/images/icons/emoji/rage1.png?v8 + rage2: https://github.githubassets.com/images/icons/emoji/rage2.png?v8 + rage3: https://github.githubassets.com/images/icons/emoji/rage3.png?v8 + rage4: https://github.githubassets.com/images/icons/emoji/rage4.png?v8 + railway_car: https://github.githubassets.com/images/icons/emoji/unicode/1f683.png?v8 + railway_track: https://github.githubassets.com/images/icons/emoji/unicode/1f6e4.png?v8 + rainbow: https://github.githubassets.com/images/icons/emoji/unicode/1f308.png?v8 + rainbow_flag: https://github.githubassets.com/images/icons/emoji/unicode/1f3f3-1f308.png?v8 + raised_back_of_hand: https://github.githubassets.com/images/icons/emoji/unicode/1f91a.png?v8 + raised_eyebrow: https://github.githubassets.com/images/icons/emoji/unicode/1f928.png?v8 + raised_hand: https://github.githubassets.com/images/icons/emoji/unicode/270b.png?v8 + raised_hand_with_fingers_splayed: https://github.githubassets.com/images/icons/emoji/unicode/1f590.png?v8 + raised_hands: https://github.githubassets.com/images/icons/emoji/unicode/1f64c.png?v8 + raising_hand: https://github.githubassets.com/images/icons/emoji/unicode/1f64b.png?v8 + raising_hand_man: https://github.githubassets.com/images/icons/emoji/unicode/1f64b-2642.png?v8 + raising_hand_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f64b-2640.png?v8 + ram: https://github.githubassets.com/images/icons/emoji/unicode/1f40f.png?v8 + ramen: https://github.githubassets.com/images/icons/emoji/unicode/1f35c.png?v8 + rat: https://github.githubassets.com/images/icons/emoji/unicode/1f400.png?v8 + razor: https://github.githubassets.com/images/icons/emoji/unicode/1fa92.png?v8 + receipt: https://github.githubassets.com/images/icons/emoji/unicode/1f9fe.png?v8 + record_button: https://github.githubassets.com/images/icons/emoji/unicode/23fa.png?v8 + recycle: https://github.githubassets.com/images/icons/emoji/unicode/267b.png?v8 + red_car: https://github.githubassets.com/images/icons/emoji/unicode/1f697.png?v8 + red_circle: https://github.githubassets.com/images/icons/emoji/unicode/1f534.png?v8 + red_envelope: https://github.githubassets.com/images/icons/emoji/unicode/1f9e7.png?v8 + red_haired_man: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b0.png?v8 + red_haired_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b0.png?v8 + red_square: https://github.githubassets.com/images/icons/emoji/unicode/1f7e5.png?v8 + registered: https://github.githubassets.com/images/icons/emoji/unicode/00ae.png?v8 + relaxed: https://github.githubassets.com/images/icons/emoji/unicode/263a.png?v8 + relieved: https://github.githubassets.com/images/icons/emoji/unicode/1f60c.png?v8 + reminder_ribbon: https://github.githubassets.com/images/icons/emoji/unicode/1f397.png?v8 + repeat: https://github.githubassets.com/images/icons/emoji/unicode/1f501.png?v8 + repeat_one: https://github.githubassets.com/images/icons/emoji/unicode/1f502.png?v8 + rescue_worker_helmet: https://github.githubassets.com/images/icons/emoji/unicode/26d1.png?v8 + restroom: https://github.githubassets.com/images/icons/emoji/unicode/1f6bb.png?v8 + reunion: https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1ea.png?v8 + revolving_hearts: https://github.githubassets.com/images/icons/emoji/unicode/1f49e.png?v8 + rewind: https://github.githubassets.com/images/icons/emoji/unicode/23ea.png?v8 + rhinoceros: https://github.githubassets.com/images/icons/emoji/unicode/1f98f.png?v8 + ribbon: https://github.githubassets.com/images/icons/emoji/unicode/1f380.png?v8 + rice: https://github.githubassets.com/images/icons/emoji/unicode/1f35a.png?v8 + rice_ball: https://github.githubassets.com/images/icons/emoji/unicode/1f359.png?v8 + rice_cracker: https://github.githubassets.com/images/icons/emoji/unicode/1f358.png?v8 + rice_scene: https://github.githubassets.com/images/icons/emoji/unicode/1f391.png?v8 + right_anger_bubble: https://github.githubassets.com/images/icons/emoji/unicode/1f5ef.png?v8 + ring: https://github.githubassets.com/images/icons/emoji/unicode/1f48d.png?v8 + ringed_planet: https://github.githubassets.com/images/icons/emoji/unicode/1fa90.png?v8 + robot: https://github.githubassets.com/images/icons/emoji/unicode/1f916.png?v8 + rock: https://github.githubassets.com/images/icons/emoji/unicode/1faa8.png?v8 + rocket: https://github.githubassets.com/images/icons/emoji/unicode/1f680.png?v8 + rofl: https://github.githubassets.com/images/icons/emoji/unicode/1f923.png?v8 + roll_eyes: https://github.githubassets.com/images/icons/emoji/unicode/1f644.png?v8 + roll_of_paper: https://github.githubassets.com/images/icons/emoji/unicode/1f9fb.png?v8 + roller_coaster: https://github.githubassets.com/images/icons/emoji/unicode/1f3a2.png?v8 + roller_skate: https://github.githubassets.com/images/icons/emoji/unicode/1f6fc.png?v8 + romania: https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1f4.png?v8 + rooster: https://github.githubassets.com/images/icons/emoji/unicode/1f413.png?v8 + rose: https://github.githubassets.com/images/icons/emoji/unicode/1f339.png?v8 + rosette: https://github.githubassets.com/images/icons/emoji/unicode/1f3f5.png?v8 + rotating_light: https://github.githubassets.com/images/icons/emoji/unicode/1f6a8.png?v8 + round_pushpin: https://github.githubassets.com/images/icons/emoji/unicode/1f4cd.png?v8 + rowboat: https://github.githubassets.com/images/icons/emoji/unicode/1f6a3.png?v8 + rowing_man: https://github.githubassets.com/images/icons/emoji/unicode/1f6a3-2642.png?v8 + rowing_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f6a3-2640.png?v8 + ru: https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1fa.png?v8 + rugby_football: https://github.githubassets.com/images/icons/emoji/unicode/1f3c9.png?v8 + runner: https://github.githubassets.com/images/icons/emoji/unicode/1f3c3.png?v8 + running: https://github.githubassets.com/images/icons/emoji/unicode/1f3c3.png?v8 + running_man: https://github.githubassets.com/images/icons/emoji/unicode/1f3c3-2642.png?v8 + running_shirt_with_sash: https://github.githubassets.com/images/icons/emoji/unicode/1f3bd.png?v8 + running_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f3c3-2640.png?v8 + rwanda: https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1fc.png?v8 + sa: https://github.githubassets.com/images/icons/emoji/unicode/1f202.png?v8 + safety_pin: https://github.githubassets.com/images/icons/emoji/unicode/1f9f7.png?v8 + safety_vest: https://github.githubassets.com/images/icons/emoji/unicode/1f9ba.png?v8 + sagittarius: https://github.githubassets.com/images/icons/emoji/unicode/2650.png?v8 + sailboat: https://github.githubassets.com/images/icons/emoji/unicode/26f5.png?v8 + sake: https://github.githubassets.com/images/icons/emoji/unicode/1f376.png?v8 + salt: https://github.githubassets.com/images/icons/emoji/unicode/1f9c2.png?v8 + samoa: https://github.githubassets.com/images/icons/emoji/unicode/1f1fc-1f1f8.png?v8 + san_marino: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f2.png?v8 + sandal: https://github.githubassets.com/images/icons/emoji/unicode/1f461.png?v8 + sandwich: https://github.githubassets.com/images/icons/emoji/unicode/1f96a.png?v8 + santa: https://github.githubassets.com/images/icons/emoji/unicode/1f385.png?v8 + sao_tome_principe: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f9.png?v8 + sari: https://github.githubassets.com/images/icons/emoji/unicode/1f97b.png?v8 + sassy_man: https://github.githubassets.com/images/icons/emoji/unicode/1f481-2642.png?v8 + sassy_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f481-2640.png?v8 + satellite: https://github.githubassets.com/images/icons/emoji/unicode/1f4e1.png?v8 + satisfied: https://github.githubassets.com/images/icons/emoji/unicode/1f606.png?v8 + saudi_arabia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e6.png?v8 + sauna_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9d6-2642.png?v8 + sauna_person: https://github.githubassets.com/images/icons/emoji/unicode/1f9d6.png?v8 + sauna_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9d6-2640.png?v8 + sauropod: https://github.githubassets.com/images/icons/emoji/unicode/1f995.png?v8 + saxophone: https://github.githubassets.com/images/icons/emoji/unicode/1f3b7.png?v8 + scarf: https://github.githubassets.com/images/icons/emoji/unicode/1f9e3.png?v8 + school: https://github.githubassets.com/images/icons/emoji/unicode/1f3eb.png?v8 + school_satchel: https://github.githubassets.com/images/icons/emoji/unicode/1f392.png?v8 + scientist: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f52c.png?v8 + scissors: https://github.githubassets.com/images/icons/emoji/unicode/2702.png?v8 + scorpion: https://github.githubassets.com/images/icons/emoji/unicode/1f982.png?v8 + scorpius: https://github.githubassets.com/images/icons/emoji/unicode/264f.png?v8 + scotland: https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.png?v8 + scream: https://github.githubassets.com/images/icons/emoji/unicode/1f631.png?v8 + scream_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f640.png?v8 + screwdriver: https://github.githubassets.com/images/icons/emoji/unicode/1fa9b.png?v8 + scroll: https://github.githubassets.com/images/icons/emoji/unicode/1f4dc.png?v8 + seal: https://github.githubassets.com/images/icons/emoji/unicode/1f9ad.png?v8 + seat: https://github.githubassets.com/images/icons/emoji/unicode/1f4ba.png?v8 + secret: https://github.githubassets.com/images/icons/emoji/unicode/3299.png?v8 + see_no_evil: https://github.githubassets.com/images/icons/emoji/unicode/1f648.png?v8 + seedling: https://github.githubassets.com/images/icons/emoji/unicode/1f331.png?v8 + selfie: https://github.githubassets.com/images/icons/emoji/unicode/1f933.png?v8 + senegal: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f3.png?v8 + serbia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1f8.png?v8 + service_dog: https://github.githubassets.com/images/icons/emoji/unicode/1f415-1f9ba.png?v8 + seven: https://github.githubassets.com/images/icons/emoji/unicode/0037-20e3.png?v8 + sewing_needle: https://github.githubassets.com/images/icons/emoji/unicode/1faa1.png?v8 + seychelles: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e8.png?v8 + shallow_pan_of_food: https://github.githubassets.com/images/icons/emoji/unicode/1f958.png?v8 + shamrock: https://github.githubassets.com/images/icons/emoji/unicode/2618.png?v8 + shark: https://github.githubassets.com/images/icons/emoji/unicode/1f988.png?v8 + shaved_ice: https://github.githubassets.com/images/icons/emoji/unicode/1f367.png?v8 + sheep: https://github.githubassets.com/images/icons/emoji/unicode/1f411.png?v8 + shell: https://github.githubassets.com/images/icons/emoji/unicode/1f41a.png?v8 + shield: https://github.githubassets.com/images/icons/emoji/unicode/1f6e1.png?v8 + shinto_shrine: https://github.githubassets.com/images/icons/emoji/unicode/26e9.png?v8 + ship: https://github.githubassets.com/images/icons/emoji/unicode/1f6a2.png?v8 + shipit: https://github.githubassets.com/images/icons/emoji/shipit.png?v8 + shirt: https://github.githubassets.com/images/icons/emoji/unicode/1f455.png?v8 + shoe: https://github.githubassets.com/images/icons/emoji/unicode/1f45e.png?v8 + shopping: https://github.githubassets.com/images/icons/emoji/unicode/1f6cd.png?v8 + shopping_cart: https://github.githubassets.com/images/icons/emoji/unicode/1f6d2.png?v8 + shorts: https://github.githubassets.com/images/icons/emoji/unicode/1fa73.png?v8 + shower: https://github.githubassets.com/images/icons/emoji/unicode/1f6bf.png?v8 + shrimp: https://github.githubassets.com/images/icons/emoji/unicode/1f990.png?v8 + shrug: https://github.githubassets.com/images/icons/emoji/unicode/1f937.png?v8 + shushing_face: https://github.githubassets.com/images/icons/emoji/unicode/1f92b.png?v8 + sierra_leone: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f1.png?v8 + signal_strength: https://github.githubassets.com/images/icons/emoji/unicode/1f4f6.png?v8 + singapore: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ec.png?v8 + singer: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3a4.png?v8 + sint_maarten: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1fd.png?v8 + six: https://github.githubassets.com/images/icons/emoji/unicode/0036-20e3.png?v8 + six_pointed_star: https://github.githubassets.com/images/icons/emoji/unicode/1f52f.png?v8 + skateboard: https://github.githubassets.com/images/icons/emoji/unicode/1f6f9.png?v8 + ski: https://github.githubassets.com/images/icons/emoji/unicode/1f3bf.png?v8 + skier: https://github.githubassets.com/images/icons/emoji/unicode/26f7.png?v8 + skull: https://github.githubassets.com/images/icons/emoji/unicode/1f480.png?v8 + skull_and_crossbones: https://github.githubassets.com/images/icons/emoji/unicode/2620.png?v8 + skunk: https://github.githubassets.com/images/icons/emoji/unicode/1f9a8.png?v8 + sled: https://github.githubassets.com/images/icons/emoji/unicode/1f6f7.png?v8 + sleeping: https://github.githubassets.com/images/icons/emoji/unicode/1f634.png?v8 + sleeping_bed: https://github.githubassets.com/images/icons/emoji/unicode/1f6cc.png?v8 + sleepy: https://github.githubassets.com/images/icons/emoji/unicode/1f62a.png?v8 + slightly_frowning_face: https://github.githubassets.com/images/icons/emoji/unicode/1f641.png?v8 + slightly_smiling_face: https://github.githubassets.com/images/icons/emoji/unicode/1f642.png?v8 + slot_machine: https://github.githubassets.com/images/icons/emoji/unicode/1f3b0.png?v8 + sloth: https://github.githubassets.com/images/icons/emoji/unicode/1f9a5.png?v8 + slovakia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f0.png?v8 + slovenia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ee.png?v8 + small_airplane: https://github.githubassets.com/images/icons/emoji/unicode/1f6e9.png?v8 + small_blue_diamond: https://github.githubassets.com/images/icons/emoji/unicode/1f539.png?v8 + small_orange_diamond: https://github.githubassets.com/images/icons/emoji/unicode/1f538.png?v8 + small_red_triangle: https://github.githubassets.com/images/icons/emoji/unicode/1f53a.png?v8 + small_red_triangle_down: https://github.githubassets.com/images/icons/emoji/unicode/1f53b.png?v8 + smile: https://github.githubassets.com/images/icons/emoji/unicode/1f604.png?v8 + smile_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f638.png?v8 + smiley: https://github.githubassets.com/images/icons/emoji/unicode/1f603.png?v8 + smiley_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f63a.png?v8 + smiling_face_with_tear: https://github.githubassets.com/images/icons/emoji/unicode/1f972.png?v8 + smiling_face_with_three_hearts: https://github.githubassets.com/images/icons/emoji/unicode/1f970.png?v8 + smiling_imp: https://github.githubassets.com/images/icons/emoji/unicode/1f608.png?v8 + smirk: https://github.githubassets.com/images/icons/emoji/unicode/1f60f.png?v8 + smirk_cat: https://github.githubassets.com/images/icons/emoji/unicode/1f63c.png?v8 + smoking: https://github.githubassets.com/images/icons/emoji/unicode/1f6ac.png?v8 + snail: https://github.githubassets.com/images/icons/emoji/unicode/1f40c.png?v8 + snake: https://github.githubassets.com/images/icons/emoji/unicode/1f40d.png?v8 + sneezing_face: https://github.githubassets.com/images/icons/emoji/unicode/1f927.png?v8 + snowboarder: https://github.githubassets.com/images/icons/emoji/unicode/1f3c2.png?v8 + snowflake: https://github.githubassets.com/images/icons/emoji/unicode/2744.png?v8 + snowman: https://github.githubassets.com/images/icons/emoji/unicode/26c4.png?v8 + snowman_with_snow: https://github.githubassets.com/images/icons/emoji/unicode/2603.png?v8 + soap: https://github.githubassets.com/images/icons/emoji/unicode/1f9fc.png?v8 + sob: https://github.githubassets.com/images/icons/emoji/unicode/1f62d.png?v8 + soccer: https://github.githubassets.com/images/icons/emoji/unicode/26bd.png?v8 + socks: https://github.githubassets.com/images/icons/emoji/unicode/1f9e6.png?v8 + softball: https://github.githubassets.com/images/icons/emoji/unicode/1f94e.png?v8 + solomon_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e7.png?v8 + somalia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f4.png?v8 + soon: https://github.githubassets.com/images/icons/emoji/unicode/1f51c.png?v8 + sos: https://github.githubassets.com/images/icons/emoji/unicode/1f198.png?v8 + sound: https://github.githubassets.com/images/icons/emoji/unicode/1f509.png?v8 + south_africa: https://github.githubassets.com/images/icons/emoji/unicode/1f1ff-1f1e6.png?v8 + south_georgia_south_sandwich_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f8.png?v8 + south_sudan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f8.png?v8 + space_invader: https://github.githubassets.com/images/icons/emoji/unicode/1f47e.png?v8 + spades: https://github.githubassets.com/images/icons/emoji/unicode/2660.png?v8 + spaghetti: https://github.githubassets.com/images/icons/emoji/unicode/1f35d.png?v8 + sparkle: https://github.githubassets.com/images/icons/emoji/unicode/2747.png?v8 + sparkler: https://github.githubassets.com/images/icons/emoji/unicode/1f387.png?v8 + sparkles: https://github.githubassets.com/images/icons/emoji/unicode/2728.png?v8 + sparkling_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f496.png?v8 + speak_no_evil: https://github.githubassets.com/images/icons/emoji/unicode/1f64a.png?v8 + speaker: https://github.githubassets.com/images/icons/emoji/unicode/1f508.png?v8 + speaking_head: https://github.githubassets.com/images/icons/emoji/unicode/1f5e3.png?v8 + speech_balloon: https://github.githubassets.com/images/icons/emoji/unicode/1f4ac.png?v8 + speedboat: https://github.githubassets.com/images/icons/emoji/unicode/1f6a4.png?v8 + spider: https://github.githubassets.com/images/icons/emoji/unicode/1f577.png?v8 + spider_web: https://github.githubassets.com/images/icons/emoji/unicode/1f578.png?v8 + spiral_calendar: https://github.githubassets.com/images/icons/emoji/unicode/1f5d3.png?v8 + spiral_notepad: https://github.githubassets.com/images/icons/emoji/unicode/1f5d2.png?v8 + sponge: https://github.githubassets.com/images/icons/emoji/unicode/1f9fd.png?v8 + spoon: https://github.githubassets.com/images/icons/emoji/unicode/1f944.png?v8 + squid: https://github.githubassets.com/images/icons/emoji/unicode/1f991.png?v8 + sri_lanka: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f0.png?v8 + st_barthelemy: https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f1.png?v8 + st_helena: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ed.png?v8 + st_kitts_nevis: https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f3.png?v8 + st_lucia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1e8.png?v8 + st_martin: https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1eb.png?v8 + st_pierre_miquelon: https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f2.png?v8 + st_vincent_grenadines: https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1e8.png?v8 + stadium: https://github.githubassets.com/images/icons/emoji/unicode/1f3df.png?v8 + standing_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9cd-2642.png?v8 + standing_person: https://github.githubassets.com/images/icons/emoji/unicode/1f9cd.png?v8 + standing_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9cd-2640.png?v8 + star: https://github.githubassets.com/images/icons/emoji/unicode/2b50.png?v8 + star2: https://github.githubassets.com/images/icons/emoji/unicode/1f31f.png?v8 + star_and_crescent: https://github.githubassets.com/images/icons/emoji/unicode/262a.png?v8 + star_of_david: https://github.githubassets.com/images/icons/emoji/unicode/2721.png?v8 + star_struck: https://github.githubassets.com/images/icons/emoji/unicode/1f929.png?v8 + stars: https://github.githubassets.com/images/icons/emoji/unicode/1f320.png?v8 + station: https://github.githubassets.com/images/icons/emoji/unicode/1f689.png?v8 + statue_of_liberty: https://github.githubassets.com/images/icons/emoji/unicode/1f5fd.png?v8 + steam_locomotive: https://github.githubassets.com/images/icons/emoji/unicode/1f682.png?v8 + stethoscope: https://github.githubassets.com/images/icons/emoji/unicode/1fa7a.png?v8 + stew: https://github.githubassets.com/images/icons/emoji/unicode/1f372.png?v8 + stop_button: https://github.githubassets.com/images/icons/emoji/unicode/23f9.png?v8 + stop_sign: https://github.githubassets.com/images/icons/emoji/unicode/1f6d1.png?v8 + stopwatch: https://github.githubassets.com/images/icons/emoji/unicode/23f1.png?v8 + straight_ruler: https://github.githubassets.com/images/icons/emoji/unicode/1f4cf.png?v8 + strawberry: https://github.githubassets.com/images/icons/emoji/unicode/1f353.png?v8 + stuck_out_tongue: https://github.githubassets.com/images/icons/emoji/unicode/1f61b.png?v8 + stuck_out_tongue_closed_eyes: https://github.githubassets.com/images/icons/emoji/unicode/1f61d.png?v8 + stuck_out_tongue_winking_eye: https://github.githubassets.com/images/icons/emoji/unicode/1f61c.png?v8 + student: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f393.png?v8 + studio_microphone: https://github.githubassets.com/images/icons/emoji/unicode/1f399.png?v8 + stuffed_flatbread: https://github.githubassets.com/images/icons/emoji/unicode/1f959.png?v8 + sudan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e9.png?v8 + sun_behind_large_cloud: https://github.githubassets.com/images/icons/emoji/unicode/1f325.png?v8 + sun_behind_rain_cloud: https://github.githubassets.com/images/icons/emoji/unicode/1f326.png?v8 + sun_behind_small_cloud: https://github.githubassets.com/images/icons/emoji/unicode/1f324.png?v8 + sun_with_face: https://github.githubassets.com/images/icons/emoji/unicode/1f31e.png?v8 + sunflower: https://github.githubassets.com/images/icons/emoji/unicode/1f33b.png?v8 + sunglasses: https://github.githubassets.com/images/icons/emoji/unicode/1f60e.png?v8 + sunny: https://github.githubassets.com/images/icons/emoji/unicode/2600.png?v8 + sunrise: https://github.githubassets.com/images/icons/emoji/unicode/1f305.png?v8 + sunrise_over_mountains: https://github.githubassets.com/images/icons/emoji/unicode/1f304.png?v8 + superhero: https://github.githubassets.com/images/icons/emoji/unicode/1f9b8.png?v8 + superhero_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9b8-2642.png?v8 + superhero_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9b8-2640.png?v8 + supervillain: https://github.githubassets.com/images/icons/emoji/unicode/1f9b9.png?v8 + supervillain_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9b9-2642.png?v8 + supervillain_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9b9-2640.png?v8 + surfer: https://github.githubassets.com/images/icons/emoji/unicode/1f3c4.png?v8 + surfing_man: https://github.githubassets.com/images/icons/emoji/unicode/1f3c4-2642.png?v8 + surfing_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f3c4-2640.png?v8 + suriname: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f7.png?v8 + sushi: https://github.githubassets.com/images/icons/emoji/unicode/1f363.png?v8 + suspect: https://github.githubassets.com/images/icons/emoji/suspect.png?v8 + suspension_railway: https://github.githubassets.com/images/icons/emoji/unicode/1f69f.png?v8 + svalbard_jan_mayen: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ef.png?v8 + swan: https://github.githubassets.com/images/icons/emoji/unicode/1f9a2.png?v8 + swaziland: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ff.png?v8 + sweat: https://github.githubassets.com/images/icons/emoji/unicode/1f613.png?v8 + sweat_drops: https://github.githubassets.com/images/icons/emoji/unicode/1f4a6.png?v8 + sweat_smile: https://github.githubassets.com/images/icons/emoji/unicode/1f605.png?v8 + sweden: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ea.png?v8 + sweet_potato: https://github.githubassets.com/images/icons/emoji/unicode/1f360.png?v8 + swim_brief: https://github.githubassets.com/images/icons/emoji/unicode/1fa72.png?v8 + swimmer: https://github.githubassets.com/images/icons/emoji/unicode/1f3ca.png?v8 + swimming_man: https://github.githubassets.com/images/icons/emoji/unicode/1f3ca-2642.png?v8 + swimming_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f3ca-2640.png?v8 + switzerland: https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ed.png?v8 + symbols: https://github.githubassets.com/images/icons/emoji/unicode/1f523.png?v8 + synagogue: https://github.githubassets.com/images/icons/emoji/unicode/1f54d.png?v8 + syria: https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1fe.png?v8 + syringe: https://github.githubassets.com/images/icons/emoji/unicode/1f489.png?v8 + t-rex: https://github.githubassets.com/images/icons/emoji/unicode/1f996.png?v8 + taco: https://github.githubassets.com/images/icons/emoji/unicode/1f32e.png?v8 + tada: https://github.githubassets.com/images/icons/emoji/unicode/1f389.png?v8 + taiwan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1fc.png?v8 + tajikistan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ef.png?v8 + takeout_box: https://github.githubassets.com/images/icons/emoji/unicode/1f961.png?v8 + tamale: https://github.githubassets.com/images/icons/emoji/unicode/1fad4.png?v8 + tanabata_tree: https://github.githubassets.com/images/icons/emoji/unicode/1f38b.png?v8 + tangerine: https://github.githubassets.com/images/icons/emoji/unicode/1f34a.png?v8 + tanzania: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ff.png?v8 + taurus: https://github.githubassets.com/images/icons/emoji/unicode/2649.png?v8 + taxi: https://github.githubassets.com/images/icons/emoji/unicode/1f695.png?v8 + tea: https://github.githubassets.com/images/icons/emoji/unicode/1f375.png?v8 + teacher: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3eb.png?v8 + teapot: https://github.githubassets.com/images/icons/emoji/unicode/1fad6.png?v8 + technologist: https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f4bb.png?v8 + teddy_bear: https://github.githubassets.com/images/icons/emoji/unicode/1f9f8.png?v8 + telephone: https://github.githubassets.com/images/icons/emoji/unicode/260e.png?v8 + telephone_receiver: https://github.githubassets.com/images/icons/emoji/unicode/1f4de.png?v8 + telescope: https://github.githubassets.com/images/icons/emoji/unicode/1f52d.png?v8 + tennis: https://github.githubassets.com/images/icons/emoji/unicode/1f3be.png?v8 + tent: https://github.githubassets.com/images/icons/emoji/unicode/26fa.png?v8 + test_tube: https://github.githubassets.com/images/icons/emoji/unicode/1f9ea.png?v8 + thailand: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ed.png?v8 + thermometer: https://github.githubassets.com/images/icons/emoji/unicode/1f321.png?v8 + thinking: https://github.githubassets.com/images/icons/emoji/unicode/1f914.png?v8 + thong_sandal: https://github.githubassets.com/images/icons/emoji/unicode/1fa74.png?v8 + thought_balloon: https://github.githubassets.com/images/icons/emoji/unicode/1f4ad.png?v8 + thread: https://github.githubassets.com/images/icons/emoji/unicode/1f9f5.png?v8 + three: https://github.githubassets.com/images/icons/emoji/unicode/0033-20e3.png?v8 + thumbsdown: https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png?v8 + thumbsup: https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png?v8 + ticket: https://github.githubassets.com/images/icons/emoji/unicode/1f3ab.png?v8 + tickets: https://github.githubassets.com/images/icons/emoji/unicode/1f39f.png?v8 + tiger: https://github.githubassets.com/images/icons/emoji/unicode/1f42f.png?v8 + tiger2: https://github.githubassets.com/images/icons/emoji/unicode/1f405.png?v8 + timer_clock: https://github.githubassets.com/images/icons/emoji/unicode/23f2.png?v8 + timor_leste: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f1.png?v8 + tipping_hand_man: https://github.githubassets.com/images/icons/emoji/unicode/1f481-2642.png?v8 + tipping_hand_person: https://github.githubassets.com/images/icons/emoji/unicode/1f481.png?v8 + tipping_hand_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f481-2640.png?v8 + tired_face: https://github.githubassets.com/images/icons/emoji/unicode/1f62b.png?v8 + tm: https://github.githubassets.com/images/icons/emoji/unicode/2122.png?v8 + togo: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ec.png?v8 + toilet: https://github.githubassets.com/images/icons/emoji/unicode/1f6bd.png?v8 + tokelau: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f0.png?v8 + tokyo_tower: https://github.githubassets.com/images/icons/emoji/unicode/1f5fc.png?v8 + tomato: https://github.githubassets.com/images/icons/emoji/unicode/1f345.png?v8 + tonga: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f4.png?v8 + tongue: https://github.githubassets.com/images/icons/emoji/unicode/1f445.png?v8 + toolbox: https://github.githubassets.com/images/icons/emoji/unicode/1f9f0.png?v8 + tooth: https://github.githubassets.com/images/icons/emoji/unicode/1f9b7.png?v8 + toothbrush: https://github.githubassets.com/images/icons/emoji/unicode/1faa5.png?v8 + top: https://github.githubassets.com/images/icons/emoji/unicode/1f51d.png?v8 + tophat: https://github.githubassets.com/images/icons/emoji/unicode/1f3a9.png?v8 + tornado: https://github.githubassets.com/images/icons/emoji/unicode/1f32a.png?v8 + tr: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f7.png?v8 + trackball: https://github.githubassets.com/images/icons/emoji/unicode/1f5b2.png?v8 + tractor: https://github.githubassets.com/images/icons/emoji/unicode/1f69c.png?v8 + traffic_light: https://github.githubassets.com/images/icons/emoji/unicode/1f6a5.png?v8 + train: https://github.githubassets.com/images/icons/emoji/unicode/1f68b.png?v8 + train2: https://github.githubassets.com/images/icons/emoji/unicode/1f686.png?v8 + tram: https://github.githubassets.com/images/icons/emoji/unicode/1f68a.png?v8 + transgender_flag: https://github.githubassets.com/images/icons/emoji/unicode/1f3f3-26a7.png?v8 + transgender_symbol: https://github.githubassets.com/images/icons/emoji/unicode/26a7.png?v8 + triangular_flag_on_post: https://github.githubassets.com/images/icons/emoji/unicode/1f6a9.png?v8 + triangular_ruler: https://github.githubassets.com/images/icons/emoji/unicode/1f4d0.png?v8 + trident: https://github.githubassets.com/images/icons/emoji/unicode/1f531.png?v8 + trinidad_tobago: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f9.png?v8 + tristan_da_cunha: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1e6.png?v8 + triumph: https://github.githubassets.com/images/icons/emoji/unicode/1f624.png?v8 + trolleybus: https://github.githubassets.com/images/icons/emoji/unicode/1f68e.png?v8 + trollface: https://github.githubassets.com/images/icons/emoji/trollface.png?v8 + trophy: https://github.githubassets.com/images/icons/emoji/unicode/1f3c6.png?v8 + tropical_drink: https://github.githubassets.com/images/icons/emoji/unicode/1f379.png?v8 + tropical_fish: https://github.githubassets.com/images/icons/emoji/unicode/1f420.png?v8 + truck: https://github.githubassets.com/images/icons/emoji/unicode/1f69a.png?v8 + trumpet: https://github.githubassets.com/images/icons/emoji/unicode/1f3ba.png?v8 + tshirt: https://github.githubassets.com/images/icons/emoji/unicode/1f455.png?v8 + tulip: https://github.githubassets.com/images/icons/emoji/unicode/1f337.png?v8 + tumbler_glass: https://github.githubassets.com/images/icons/emoji/unicode/1f943.png?v8 + tunisia: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f3.png?v8 + turkey: https://github.githubassets.com/images/icons/emoji/unicode/1f983.png?v8 + turkmenistan: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f2.png?v8 + turks_caicos_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1e8.png?v8 + turtle: https://github.githubassets.com/images/icons/emoji/unicode/1f422.png?v8 + tuvalu: https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1fb.png?v8 + tv: https://github.githubassets.com/images/icons/emoji/unicode/1f4fa.png?v8 + twisted_rightwards_arrows: https://github.githubassets.com/images/icons/emoji/unicode/1f500.png?v8 + two: https://github.githubassets.com/images/icons/emoji/unicode/0032-20e3.png?v8 + two_hearts: https://github.githubassets.com/images/icons/emoji/unicode/1f495.png?v8 + two_men_holding_hands: https://github.githubassets.com/images/icons/emoji/unicode/1f46c.png?v8 + two_women_holding_hands: https://github.githubassets.com/images/icons/emoji/unicode/1f46d.png?v8 + u5272: https://github.githubassets.com/images/icons/emoji/unicode/1f239.png?v8 + u5408: https://github.githubassets.com/images/icons/emoji/unicode/1f234.png?v8 + u55b6: https://github.githubassets.com/images/icons/emoji/unicode/1f23a.png?v8 + u6307: https://github.githubassets.com/images/icons/emoji/unicode/1f22f.png?v8 + u6708: https://github.githubassets.com/images/icons/emoji/unicode/1f237.png?v8 + u6709: https://github.githubassets.com/images/icons/emoji/unicode/1f236.png?v8 + u6e80: https://github.githubassets.com/images/icons/emoji/unicode/1f235.png?v8 + u7121: https://github.githubassets.com/images/icons/emoji/unicode/1f21a.png?v8 + u7533: https://github.githubassets.com/images/icons/emoji/unicode/1f238.png?v8 + u7981: https://github.githubassets.com/images/icons/emoji/unicode/1f232.png?v8 + u7a7a: https://github.githubassets.com/images/icons/emoji/unicode/1f233.png?v8 + uganda: https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1ec.png?v8 + uk: https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png?v8 + ukraine: https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1e6.png?v8 + umbrella: https://github.githubassets.com/images/icons/emoji/unicode/2614.png?v8 + unamused: https://github.githubassets.com/images/icons/emoji/unicode/1f612.png?v8 + underage: https://github.githubassets.com/images/icons/emoji/unicode/1f51e.png?v8 + unicorn: https://github.githubassets.com/images/icons/emoji/unicode/1f984.png?v8 + united_arab_emirates: https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ea.png?v8 + united_nations: https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1f3.png?v8 + unlock: https://github.githubassets.com/images/icons/emoji/unicode/1f513.png?v8 + up: https://github.githubassets.com/images/icons/emoji/unicode/1f199.png?v8 + upside_down_face: https://github.githubassets.com/images/icons/emoji/unicode/1f643.png?v8 + uruguay: https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1fe.png?v8 + us: https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1f8.png?v8 + us_outlying_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1f2.png?v8 + us_virgin_islands: https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1ee.png?v8 + uzbekistan: https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1ff.png?v8 + v: https://github.githubassets.com/images/icons/emoji/unicode/270c.png?v8 + vampire: https://github.githubassets.com/images/icons/emoji/unicode/1f9db.png?v8 + vampire_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9db-2642.png?v8 + vampire_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9db-2640.png?v8 + vanuatu: https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1fa.png?v8 + vatican_city: https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1e6.png?v8 + venezuela: https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1ea.png?v8 + vertical_traffic_light: https://github.githubassets.com/images/icons/emoji/unicode/1f6a6.png?v8 + vhs: https://github.githubassets.com/images/icons/emoji/unicode/1f4fc.png?v8 + vibration_mode: https://github.githubassets.com/images/icons/emoji/unicode/1f4f3.png?v8 + video_camera: https://github.githubassets.com/images/icons/emoji/unicode/1f4f9.png?v8 + video_game: https://github.githubassets.com/images/icons/emoji/unicode/1f3ae.png?v8 + vietnam: https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1f3.png?v8 + violin: https://github.githubassets.com/images/icons/emoji/unicode/1f3bb.png?v8 + virgo: https://github.githubassets.com/images/icons/emoji/unicode/264d.png?v8 + volcano: https://github.githubassets.com/images/icons/emoji/unicode/1f30b.png?v8 + volleyball: https://github.githubassets.com/images/icons/emoji/unicode/1f3d0.png?v8 + vomiting_face: https://github.githubassets.com/images/icons/emoji/unicode/1f92e.png?v8 + vs: https://github.githubassets.com/images/icons/emoji/unicode/1f19a.png?v8 + vulcan_salute: https://github.githubassets.com/images/icons/emoji/unicode/1f596.png?v8 + waffle: https://github.githubassets.com/images/icons/emoji/unicode/1f9c7.png?v8 + wales: https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.png?v8 + walking: https://github.githubassets.com/images/icons/emoji/unicode/1f6b6.png?v8 + walking_man: https://github.githubassets.com/images/icons/emoji/unicode/1f6b6-2642.png?v8 + walking_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f6b6-2640.png?v8 + wallis_futuna: https://github.githubassets.com/images/icons/emoji/unicode/1f1fc-1f1eb.png?v8 + waning_crescent_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f318.png?v8 + waning_gibbous_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f316.png?v8 + warning: https://github.githubassets.com/images/icons/emoji/unicode/26a0.png?v8 + wastebasket: https://github.githubassets.com/images/icons/emoji/unicode/1f5d1.png?v8 + watch: https://github.githubassets.com/images/icons/emoji/unicode/231a.png?v8 + water_buffalo: https://github.githubassets.com/images/icons/emoji/unicode/1f403.png?v8 + water_polo: https://github.githubassets.com/images/icons/emoji/unicode/1f93d.png?v8 + watermelon: https://github.githubassets.com/images/icons/emoji/unicode/1f349.png?v8 + wave: https://github.githubassets.com/images/icons/emoji/unicode/1f44b.png?v8 + wavy_dash: https://github.githubassets.com/images/icons/emoji/unicode/3030.png?v8 + waxing_crescent_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f312.png?v8 + waxing_gibbous_moon: https://github.githubassets.com/images/icons/emoji/unicode/1f314.png?v8 + wc: https://github.githubassets.com/images/icons/emoji/unicode/1f6be.png?v8 + weary: https://github.githubassets.com/images/icons/emoji/unicode/1f629.png?v8 + wedding: https://github.githubassets.com/images/icons/emoji/unicode/1f492.png?v8 + weight_lifting: https://github.githubassets.com/images/icons/emoji/unicode/1f3cb.png?v8 + weight_lifting_man: https://github.githubassets.com/images/icons/emoji/unicode/1f3cb-2642.png?v8 + weight_lifting_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f3cb-2640.png?v8 + western_sahara: https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ed.png?v8 + whale: https://github.githubassets.com/images/icons/emoji/unicode/1f433.png?v8 + whale2: https://github.githubassets.com/images/icons/emoji/unicode/1f40b.png?v8 + wheel_of_dharma: https://github.githubassets.com/images/icons/emoji/unicode/2638.png?v8 + wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/267f.png?v8 + white_check_mark: https://github.githubassets.com/images/icons/emoji/unicode/2705.png?v8 + white_circle: https://github.githubassets.com/images/icons/emoji/unicode/26aa.png?v8 + white_flag: https://github.githubassets.com/images/icons/emoji/unicode/1f3f3.png?v8 + white_flower: https://github.githubassets.com/images/icons/emoji/unicode/1f4ae.png?v8 + white_haired_man: https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b3.png?v8 + white_haired_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b3.png?v8 + white_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f90d.png?v8 + white_large_square: https://github.githubassets.com/images/icons/emoji/unicode/2b1c.png?v8 + white_medium_small_square: https://github.githubassets.com/images/icons/emoji/unicode/25fd.png?v8 + white_medium_square: https://github.githubassets.com/images/icons/emoji/unicode/25fb.png?v8 + white_small_square: https://github.githubassets.com/images/icons/emoji/unicode/25ab.png?v8 + white_square_button: https://github.githubassets.com/images/icons/emoji/unicode/1f533.png?v8 + wilted_flower: https://github.githubassets.com/images/icons/emoji/unicode/1f940.png?v8 + wind_chime: https://github.githubassets.com/images/icons/emoji/unicode/1f390.png?v8 + wind_face: https://github.githubassets.com/images/icons/emoji/unicode/1f32c.png?v8 + window: https://github.githubassets.com/images/icons/emoji/unicode/1fa9f.png?v8 + wine_glass: https://github.githubassets.com/images/icons/emoji/unicode/1f377.png?v8 + wink: https://github.githubassets.com/images/icons/emoji/unicode/1f609.png?v8 + wolf: https://github.githubassets.com/images/icons/emoji/unicode/1f43a.png?v8 + woman: https://github.githubassets.com/images/icons/emoji/unicode/1f469.png?v8 + woman_artist: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3a8.png?v8 + woman_astronaut: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f680.png?v8 + woman_beard: https://github.githubassets.com/images/icons/emoji/unicode/1f9d4-2640.png?v8 + woman_cartwheeling: https://github.githubassets.com/images/icons/emoji/unicode/1f938-2640.png?v8 + woman_cook: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f373.png?v8 + woman_dancing: https://github.githubassets.com/images/icons/emoji/unicode/1f483.png?v8 + woman_facepalming: https://github.githubassets.com/images/icons/emoji/unicode/1f926-2640.png?v8 + woman_factory_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3ed.png?v8 + woman_farmer: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f33e.png?v8 + woman_feeding_baby: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f37c.png?v8 + woman_firefighter: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f692.png?v8 + woman_health_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f469-2695.png?v8 + woman_in_manual_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9bd.png?v8 + woman_in_motorized_wheelchair: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9bc.png?v8 + woman_in_tuxedo: https://github.githubassets.com/images/icons/emoji/unicode/1f935-2640.png?v8 + woman_judge: https://github.githubassets.com/images/icons/emoji/unicode/1f469-2696.png?v8 + woman_juggling: https://github.githubassets.com/images/icons/emoji/unicode/1f939-2640.png?v8 + woman_mechanic: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f527.png?v8 + woman_office_worker: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f4bc.png?v8 + woman_pilot: https://github.githubassets.com/images/icons/emoji/unicode/1f469-2708.png?v8 + woman_playing_handball: https://github.githubassets.com/images/icons/emoji/unicode/1f93e-2640.png?v8 + woman_playing_water_polo: https://github.githubassets.com/images/icons/emoji/unicode/1f93d-2640.png?v8 + woman_scientist: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f52c.png?v8 + woman_shrugging: https://github.githubassets.com/images/icons/emoji/unicode/1f937-2640.png?v8 + woman_singer: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3a4.png?v8 + woman_student: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f393.png?v8 + woman_teacher: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3eb.png?v8 + woman_technologist: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f4bb.png?v8 + woman_with_headscarf: https://github.githubassets.com/images/icons/emoji/unicode/1f9d5.png?v8 + woman_with_probing_cane: https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9af.png?v8 + woman_with_turban: https://github.githubassets.com/images/icons/emoji/unicode/1f473-2640.png?v8 + woman_with_veil: https://github.githubassets.com/images/icons/emoji/unicode/1f470-2640.png?v8 + womans_clothes: https://github.githubassets.com/images/icons/emoji/unicode/1f45a.png?v8 + womans_hat: https://github.githubassets.com/images/icons/emoji/unicode/1f452.png?v8 + women_wrestling: https://github.githubassets.com/images/icons/emoji/unicode/1f93c-2640.png?v8 + womens: https://github.githubassets.com/images/icons/emoji/unicode/1f6ba.png?v8 + wood: https://github.githubassets.com/images/icons/emoji/unicode/1fab5.png?v8 + woozy_face: https://github.githubassets.com/images/icons/emoji/unicode/1f974.png?v8 + world_map: https://github.githubassets.com/images/icons/emoji/unicode/1f5fa.png?v8 + worm: https://github.githubassets.com/images/icons/emoji/unicode/1fab1.png?v8 + worried: https://github.githubassets.com/images/icons/emoji/unicode/1f61f.png?v8 + wrench: https://github.githubassets.com/images/icons/emoji/unicode/1f527.png?v8 + wrestling: https://github.githubassets.com/images/icons/emoji/unicode/1f93c.png?v8 + writing_hand: https://github.githubassets.com/images/icons/emoji/unicode/270d.png?v8 + x: https://github.githubassets.com/images/icons/emoji/unicode/274c.png?v8 + yarn: https://github.githubassets.com/images/icons/emoji/unicode/1f9f6.png?v8 + yawning_face: https://github.githubassets.com/images/icons/emoji/unicode/1f971.png?v8 + yellow_circle: https://github.githubassets.com/images/icons/emoji/unicode/1f7e1.png?v8 + yellow_heart: https://github.githubassets.com/images/icons/emoji/unicode/1f49b.png?v8 + yellow_square: https://github.githubassets.com/images/icons/emoji/unicode/1f7e8.png?v8 + yemen: https://github.githubassets.com/images/icons/emoji/unicode/1f1fe-1f1ea.png?v8 + yen: https://github.githubassets.com/images/icons/emoji/unicode/1f4b4.png?v8 + yin_yang: https://github.githubassets.com/images/icons/emoji/unicode/262f.png?v8 + yo_yo: https://github.githubassets.com/images/icons/emoji/unicode/1fa80.png?v8 + yum: https://github.githubassets.com/images/icons/emoji/unicode/1f60b.png?v8 + zambia: https://github.githubassets.com/images/icons/emoji/unicode/1f1ff-1f1f2.png?v8 + zany_face: https://github.githubassets.com/images/icons/emoji/unicode/1f92a.png?v8 + zap: https://github.githubassets.com/images/icons/emoji/unicode/26a1.png?v8 + zebra: https://github.githubassets.com/images/icons/emoji/unicode/1f993.png?v8 + zero: https://github.githubassets.com/images/icons/emoji/unicode/0030-20e3.png?v8 + zimbabwe: https://github.githubassets.com/images/icons/emoji/unicode/1f1ff-1f1fc.png?v8 + zipper_mouth_face: https://github.githubassets.com/images/icons/emoji/unicode/1f910.png?v8 + zombie: https://github.githubassets.com/images/icons/emoji/unicode/1f9df.png?v8 + zombie_man: https://github.githubassets.com/images/icons/emoji/unicode/1f9df-2642.png?v8 + zombie_woman: https://github.githubassets.com/images/icons/emoji/unicode/1f9df-2640.png?v8 + zzz: https://github.githubassets.com/images/icons/emoji/unicode/1f4a4.png?v8 + actions-cache-retention-limit: + value: + max_cache_retention_days: 80 + actions-cache-storage-limit: + value: + max_cache_size_gb: 150 + enterprise-code-security-configuration-list: + value: + - id: 17 + target_type: global + name: GitHub recommended + description: Suggested settings for Dependabot, secret scanning, and code + scanning. + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: not_set + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: enabled + code_scanning_default_setup_options: + runner_type: not_set + runner_label: + secret_scanning: enabled + secret_scanning_push_protection: enabled + secret_scanning_validity_checks: enabled + secret_scanning_non_provider_patterns: enabled + private_vulnerability_reporting: enabled + enforcement: enforced + url: https://api.github.com/enterprises/octo-enterprise/code-security/configurations/17 + html_url: https://github.com/organizations/octo-enterprise/settings/security_analysis/configurations/17/view + created_at: '2023-12-04T15:58:07Z' + updated_at: '2023-12-04T15:58:07Z' + - id: 1326 + target_type: enterprise + name: High risk settings + description: This is a code security configuration for octo-enterprise high + risk repositories + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: enabled + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: enabled + code_scanning_default_setup: enabled + code_scanning_default_setup_options: + runner_type: not_set + runner_label: + secret_scanning: enabled + secret_scanning_push_protection: enabled + secret_scanning_validity_checks: disabled + secret_scanning_non_provider_patterns: disabled + private_vulnerability_reporting: enabled + enforcement: enforced + url: https://api.github.com/enterprises/octo-enterprise/code-security/configurations/1326 + html_url: https://github.com/enterprises/octo-enterprise/settings/security_analysis/configurations/1326/edit + created_at: '2024-05-10T00:00:00Z' + updated_at: '2024-05-10T00:00:00Z' + enterprise-code-security-configuration: + value: + id: 1325 + target_type: enterprise + name: High risk settings + description: This is a code security configuration for octo-enterprise + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: enabled + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: disabled + code_scanning_delegated_alert_dismissal: disabled + secret_scanning: enabled + secret_scanning_push_protection: disabled + secret_scanning_delegated_bypass: disabled + secret_scanning_validity_checks: disabled + secret_scanning_non_provider_patterns: disabled + secret_scanning_generic_secrets: disabled + secret_scanning_delegated_alert_dismissal: disabled + private_vulnerability_reporting: disabled + enforcement: enforced + url: https://api.github.com/enterprises/octo-enterprise/code-security/configurations/1325 + html_url: https://github.com/enterprises/octo-enterprise/settings/security_analysis/configurations/1325/edit + created_at: '2024-05-01T00:00:00Z' + updated_at: '2024-05-01T00:00:00Z' + code-security-default-configurations: + value: + - default_for_new_repos: public + configuration: + id: 1325 + target_type: organization + name: octo-org recommended settings + description: This is a code security configuration for octo-org + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: not_set + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: enabled + code_scanning_default_setup_options: + runner_type: not_set + runner_label: + code_scanning_options: + allow_advanced: false + secret_scanning: enabled + secret_scanning_push_protection: enabled + secret_scanning_delegated_bypass: enabled + secret_scanning_delegated_bypass_options: + reviewers: + - security_configuration_id: 1325 + reviewer_id: 5678 + reviewer_type: TEAM + secret_scanning_validity_checks: enabled + secret_scanning_non_provider_patterns: enabled + private_vulnerability_reporting: enabled + enforcement: enforced + url: https://api.github.com/orgs/octo-org/code-security/configurations/1325 + html_url: https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325 + created_at: '2024-05-01T00:00:00Z' + updated_at: '2024-05-01T00:00:00Z' + - default_for_new_repos: private_and_internal + configuration: + id: 17 + target_type: global + name: GitHub recommended + description: Suggested settings for Dependabot, secret scanning, and code + scanning. + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: not_set + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: enabled + code_scanning_default_setup_options: + runner_type: not_set + runner_label: + code_scanning_options: + allow_advanced: false + secret_scanning: enabled + secret_scanning_push_protection: enabled + secret_scanning_delegated_bypass: disabled + secret_scanning_validity_checks: disabled + private_vulnerability_reporting: enabled + enforcement: enforced + url: https://api.github.com/orgs/octo-org/code-security/configurations/17 + html_url: https://github.com/organizations/octo-org/settings/security_products/configurations/view + created_at: '2023-12-04T15:58:07Z' + updated_at: '2023-12-04T15:58:07Z' + code-security-configuration: + value: + id: 1325 + target_type: organization + name: octo-org recommended settings + description: This is a code security configuration for octo-org + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: enabled + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: disabled + code_scanning_default_setup_options: + runner_type: not_set + runner_label: + code_scanning_options: + allow_advanced: false + code_scanning_delegated_alert_dismissal: disabled + secret_scanning: enabled + secret_scanning_push_protection: disabled + secret_scanning_delegated_bypass: disabled + secret_scanning_validity_checks: disabled + secret_scanning_non_provider_patterns: disabled + secret_scanning_generic_secrets: disabled + secret_scanning_delegated_alert_dismissal: disabled + private_vulnerability_reporting: disabled + enforcement: enforced + url: https://api.github.com/orgs/octo-org/code-security/configurations/1325 + html_url: https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325 + created_at: '2024-05-01T00:00:00Z' + updated_at: '2024-05-01T00:00:00Z' + simple-repository: + value: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + dependabot-alerts-for-organization: + value: + - number: 2 + state: dismissed + dependency: + package: + ecosystem: pip + name: django + manifest_path: path/to/requirements.txt + scope: runtime + security_advisory: + ghsa_id: GHSA-rf4j-j272-fj86 + cve_id: CVE-2018-6188 + summary: Django allows remote attackers to obtain potentially sensitive + information by leveraging data exposure from the confirm_login_allowed() + method, as demonstrated by discovering whether a user account is inactive + description: django.contrib.auth.forms.AuthenticationForm in Django 2.0 + before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain + potentially sensitive information by leveraging data exposure from the + confirm_login_allowed() method, as demonstrated by discovering whether + a user account is inactive. + vulnerabilities: + - package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 2.0.0, < 2.0.2" + first_patched_version: + identifier: 2.0.2 + - package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 1.11.8, < 1.11.10" + first_patched_version: + identifier: 1.11.10 + severity: high + cvss: + vector_string: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N + score: 7.5 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N + score: 7.5 + cvss_v4: + vector_string: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N + score: 8.7 + epss: + - percentage: 0.00045 + percentile: 0.16001e0 + cwes: + - cwe_id: CWE-200 + name: Exposure of Sensitive Information to an Unauthorized Actor + identifiers: + - type: GHSA + value: GHSA-rf4j-j272-fj86 + - type: CVE + value: CVE-2018-6188 + references: + - url: https://nvd.nist.gov/vuln/detail/CVE-2018-6188 + - url: https://github.com/advisories/GHSA-rf4j-j272-fj86 + - url: https://usn.ubuntu.com/3559-1/ + - url: https://www.djangoproject.com/weblog/2018/feb/01/security-releases/ + - url: http://www.securitytracker.com/id/1040422 + published_at: '2018-10-03T21:13:54Z' + updated_at: '2022-04-26T18:35:37Z' + withdrawn_at: + security_vulnerability: + package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 2.0.0, < 2.0.2" + first_patched_version: + identifier: 2.0.2 + url: https://api.github.com/repos/octo-org/octo-repo/dependabot/alerts/2 + html_url: https://github.com/octo-org/octo-repo/security/dependabot/2 + created_at: '2022-06-15T07:43:03Z' + updated_at: '2022-08-23T14:29:47Z' + dismissed_at: '2022-08-23T14:29:47Z' + dismissed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + dismissed_reason: tolerable_risk + dismissed_comment: This alert is accurate but we use a sanitizer. + fixed_at: + repository: + id: 217723378 + node_id: MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg= + name: octo-repo + full_name: octo-org/octo-repo + owner: + login: octo-org + id: 6811672 + node_id: MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI= + avatar_url: https://avatars3.githubusercontent.com/u/6811672?v=4 + gravatar_id: '' + url: https://api.github.com/users/octo-org + html_url: https://github.com/octo-org + followers_url: https://api.github.com/users/octo-org/followers + following_url: https://api.github.com/users/octo-org/following{/other_user} + gists_url: https://api.github.com/users/octo-org/gists{/gist_id} + starred_url: https://api.github.com/users/octo-org/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octo-org/subscriptions + organizations_url: https://api.github.com/users/octo-org/orgs + repos_url: https://api.github.com/users/octo-org/repos + events_url: https://api.github.com/users/octo-org/events{/privacy} + received_events_url: https://api.github.com/users/octo-org/received_events + type: Organization + site_admin: false + private: true + html_url: https://github.com/octo-org/octo-repo + description: + fork: false + url: https://api.github.com/repos/octo-org/octo-repo + archive_url: https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octo-org/octo-repo/assignees{/user} + blobs_url: https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha} + branches_url: https://api.github.com/repos/octo-org/octo-repo/branches{/branch} + collaborators_url: https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octo-org/octo-repo/comments{/number} + commits_url: https://api.github.com/repos/octo-org/octo-repo/commits{/sha} + compare_url: https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head} + contents_url: https://api.github.com/repos/octo-org/octo-repo/contents/{+path} + contributors_url: https://api.github.com/repos/octo-org/octo-repo/contributors + deployments_url: https://api.github.com/repos/octo-org/octo-repo/deployments + downloads_url: https://api.github.com/repos/octo-org/octo-repo/downloads + events_url: https://api.github.com/repos/octo-org/octo-repo/events + forks_url: https://api.github.com/repos/octo-org/octo-repo/forks + git_commits_url: https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha} + hooks_url: https://api.github.com/repos/octo-org/octo-repo/hooks + issue_comment_url: https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octo-org/octo-repo/issues/events{/number} + issues_url: https://api.github.com/repos/octo-org/octo-repo/issues{/number} + keys_url: https://api.github.com/repos/octo-org/octo-repo/keys{/key_id} + labels_url: https://api.github.com/repos/octo-org/octo-repo/labels{/name} + languages_url: https://api.github.com/repos/octo-org/octo-repo/languages + merges_url: https://api.github.com/repos/octo-org/octo-repo/merges + milestones_url: https://api.github.com/repos/octo-org/octo-repo/milestones{/number} + notifications_url: https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octo-org/octo-repo/pulls{/number} + releases_url: https://api.github.com/repos/octo-org/octo-repo/releases{/id} + stargazers_url: https://api.github.com/repos/octo-org/octo-repo/stargazers + statuses_url: https://api.github.com/repos/octo-org/octo-repo/statuses/{sha} + subscribers_url: https://api.github.com/repos/octo-org/octo-repo/subscribers + subscription_url: https://api.github.com/repos/octo-org/octo-repo/subscription + tags_url: https://api.github.com/repos/octo-org/octo-repo/tags + teams_url: https://api.github.com/repos/octo-org/octo-repo/teams + trees_url: https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha} + - number: 1 + state: open + dependency: + package: + ecosystem: pip + name: ansible + manifest_path: path/to/requirements.txt + scope: runtime + security_advisory: + ghsa_id: GHSA-8f4m-hccc-8qph + cve_id: CVE-2021-20191 + summary: Insertion of Sensitive Information into Log File in ansible + description: A flaw was found in ansible. Credentials, such as secrets, + are being disclosed in console log by default and not protected by no_log + feature when using those modules. An attacker can take advantage of this + information to steal those credentials. The highest threat from this vulnerability + is to data confidentiality. + vulnerabilities: + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: ">= 2.9.0, < 2.9.18" + first_patched_version: + identifier: 2.9.18 + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: "< 2.8.19" + first_patched_version: + identifier: 2.8.19 + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: ">= 2.10.0, < 2.10.7" + first_patched_version: + identifier: 2.10.7 + severity: medium + cvss: + vector_string: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N + score: 5.5 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N + score: 5.5 + cvss_v4: + vector_string: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 8.5 + cwes: + - cwe_id: CWE-532 + name: Insertion of Sensitive Information into Log File + identifiers: + - type: GHSA + value: GHSA-8f4m-hccc-8qph + - type: CVE + value: CVE-2021-20191 + references: + - url: https://nvd.nist.gov/vuln/detail/CVE-2021-20191 + - url: https://access.redhat.com/security/cve/cve-2021-20191 + - url: https://bugzilla.redhat.com/show_bug.cgi?id=1916813 + published_at: '2021-06-01T17:38:00Z' + updated_at: '2021-08-12T23:06:00Z' + withdrawn_at: + security_vulnerability: + package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: "< 2.8.19" + first_patched_version: + identifier: 2.8.19 + url: https://api.github.com/repos/octo-org/hello-world/dependabot/alerts/1 + html_url: https://github.com/octo-org/hello-world/security/dependabot/1 + created_at: '2022-06-14T15:21:52Z' + updated_at: '2022-06-14T15:21:52Z' + dismissed_at: + dismissed_by: + dismissed_reason: + dismissed_comment: + fixed_at: + repository: + id: 664700648 + node_id: MDEwOlJlcG9zaXRvcnk2NjQ3MDA2NDg= + name: hello-world + full_name: octo-org/hello-world + owner: + login: octo-org + id: 6811672 + node_id: MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI= + avatar_url: https://avatars3.githubusercontent.com/u/6811672?v=4 + gravatar_id: '' + url: https://api.github.com/users/octo-org + html_url: https://github.com/octo-org + followers_url: https://api.github.com/users/octo-org/followers + following_url: https://api.github.com/users/octo-org/following{/other_user} + gists_url: https://api.github.com/users/octo-org/gists{/gist_id} + starred_url: https://api.github.com/users/octo-org/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octo-org/subscriptions + organizations_url: https://api.github.com/users/octo-org/orgs + repos_url: https://api.github.com/users/octo-org/repos + events_url: https://api.github.com/users/octo-org/events{/privacy} + received_events_url: https://api.github.com/users/octo-org/received_events + type: Organization + site_admin: false + private: true + html_url: https://github.com/octo-org/hello-world + description: + fork: false + url: https://api.github.com/repos/octo-org/hello-world + archive_url: https://api.github.com/repos/octo-org/hello-world/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octo-org/hello-world/assignees{/user} + blobs_url: https://api.github.com/repos/octo-org/hello-world/git/blobs{/sha} + branches_url: https://api.github.com/repos/octo-org/hello-world/branches{/branch} + collaborators_url: https://api.github.com/repos/octo-org/hello-world/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octo-org/hello-world/comments{/number} + commits_url: https://api.github.com/repos/octo-org/hello-world/commits{/sha} + compare_url: https://api.github.com/repos/octo-org/hello-world/compare/{base}...{head} + contents_url: https://api.github.com/repos/octo-org/hello-world/contents/{+path} + contributors_url: https://api.github.com/repos/octo-org/hello-world/contributors + deployments_url: https://api.github.com/repos/octo-org/hello-world/deployments + downloads_url: https://api.github.com/repos/octo-org/hello-world/downloads + events_url: https://api.github.com/repos/octo-org/hello-world/events + forks_url: https://api.github.com/repos/octo-org/hello-world/forks + git_commits_url: https://api.github.com/repos/octo-org/hello-world/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octo-org/hello-world/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octo-org/hello-world/git/tags{/sha} + hooks_url: https://api.github.com/repos/octo-org/hello-world/hooks + issue_comment_url: https://api.github.com/repos/octo-org/hello-world/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octo-org/hello-world/issues/events{/number} + issues_url: https://api.github.com/repos/octo-org/hello-world/issues{/number} + keys_url: https://api.github.com/repos/octo-org/hello-world/keys{/key_id} + labels_url: https://api.github.com/repos/octo-org/hello-world/labels{/name} + languages_url: https://api.github.com/repos/octo-org/hello-world/languages + merges_url: https://api.github.com/repos/octo-org/hello-world/merges + milestones_url: https://api.github.com/repos/octo-org/hello-world/milestones{/number} + notifications_url: https://api.github.com/repos/octo-org/hello-world/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octo-org/hello-world/pulls{/number} + releases_url: https://api.github.com/repos/octo-org/hello-world/releases{/id} + stargazers_url: https://api.github.com/repos/octo-org/hello-world/stargazers + statuses_url: https://api.github.com/repos/octo-org/hello-world/statuses/{sha} + subscribers_url: https://api.github.com/repos/octo-org/hello-world/subscribers + subscription_url: https://api.github.com/repos/octo-org/hello-world/subscription + tags_url: https://api.github.com/repos/octo-org/hello-world/tags + teams_url: https://api.github.com/repos/octo-org/hello-world/teams + trees_url: https://api.github.com/repos/octo-org/hello-world/git/trees{/sha} + enterprise-teams-items: + value: + - id: 1 + name: Justice League + description: A great team. + slug: justice-league + url: https://api.github.com/enterprises/dc/teams/justice-league + group_id: 62ab9291-fae2-468e-974b-7e45096d5021 + html_url: https://github.com/enterprises/dc/teams/justice-league + members_url: https://api.github.com/enterprises/dc/teams/justice-league/members{/member} + created_at: '2019-01-26T19:01:12Z' + updated_at: '2019-01-26T19:14:43Z' + enterprise-teams-item: + value: + id: 1 + name: Justice League + description: A great team. + slug: justice-league + url: https://api.github.com/enterprises/dc/teams/justice-league + group_id: 62ab9291-fae2-468e-974b-7e45096d5021 + html_url: https://github.com/enterprises/dc/teams/justice-league + members_url: https://api.github.com/enterprises/dc/teams/justice-league/members{/member} + created_at: '2019-01-26T19:01:12Z' + updated_at: '2019-01-26T19:14:43Z' + simple-user-items: + value: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + simple-user: + value: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + organization-simple: + value: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + organization-simple-items: + value: + - login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + public-events-items: + value: + - id: '22249084947' + type: WatchEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + action: started + public: true + created_at: '2022-06-09T12:47:28Z' + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: true + created_at: '2022-06-07T07:50:26Z' + feed: + value: + timeline_url: https://github.com/timeline + user_url: https://github.com/{user} + current_user_public_url: https://github.com/octocat + current_user_url: https://github.com/octocat.private?token=abc123 + current_user_actor_url: https://github.com/octocat.private.actor?token=abc123 + current_user_organization_url: '' + current_user_organization_urls: + - https://github.com/organizations/github/octocat.private.atom?token=abc123 + security_advisories_url: https://github.com/security-advisories + _links: + timeline: + href: https://github.com/timeline + type: application/atom+xml + user: + href: https://github.com/{user} + type: application/atom+xml + current_user_public: + href: https://github.com/octocat + type: application/atom+xml + current_user: + href: https://github.com/octocat.private?token=abc123 + type: application/atom+xml + current_user_actor: + href: https://github.com/octocat.private.actor?token=abc123 + type: application/atom+xml + current_user_organization: + href: '' + type: '' + current_user_organizations: + - href: https://github.com/organizations/github/octocat.private.atom?token=abc123 + type: application/atom+xml + security_advisories: + href: https://github.com/security-advisories + type: application/atom+xml + base-gist-items: + value: + - url: https://api.github.com/gists/aa5a315d61ae9438b18d + forks_url: https://api.github.com/gists/aa5a315d61ae9438b18d/forks + commits_url: https://api.github.com/gists/aa5a315d61ae9438b18d/commits + id: aa5a315d61ae9438b18d + node_id: MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk + git_pull_url: https://gist.github.com/aa5a315d61ae9438b18d.git + git_push_url: https://gist.github.com/aa5a315d61ae9438b18d.git + html_url: https://gist.github.com/aa5a315d61ae9438b18d + files: + hello_world.rb: + filename: hello_world.rb + type: application/x-ruby + language: Ruby + raw_url: https://gist.githubusercontent.com/octocat/6cad326836d38bd3a7ae/raw/db9c55113504e46fa076e7df3a04ce592e2e86d8/hello_world.rb + size: 167 + public: true + created_at: '2010-04-14T02:15:15Z' + updated_at: '2011-06-20T11:34:15Z' + description: Hello World Examples + comments: 0 + user: + comments_url: https://api.github.com/gists/aa5a315d61ae9438b18d/comments/ + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + truncated: false + gist: + value: + url: https://api.github.com/gists/2decf6c462d9b4418f2 + forks_url: https://api.github.com/gists/2decf6c462d9b4418f2/forks + commits_url: https://api.github.com/gists/2decf6c462d9b4418f2/commits + id: 2decf6c462d9b4418f2 + node_id: G_kwDOBhHyLdZDliNDQxOGYy + git_pull_url: https://gist.github.com/2decf6c462d9b4418f2.git + git_push_url: https://gist.github.com/2decf6c462d9b4418f2.git + html_url: https://gist.github.com/2decf6c462d9b4418f2 + files: + README.md: + filename: README.md + type: text/markdown + language: Markdown + raw_url: https://gist.githubusercontent.com/monalisa/2decf6c462d9b4418f2/raw/ac3e6daf176fafe73609fd000cd188e4472010fb/README.md + size: 23 + truncated: false + content: Hello world from GitHub + encoding: utf-8 + public: true + created_at: '2022-09-20T12:11:58Z' + updated_at: '2022-09-21T10:28:06Z' + description: An updated gist description. + comments: 0 + comments_enabled: true + user: + comments_url: https://api.github.com/gists/2decf6c462d9b4418f2/comments + owner: + login: monalisa + id: 104456405 + node_id: U_kgDOBhHyLQ + avatar_url: https://avatars.githubusercontent.com/u/104456405?v=4 + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + forks: [] + history: + - user: + login: monalisa + id: 104456405 + node_id: U_kgyLQ + avatar_url: https://avatars.githubusercontent.com/u/104456405?v=4 + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + version: 468aac8caed5f0c3b859b8286968 + committed_at: '2022-09-21T10:28:06Z' + change_status: + total: 2 + additions: 1 + deletions: 1 + url: https://api.github.com/gists/8481a81af6b7a2d418f2/468aac8caed5f0c3b859b8286968 + truncated: false + delete-gist-file: + value: + url: https://api.github.com/gists/2decf6c462d9b4418f2 + forks_url: https://api.github.com/gists/2decf6c462d9b4418f2/forks + commits_url: https://api.github.com/gists/2decf6c462d9b4418f2/commits + id: 2decf6c462d9b4418f2 + node_id: G_kwDOBhHyLdoAIDg0ODFZDliNDQxOGYy + git_pull_url: https://gist.github.com/2decf6c462d9b4418f2.git + git_push_url: https://gist.github.com/2decf6c462d9b4418f2.git + html_url: https://gist.github.com/2decf6c462d9b4418f2 + files: + public: true + created_at: '2022-09-20T12:11:58Z' + updated_at: '2022-09-21T10:28:06Z' + description: A gist description. + comments: 0 + user: + comments_url: https://api.github.com/gists/2decf6c462d9b4418f2/comments + owner: + login: monalisa + id: 104456405 + node_id: U_kgDOBhHyLQ + avatar_url: https://avatars.githubusercontent.com/u/104456405?v=4 + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + forks: [] + history: + - user: + login: monalisa + id: 104456405 + node_id: U_kgyLQ + avatar_url: https://avatars.githubusercontent.com/u/104456405?v=4 + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + version: 9cc352a89178a6d4 + committed_at: '2022-09-21T10:28:06Z' + change_status: + total: 1 + additions: 0 + deletions: 1 + url: https://api.github.com/gists/8481a81af6b7a2d418f2/468aac8caed5f0c3b859b8286968 + truncated: false + rename-gist-file: + value: + url: https://api.github.com/gists/2decf6c462d9b4418f2 + forks_url: https://api.github.com/gists/2decf6c462d9b4418f2/forks + commits_url: https://api.github.com/gists/2decf6c462d9b4418f2/commits + id: 2decf6c462d9b4418f2 + node_id: G_kwDOBhHyLdoAIDg0ODFZDliNDQxOGYy + git_pull_url: https://gist.github.com/2decf6c462d9b4418f2.git + git_push_url: https://gist.github.com/2decf6c462d9b4418f2.git + html_url: https://gist.github.com/2decf6c462d9b4418f2 + files: + goodbye.py: + filename: goodbye.py + type: application/x-python + language: Python + raw_url: https://gist.githubusercontent.com/monalisa/8481a81af6b7a2decf6c462d9b4418f2/raw/ac3e6daf176fafe73609fd000cd188e4472010fb/goodbye.py + size: 4 + truncated: false + content: "# Hello world" + public: true + created_at: '2022-09-20T12:11:58Z' + updated_at: '2022-09-21T10:28:06Z' + description: A gist description. + comments: 0 + user: + comments_url: https://api.github.com/gists/2decf6c462d9b4418f2/comments + owner: + login: monalisa + id: 104456405 + node_id: U_kgDOBhHyLQ + avatar_url: https://avatars.githubusercontent.com/u/104456405?v=4 + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + forks: [] + history: + - user: + login: monalisa + id: 104456405 + node_id: U_kgyLQ + avatar_url: https://avatars.githubusercontent.com/u/104456405?v=4 + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + version: 468aac8caed5f0c3b859b8286968 + committed_at: '2022-09-21T10:28:06Z' + change_status: + total: 0 + additions: 0 + deletions: 0 + url: https://api.github.com/gists/8481a81af6b7a2d418f2/468aac8caed5f0c3b859b8286968 + truncated: false + gist-comment-items: + value: + - id: 1 + node_id: MDExOkdpc3RDb21tZW50MQ== + url: https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + body: Just commenting for the sake of commenting + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2011-04-18T23:23:56Z' + updated_at: '2011-04-18T23:23:56Z' + author_association: COLLABORATOR + gist-comment: + value: + id: 1 + node_id: MDExOkdpc3RDb21tZW50MQ== + url: https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + body: Just commenting for the sake of commenting + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2011-04-18T23:23:56Z' + updated_at: '2011-04-18T23:23:56Z' + author_association: COLLABORATOR + gist-commit-items: + value: + - url: https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f + version: 57a7f021a713b1c5a6a199b54cc514735d2d462f + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + change_status: + deletions: 0 + additions: 180 + total: 180 + committed_at: '2010-04-14T02:15:15Z' + gist-fork-items: + value: + - url: https://api.github.com/gists/aa5a315d61ae9438b18d + forks_url: https://api.github.com/gists/aa5a315d61ae9438b18d/forks + commits_url: https://api.github.com/gists/aa5a315d61ae9438b18d/commits + id: aa5a315d61ae9438b18d + node_id: MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk + git_pull_url: https://gist.github.com/aa5a315d61ae9438b18d.git + git_push_url: https://gist.github.com/aa5a315d61ae9438b18d.git + html_url: https://gist.github.com/aa5a315d61ae9438b18d + files: + hello_world.rb: + filename: hello_world.rb + type: application/x-ruby + language: Ruby + raw_url: https://gist.githubusercontent.com/octocat/6cad326836d38bd3a7ae/raw/db9c55113504e46fa076e7df3a04ce592e2e86d8/hello_world.rb + size: 167 + public: true + created_at: '2010-04-14T02:15:15Z' + updated_at: '2011-06-20T11:34:15Z' + description: Hello World Examples + comments: 1 + user: + comments_url: https://api.github.com/gists/aa5a315d61ae9438b18d/comments/ + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + base-gist: + value: + url: https://api.github.com/gists/aa5a315d61ae9438b18d + forks_url: https://api.github.com/gists/aa5a315d61ae9438b18d/forks + commits_url: https://api.github.com/gists/aa5a315d61ae9438b18d/commits + id: aa5a315d61ae9438b18d + node_id: MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk + git_pull_url: https://gist.github.com/aa5a315d61ae9438b18d.git + git_push_url: https://gist.github.com/aa5a315d61ae9438b18d.git + html_url: https://gist.github.com/aa5a315d61ae9438b18d + files: + hello_world.rb: + filename: hello_world.rb + type: application/x-ruby + language: Ruby + raw_url: https://gist.githubusercontent.com/octocat/6cad326836d38bd3a7ae/raw/db9c55113504e46fa076e7df3a04ce592e2e86d8/hello_world.rb + size: 167 + public: true + created_at: '2010-04-14T02:15:15Z' + updated_at: '2011-06-20T11:34:15Z' + description: Hello World Examples + comments: 0 + user: + comments_url: https://api.github.com/gists/aa5a315d61ae9438b18d/comments/ + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + truncated: false + gitignore-template: + value: + name: C + source: | + # Object files + *.o + + # Libraries + *.lib + *.a + + # Shared objects (inc. Windows DLLs) + *.dll + *.so + *.so.* + *.dylib + + # Executables + *.exe + *.out + *.app + repository-paginated-2: + value: + total_count: 1 + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + issue-with-repo-items: + value: + - id: 1 + node_id: MDU6SXNzdWUx + url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + repository_url: https://api.github.com/repos/octocat/Hello-World + labels_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + events_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/events + html_url: https://github.com/octocat/Hello-World/issues/1347 + number: 1347 + state: open + title: Found a bug + body: I'm having a problem with this. + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + locked: true + active_lock_reason: too heated + comments: 0 + pull_request: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + closed_at: + created_at: '2011-04-22T13:33:48Z' + updated_at: '2011-04-22T13:33:48Z' + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + author_association: COLLABORATOR + license-simple-items: + value: + - key: mit + name: MIT License + spdx_id: MIT + url: https://api.github.com/licenses/mit + node_id: MDc6TGljZW5zZW1pdA== + - key: lgpl-3.0 + name: GNU Lesser General Public License v3.0 + spdx_id: LGPL-3.0 + url: https://api.github.com/licenses/lgpl-3.0 + node_id: MDc6TGljZW5zZW1pdA== + - key: mpl-2.0 + name: Mozilla Public License 2.0 + spdx_id: MPL-2.0 + url: https://api.github.com/licenses/mpl-2.0 + node_id: MDc6TGljZW5zZW1pdA== + - key: agpl-3.0 + name: GNU Affero General Public License v3.0 + spdx_id: AGPL-3.0 + url: https://api.github.com/licenses/agpl-3.0 + node_id: MDc6TGljZW5zZW1pdA== + - key: unlicense + name: The Unlicense + spdx_id: Unlicense + url: https://api.github.com/licenses/unlicense + node_id: MDc6TGljZW5zZW1pdA== + - key: apache-2.0 + name: Apache License 2.0 + spdx_id: Apache-2.0 + url: https://api.github.com/licenses/apache-2.0 + node_id: MDc6TGljZW5zZW1pdA== + - key: gpl-3.0 + name: GNU General Public License v3.0 + spdx_id: GPL-3.0 + url: https://api.github.com/licenses/gpl-3.0 + node_id: MDc6TGljZW5zZW1pdA== + license: + value: + key: mit + name: MIT License + spdx_id: MIT + url: https://api.github.com/licenses/mit + node_id: MDc6TGljZW5zZW1pdA== + html_url: http://choosealicense.com/licenses/mit/ + description: A permissive license that is short and to the point. It lets + people do anything with your code with proper attribution and without warranty. + implementation: Create a text file (typically named LICENSE or LICENSE.txt) + in the root of your source code and copy the text of the license into the + file. Replace [year] with the current year and [fullname] with the name + (or names) of the copyright holders. + permissions: + - commercial-use + - modifications + - distribution + - sublicense + - private-use + conditions: + - include-copyright + limitations: + - no-liability + body: |2 + + + The MIT License (MIT) + + Copyright (c) [year] [fullname] + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + featured: true + marketplace-purchase: + value: + url: https://api.github.com/orgs/github + type: Organization + id: 4 + login: github + organization_billing_email: billing@github.com + email: billing@github.com + marketplace_pending_change: + effective_date: '2017-11-11T00:00:00Z' + unit_count: + id: 77 + plan: + url: https://api.github.com/marketplace_listing/plans/1111 + accounts_url: https://api.github.com/marketplace_listing/plans/1111/accounts + id: 1111 + number: 2 + name: Startup + description: A professional-grade CI solution + monthly_price_in_cents: 699 + yearly_price_in_cents: 7870 + price_model: FLAT_RATE + has_free_trial: true + state: published + unit_name: + bullets: + - Up to 10 private repositories + - 3 concurrent builds + marketplace_purchase: + billing_cycle: monthly + next_billing_date: '2017-11-11T00:00:00Z' + unit_count: + on_free_trial: true + free_trial_ends_on: '2017-11-11T00:00:00Z' + updated_at: '2017-11-02T01:12:12Z' + plan: + url: https://api.github.com/marketplace_listing/plans/1313 + accounts_url: https://api.github.com/marketplace_listing/plans/1313/accounts + id: 1313 + number: 3 + name: Pro + description: A professional-grade CI solution + monthly_price_in_cents: 1099 + yearly_price_in_cents: 11870 + price_model: FLAT_RATE + has_free_trial: true + unit_name: + state: published + bullets: + - Up to 25 private repositories + - 11 concurrent builds + marketplace-listing-plan-items: + value: + - url: https://api.github.com/marketplace_listing/plans/1313 + accounts_url: https://api.github.com/marketplace_listing/plans/1313/accounts + id: 1313 + number: 3 + name: Pro + description: A professional-grade CI solution + monthly_price_in_cents: 1099 + yearly_price_in_cents: 11870 + price_model: FLAT_RATE + has_free_trial: true + unit_name: + state: published + bullets: + - Up to 25 private repositories + - 11 concurrent builds + marketplace-purchase-items: + value: + - url: https://api.github.com/orgs/github + type: Organization + id: 4 + login: github + organization_billing_email: billing@github.com + marketplace_pending_change: + effective_date: '2017-11-11T00:00:00Z' + unit_count: + id: 77 + plan: + url: https://api.github.com/marketplace_listing/plans/1111 + accounts_url: https://api.github.com/marketplace_listing/plans/1111/accounts + id: 1111 + number: 2 + name: Startup + description: A professional-grade CI solution + monthly_price_in_cents: 699 + yearly_price_in_cents: 7870 + price_model: FLAT_RATE + has_free_trial: true + state: published + unit_name: + bullets: + - Up to 10 private repositories + - 3 concurrent builds + marketplace_purchase: + billing_cycle: monthly + next_billing_date: '2017-11-11T00:00:00Z' + unit_count: + on_free_trial: true + free_trial_ends_on: '2017-11-11T00:00:00Z' + updated_at: '2017-11-02T01:12:12Z' + plan: + url: https://api.github.com/marketplace_listing/plans/1313 + accounts_url: https://api.github.com/marketplace_listing/plans/1313/accounts + id: 1313 + number: 3 + name: Pro + description: A professional-grade CI solution + monthly_price_in_cents: 1099 + yearly_price_in_cents: 11870 + price_model: FLAT_RATE + has_free_trial: true + unit_name: + state: published + bullets: + - Up to 25 private repositories + - 11 concurrent builds + api-overview: + value: + verifiable_password_authentication: true + ssh_key_fingerprints: + SHA256_RSA: 1234567890 + SHA256_DSA: 1234567890 + SHA256_ECDSA: 1234567890 + SHA256_ED25519: 1234567890 + ssh_keys: + - ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ + - ecdsa-sha2-nistp256 ABCDEFGHIJKLMNOPQRSTUVWXYZ + - ssh-rsa ABCDEFGHIJKLMNOPQRSTUVWXYZ + hooks: + - 192.0.2.1 + github_enterprise_importer: + - 192.0.2.1 + web: + - 192.0.2.1 + api: + - 192.0.2.1 + git: + - 192.0.2.1 + packages: + - 192.0.2.1 + pages: + - 192.0.2.1 + importer: + - 192.0.2.1 + actions: + - 192.0.2.1 + actions_macos: + - 192.0.2.1 + dependabot: + - 192.0.2.1 + copilot: + - 192.0.2.1 + domains: + website: + - "*.example.com" + codespaces: + - "*.example.com" + copilot: + - "*.example.com" + packages: + - "*.example.com" + public-repo-events-items: + value: + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: true + created_at: '2022-06-09T12:47:28Z' + - id: '22237752260' + type: WatchEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + action: started + public: true + created_at: '2022-06-08T23:29:25Z' + thread-items: + value: + - id: '1' + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + subject: + title: Greetings + url: https://api.github.com/repos/octokit/octokit.rb/issues/123 + latest_comment_url: https://api.github.com/repos/octokit/octokit.rb/issues/comments/123 + type: Issue + reason: subscribed + unread: true + updated_at: '2014-11-07T22:01:45Z' + last_read_at: '2014-11-07T22:01:45Z' + url: https://api.github.com/notifications/threads/1 + subscription_url: https://api.github.com/notifications/threads/1/subscription + notifications-mark-read: + value: + message: Unread notifications couldn't be marked in a single request. Notifications + are being marked as read in the background. + thread: + value: + id: '1' + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + subject: + title: Greetings + url: https://api.github.com/repos/octokit/octokit.rb/issues/123 + latest_comment_url: https://api.github.com/repos/octokit/octokit.rb/issues/comments/123 + type: Issue + reason: subscribed + unread: true + updated_at: '2014-11-07T22:01:45Z' + last_read_at: '2014-11-07T22:01:45Z' + url: https://api.github.com/notifications/threads/1 + subscription_url: https://api.github.com/notifications/threads/1/subscription + thread-subscription: + value: + subscribed: true + ignored: false + reason: + created_at: '2012-10-06T21:34:12Z' + url: https://api.github.com/notifications/threads/1/subscription + thread_url: https://api.github.com/notifications/threads/1 + octocat: + value: |2 + MMM. .MMM + MMMMMMMMMMMMMMMMMMM + MMMMMMMMMMMMMMMMMMM ___________________________________ + MMMMMMMMMMMMMMMMMMMMM | | + MMMMMMMMMMMMMMMMMMMMMMM | Avoid administrative distraction. | + MMMMMMMMMMMMMMMMMMMMMMMM |_ _______________________________| + MMMM::- -:::::::- -::MMMM |/ + MM~:~ 00~:::::~ 00~:~MM + .. MMMMM::.00:::+:::.00::MMMMM .. + .MM::::: ._. :::::MM. + MMMM;:::::;MMMM + -MM MMMMMMM + ^ M+ MMMMMMMMM + MMMMMMM MM MM MM + MM MM MM MM + MM MM MM MM + .~~MM~MM~MM~MM~~. + ~~~~MM:~MM~~~MM~:MM~~~~ + ~~~~~~==~==~~~==~==~~~~~~ + ~~~~~~==~==~==~==~~~~~~ + :~==~==~==~==~~ + dependabot-repository-access-details: + value: + default_level: public + accessible_repositories: + - id: 123456 + node_id: MDEwOlJlcG9zaXRvcnkxMjM0NTY= + name: example-repo + full_name: octocat/example-repo + owner: + name: octocat + email: octo@github.com + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://avatars.githubusercontent.com/u/1?v=4 + gravatar_id: 1 + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat/example-repo + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + starred_at: '"2020-07-09T00:17:55Z"' + user_view_type: default + private: false + html_url: https://github.com/octocat/example-repo + description: This is an example repository. + fork: false + url: https://api.github.com/repos/octocat/example-repo + archive_url: https://api.github.com/repos/octocat/example-repo/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/example-repo/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/example-repo/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/example-repo/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/example-repo/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/example-repo/comments{/number} + commits_url: https://api.github.com/repos/octocat/example-repo/commits{/sha} + compare_url: https://api.github.com/repos/octocat/example-repo/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/example-repo/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/example-repo/contributors + deployments_url: https://api.github.com/repos/octocat/example-repo/deployments + downloads_url: https://api.github.com/repos/octocat/example-repo/downloads + events_url: https://api.github.com/repos/octocat/example-repo/events + forks_url: https://api.github.com/repos/octocat/example-repo/forks + git_commits_url: https://api.github.com/repos/octocat/example-repo/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/example-repo/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/example-repo/git/tags{/sha} + issue_comment_url: https://api.github.com/repos/octocat/example-repo/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/example-repo/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/example-repo/issues{/number} + keys_url: https://api.github.com/repos/octocat/example-repo/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/example-repo/labels{/name} + languages_url: https://api.github.com/repos/octocat/example-repo/languages + merges_url: https://api.github.com/repos/octocat/example-repo/merges + milestones_url: https://api.github.com/repos/octocat/example-repo/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/example-repo/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/example-repo/pulls{/number} + releases_url: https://api.github.com/repos/octocat/example-repo/releases{/id} + stargazers_url: https://api.github.com/repos/octocat/example-repo/stargazers + statuses_url: https://api.github.com/repos/octocat/example-repo/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/example-repo/subscribers + subscription_url: https://api.github.com/repos/octocat/example-repo/subscription + tags_url: https://api.github.com/repos/octocat/example-repo/tags + teams_url: https://api.github.com/repos/octocat/example-repo/teams + trees_url: https://api.github.com/repos/octocat/example-repo/git/trees{/sha} + hooks_url: https://api.github.com/repos/octocat/example-repo/hooks + get_all_budgets: + value: + budgets: + - id: 2066deda-923f-43f9-88d2-62395a28c0cdd + budget_type: ProductPricing + budget_product_skus: + - actions + budget_scope: enterprise + budget_amount: 1000.0 + prevent_further_usage: true + budget_alerting: + will_alert: true + alert_recipients: + - enterprise-admin + - billing-manager + - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 + budget_type: SkuPricing + budget_product_skus: + - actions_linux + budget_scope: organization + budget_amount: 500.0 + prevent_further_usage: false + budget_alerting: + will_alert: true + alert_recipients: + - org-owner + - id: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 + budget_type: ProductPricing + budget_product_skus: + - packages + budget_scope: cost_center + budget_amount: 250.0 + prevent_further_usage: true + budget_alerting: + will_alert: false + alert_recipients: [] + get-budget: + value: + id: 2066deda-923f-43f9-88d2-62395a28c0cdd + budget_type: ProductPricing + budget_product_sku: actions_linux + budget_scope: repository + budget_entity_name: example-repo-name + budget_amount: 0.0 + prevent_further_usage: true + budget_alerting: + will_alert: true + alert_recipients: + - mona + - lisa + update-budget: + value: + message: Budget successfully updated. + budget: + id: 2066deda-923f-43f9-88d2-62395a28c0cdd + budget_type: ProductPricing + budget_product_sku: actions_linux + budget_scope: repository + budget_entity_name: org-name/example-repo-name + budget_amount: 0.0 + prevent_further_usage: true + budget_alerting: + will_alert: true + alert_recipients: + - mona + - lisa + delete-budget: + value: + message: Budget successfully deleted. + budget_id: 2c1feb79-3947-4dc8-a16e-80cbd732cc0b + billing-premium-request-usage-report-org: + value: + timePeriod: + year: 2025 + organization: GitHub + usageItems: + - product: Copilot + sku: Copilot Premium Request + model: GPT-5 + unitType: requests + pricePerUnit: 0.04 + grossQuantity: 100 + grossAmount: 4.0 + discountQuantity: 0 + discountAmount: 0.0 + netQuantity: 100 + netAmount: 4.0 + billing-usage-report: + value: + usageItems: + - date: '2023-08-01' + product: Actions + sku: Actions Linux + quantity: 100 + unitType: minutes + pricePerUnit: 0.008 + grossAmount: 0.8 + discountAmount: 0 + netAmount: 0.8 + organizationName: GitHub + repositoryName: github/example + billing-usage-summary-report-org: + value: + timePeriod: + year: 2025 + organization: GitHub + usageItems: + - product: Actions + sku: actions_linux + unitType: minutes + pricePerUnit: 0.008 + grossQuantity: 1000 + grossAmount: 8.0 + discountQuantity: 0 + discountAmount: 0.0 + netQuantity: 1000 + netAmount: 8.0 + organization-full: + value: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + name: github + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + twitter_username: github + is_verified: true + has_organization_projects: true + has_repository_projects: true + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + html_url: https://github.com/octocat + created_at: '2008-01-14T04:33:35Z' + type: Organization + total_private_repos: 100 + owned_private_repos: 100 + private_gists: 81 + disk_usage: 10000 + collaborators: 8 + billing_email: mona@github.com + plan: + name: Medium + space: 400 + private_repos: 20 + filled_seats: 4 + seats: 5 + default_repository_permission: read + default_repository_branch: main + members_can_create_repositories: true + two_factor_requirement_enabled: true + members_allowed_repository_creation_type: all + members_can_create_public_repositories: false + members_can_create_private_repositories: false + members_can_create_internal_repositories: false + members_can_create_pages: true + members_can_create_public_pages: true + members_can_create_private_pages: true + members_can_delete_repositories: true + members_can_change_repo_visibility: true + members_can_invite_outside_collaborators: true + members_can_delete_issues: false + display_commenter_full_name_setting_enabled: false + readers_can_create_discussions: true + members_can_create_teams: true + members_can_view_dependency_insights: true + members_can_fork_private_repositories: false + web_commit_signoff_required: false + updated_at: '2014-03-03T18:58:10Z' + deploy_keys_enabled_for_repositories: false + dependency_graph_enabled_for_new_repositories: false + dependabot_alerts_enabled_for_new_repositories: false + dependabot_security_updates_enabled_for_new_repositories: false + advanced_security_enabled_for_new_repositories: false + secret_scanning_enabled_for_new_repositories: false + secret_scanning_push_protection_enabled_for_new_repositories: false + secret_scanning_push_protection_custom_link: https://github.com/octo-org/octo-repo/blob/main/im-blocked.md + secret_scanning_push_protection_custom_link_enabled: false + actions-cache-usage-org-enterprise: + value: + total_active_caches_size_in_bytes: 3344284 + total_active_caches_count: 5 + org-actions-cache-usage-by-repo: + value: + total_count: 2 + repository_cache_usages: + - full_name: octo-org/Hello-World + active_caches_size_in_bytes: 2322142 + active_caches_count: 3 + - full_name: octo-org/server + active_caches_size_in_bytes: 1022142 + active_caches_count: 2 + actions-hosted-runner-paginated: + value: + total_count: 2 + runners: + - id: 5 + name: My hosted ubuntu runner + runner_group_id: 2 + platform: linux-x64 + image: + id: ubuntu-20.04 + size: 86 + machine_size_details: + id: 4-core + cpu_cores: 4 + memory_gb: 16 + storage_gb: 150 + status: Ready + maximum_runners: 10 + public_ip_enabled: true + public_ips: + - enabled: true + prefix: 20.80.208.150 + length: 31 + last_active_on: '2022-10-09T23:39:01Z' + - id: 7 + name: My hosted Windows runner + runner_group_id: 2 + platform: win-x64 + image: + id: windows-latest + size: 256 + machine_size_details: + id: 8-core + cpu_cores: 8 + memory_gb: 32 + storage_gb: 300 + status: Ready + maximum_runners: 20 + public_ip_enabled: false + public_ips: [] + last_active_on: '2023-04-26T15:23:37Z' + actions-hosted-runner: + value: + id: 5 + name: My hosted ubuntu runner + runner_group_id: 2 + platform: linux-x64 + image: + id: ubuntu-20.04 + size: 86 + machine_size_details: + id: 4-core + cpu_cores: 4 + memory_gb: 16 + storage_gb: 150 + status: Ready + maximum_runners: 10 + public_ip_enabled: true + public_ips: + - enabled: true + prefix: 20.80.208.150 + length: 31 + last_active_on: '2022-10-09T23:39:01Z' + actions-hosted-runner-custom-image-versions: + value: + total_count: 2 + image_versions: + - version: 1.1.0 + size_gb: 75 + state: Ready + created_on: '2024-11-09T23:39:01Z' + - version: 1.0.0 + size_gb: 75 + state: Ready + created_on: '2024-11-08T20:39:01Z' + actions-hosted-runner-custom-image: + value: + id: 1 + platform: linux-x64 + name: CustomImage + source: custom + versions_count: 4 + total_versions_size: 200 + latest_version: 1.3.0 + state: Ready + actions-hosted-runner-custom-image-version: + value: + version: 1.0.0 + size_gb: 75 + state: Ready + created_on: '2024-11-08T20:39:01Z' + actions-hosted-runner-curated-image: + value: + id: ubuntu-20.04 + platform: linux-x64 + size_gb: 86 + display_name: '20.04' + source: github + actions-hosted-runner-limits-default: + value: + public_ips: + current_usage: 17 + maximum: 50 + actions-hosted-runner-machine-spec: + value: + id: 4-core + cpu_cores: 4 + memory_gb: 16 + storage_gb: 150 + oidc-custom-sub: + value: + include_claim_keys: + - repo + - context + actions-organization-permissions: + value: + enabled_repositories: all + allowed_actions: selected + selected_actions_url: https://api.github.com/organizations/42/actions/permissions/selected-actions + sha_pinning_required: true + actions-fork-pr-contributor-approval: + value: + approval_policy: first_time_contributors + actions-fork-pr-workflows-private-repos: + value: + run_workflows_from_fork_pull_requests: true + send_write_tokens_to_workflows: false + send_secrets_and_variables: false + require_approval_for_fork_pr_workflows: true + repository-paginated: + value: + total_count: 1 + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + selected-actions: + value: + github_owned_allowed: true + verified_allowed: false + patterns_allowed: + - monalisa/octocat@* + - docker/* + actions-default-workflow-permissions: + summary: Give read-only permission, and allow approving PRs. + value: + default_workflow_permissions: read + can_approve_pull_request_reviews: true + runner-groups-org: + value: + total_count: 3 + runner_groups: + - id: 1 + name: Default + visibility: all + default: true + runners_url: https://api.github.com/orgs/octo-org/actions/runner_groups/1/runners + inherited: false + allows_public_repositories: true + restricted_to_workflows: false + selected_workflows: [] + workflow_restrictions_read_only: false + - id: 2 + name: octo-runner-group + visibility: selected + default: false + selected_repositories_url: https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories + runners_url: https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners + inherited: true + allows_public_repositories: true + restricted_to_workflows: true + selected_workflows: + - octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main + workflow_restrictions_read_only: true + - id: 3 + name: expensive-hardware + visibility: private + default: false + runners_url: https://api.github.com/orgs/octo-org/actions/runner_groups/3/runners + inherited: false + allows_public_repositories: true + restricted_to_workflows: false + selected_workflows: + - octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main + workflow_restrictions_read_only: false + runner-group: + value: + id: 2 + name: octo-runner-group + visibility: selected + default: false + selected_repositories_url: https://api.github.com/orgs/octo-org/actions/runner-groups/2/repositories + runners_url: https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners + hosted_runners_url: https://api.github.com/orgs/octo-org/actions/runner_groups/2/hosted-runners + network_configuration_id: EC486D5D793175D7E3B29C27318D5C1AAE49A7833FC85F2E82C3D2C54AC7D3BA + inherited: false + allows_public_repositories: true + restricted_to_workflows: true + selected_workflows: + - octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main + workflow_restrictions_read_only: false + runner-group-item: + value: + id: 2 + name: octo-runner-group + visibility: selected + default: false + selected_repositories_url: https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories + runners_url: https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners + hosted_runners_url: https://api.github.com/orgs/octo-org/actions/runner_groups/2/hosted-runners + network_configuration_id: EC486D5D793175D7E3B29C27318D5C1AAE49A7833FC85F2E82C3D2C54AC7D3BA + inherited: false + allows_public_repositories: true + restricted_to_workflows: true + selected_workflows: + - octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main + workflow_restrictions_read_only: false + minimal-repository-paginated: + value: + total_count: 1 + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + template_repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + organization: + language: + forks: 9 + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues: 0 + open_issues_count: 0 + is_template: true + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + delete_branch_on_merge: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + forks: 1 + open_issues: 1 + watchers: 1 + runner-paginated: + value: + total_count: 2 + runners: + - id: 23 + name: linux_runner + os: linux + status: online + busy: true + ephemeral: false + labels: + - id: 5 + name: self-hosted + type: read-only + - id: 7 + name: X64 + type: read-only + - id: 11 + name: Linux + type: read-only + - id: 24 + name: mac_runner + os: macos + status: offline + busy: false + ephemeral: false + labels: + - id: 5 + name: self-hosted + type: read-only + - id: 7 + name: X64 + type: read-only + - id: 20 + name: macOS + type: read-only + - id: 21 + name: no-gpu + type: custom + runner-application-items: + value: + - os: osx + architecture: x64 + download_url: https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-osx-x64-2.164.0.tar.gz + filename: actions-runner-osx-x64-2.164.0.tar.gz + - os: linux + architecture: x64 + download_url: https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-x64-2.164.0.tar.gz + filename: actions-runner-linux-x64-2.164.0.tar.gz + - os: linux + architecture: arm + download_url: https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm-2.164.0.tar.gz + filename: actions-runner-linux-arm-2.164.0.tar.gz + - os: win + architecture: x64 + download_url: https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-win-x64-2.164.0.zip + filename: actions-runner-win-x64-2.164.0.zip + - os: linux + architecture: arm64 + download_url: https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm64-2.164.0.tar.gz + filename: actions-runner-linux-arm64-2.164.0.tar.gz + runner-jitconfig: + value: + runner: + id: 23 + name: New runner + os: unknown + status: offline + busy: false + labels: + - id: 5 + name: self-hosted + type: read-only + - id: 7 + name: X64 + type: read-only + - id: 20 + name: macOS + type: read-only + - id: 21 + name: no-gpu + type: custom + encoded_jit_config: abc123 + authentication-token: + value: + token: LLBF3JGZDX3P5PMEXLND6TS6FCWO6 + expires_at: '2020-01-22T12:13:35.123-08:00' + authentication-token-2: + value: + token: AABF3JGZDX3P5PMEXLND6TS6FCWO6 + expires_at: '2020-01-29T12:13:35.123-08:00' + runner: + value: + id: 23 + name: MBP + os: macos + status: online + busy: true + ephemeral: false + labels: + - id: 5 + name: self-hosted + type: read-only + - id: 7 + name: X64 + type: read-only + - id: 20 + name: macOS + type: read-only + - id: 21 + name: no-gpu + type: custom + runner-labels: + value: + total_count: 4 + labels: + - id: 5 + name: self-hosted + type: read-only + - id: 7 + name: X64 + type: read-only + - id: 20 + name: macOS + type: read-only + - id: 21 + name: no-gpu + type: custom + runner-labels-readonly: + value: + total_count: 3 + labels: + - id: 5 + name: self-hosted + type: read-only + - id: 7 + name: X64 + type: read-only + - id: 20 + name: macOS + type: read-only + organization-actions-secret-paginated: + value: + total_count: 3 + secrets: + - name: GIST_ID + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: private + - name: DEPLOY_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: all + - name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: selected + selected_repositories_url: https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories + actions-public-key: + value: + key_id: '012345678912345678' + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + organization-actions-secret: + value: + name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: selected + selected_repositories_url: https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories + public-repository-paginated: + value: + total_count: 1 + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + organization-actions-variables-paginated: + value: + total_count: 3 + variables: + - name: USERNAME + value: octocat + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: private + - name: ACTIONS_RUNNER_DEBUG + value: true + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: all + - name: ADMIN_EMAIL + value: octocat@github.com + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: selected + selected_repositories_url: https://api.github.com/orgs/octo-org/actions/variables/ADMIN_EMAIL/repositories + organization-actions-variable: + value: + name: USERNAME + value: octocat + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: selected + selected_repositories_url: https://api.github.com/orgs/octo-org/actions/variables/USERNAME/repositories + artifact-deployment-record-list: + value: + total_count: 1 + deployment_records: + - id: 123 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + logical_environment: prod + physical_environment: pacific-east + cluster: moda-1 + deployment_name: prod-deployment + tags: + data: sensitive + created: '2011-01-26T19:14:43Z' + updated_at: '2011-01-26T19:14:43Z' + attestation_id: 456 + bulk-subject-digest-body: + value: + subject_digests: + - sha256:abc123 + - sha512:def456 + bulk-subject-digest-body-with-predicate-type: + value: + subject_digests: + - sha256:abc123 + - sha512:def456 + predicateType: provenance + list-attestations-bulk: + value: + attestations_subject_digests: + - sha256:abc: + - bundle: + mediaType: application/vnd.dev.sigstore.bundle.v0.3+json + verificationMaterial: + tlogEntries: + - logIndex: '97913980' + logId: + keyId: wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0= + kindVersion: + kind: dsse + version: 0.0.1 + integratedTime: '1716998992' + inclusionPromise: + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + inclusionProof: + logIndex: '93750549' + rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= + treeSize: '93750551' + hashes: + - 8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg= + - nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck= + - hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A= + - MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM= + - XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc= + - Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY= + - wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU= + - uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s= + - jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs= + - xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ= + - cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc= + - sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ= + - 98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8= + checkpoint: + envelope: rekor.sigstore.dev - 2605736670972794746\n93750551\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\n\n— + rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\n + canonicalizedBody: eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0= + timestampVerificationData: {} + certificate: + rawBytes: MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw== + dsseEnvelope: + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 + payloadType: application/vnd.in-toto+json + signatures: + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + repository_id: 1 + - bundle: + mediaType: application/vnd.dev.sigstore.bundle.v0.3+json + verificationMaterial: + tlogEntries: + - logIndex: '97913980' + logId: + keyId: wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0= + kindVersion: + kind: dsse + version: 0.0.1 + integratedTime: '1716998992' + inclusionPromise: + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + inclusionProof: + logIndex: '93750549' + rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= + treeSize: '93750551' + hashes: + - 8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg= + - nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck= + - hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A= + - MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM= + - XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc= + - Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY= + - wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU= + - uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s= + - jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs= + - xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ= + - cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc= + - sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ= + - 98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8= + checkpoint: + envelope: rekor.sigstore.dev - 2605736670972794746\n93750551\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\n\n— + rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\n + canonicalizedBody: eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0= + timestampVerificationData: {} + certificate: + rawBytes: MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw== + dsseEnvelope: + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 + payloadType: application/vnd.in-toto+json + signatures: + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + repository_id: 1 + list-attestation-repositories: + value: + - id: 123 + name: foo + - id: 456 + name: bar + list-attestations: + value: + attestations: + - bundle: + mediaType: application/vnd.dev.sigstore.bundle.v0.3+json + verificationMaterial: + tlogEntries: + - logIndex: '97913980' + logId: + keyId: wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0= + kindVersion: + kind: dsse + version: 0.0.1 + integratedTime: '1716998992' + inclusionPromise: + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + inclusionProof: + logIndex: '93750549' + rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= + treeSize: '93750551' + hashes: + - 8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg= + - nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck= + - hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A= + - MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM= + - XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc= + - Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY= + - wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU= + - uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s= + - jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs= + - xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ= + - cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc= + - sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ= + - 98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8= + checkpoint: + envelope: rekor.sigstore.dev - 2605736670972794746\n93750551\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\n\n— + rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\n + canonicalizedBody: eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0= + timestampVerificationData: {} + certificate: + rawBytes: MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw== + dsseEnvelope: + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 + payloadType: application/vnd.in-toto+json + signatures: + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + repository_id: 1 + - bundle: + mediaType: application/vnd.dev.sigstore.bundle.v0.3+json + verificationMaterial: + tlogEntries: + - logIndex: '97913980' + logId: + keyId: wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0= + kindVersion: + kind: dsse + version: 0.0.1 + integratedTime: '1716998992' + inclusionPromise: + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + inclusionProof: + logIndex: '93750549' + rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= + treeSize: '93750551' + hashes: + - 8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg= + - nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck= + - hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A= + - MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM= + - XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc= + - Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY= + - wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU= + - uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s= + - jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs= + - xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ= + - cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc= + - sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ= + - 98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8= + checkpoint: + envelope: rekor.sigstore.dev - 2605736670972794746\n93750551\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\n\n— + rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\n + canonicalizedBody: eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0= + timestampVerificationData: {} + certificate: + rawBytes: MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw== + dsseEnvelope: + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 + payloadType: application/vnd.in-toto+json + signatures: + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + repository_id: 1 + campaign-org-items: + value: + - number: 3 + created_at: '2024-02-14T12:29:18Z' + updated_at: '2024-02-14T12:29:18Z' + name: Critical CodeQL alert + description: Address critical alerts before they are exploited to prevent + breaches, protect sensitive data, and mitigate financial and reputational + damage. + managers: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + ends_at: '2024-03-14T12:29:18Z' + closed_at: + state: open + - number: 4 + created_at: '2024-03-30T12:29:18Z' + updated_at: '2024-03-30T12:29:18Z' + name: Mitre top 10 KEV + description: Remediate the MITRE Top 10 KEV (Known Exploited Vulnerabilities) + to enhance security by addressing vulnerabilities actively exploited by + attackers. This reduces risk, prevents breaches and can help protect sensitive + data. + managers: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + ends_at: '2024-04-30T12:29:18Z' + closed_at: + state: open + campaign-summary: + value: + number: 3 + created_at: '2024-02-14T12:29:18Z' + updated_at: '2024-02-14T12:29:18Z' + name: Critical CodeQL alert + description: Address critical alerts before they are exploited to prevent + breaches, protect sensitive data, and mitigate financial and reputational + damage. + managers: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + published_at: '2024-02-14T12:29:18Z' + ends_at: '2024-03-14T12:29:18Z' + closed_at: + state: open + alert_stats: + open_count: 10 + closed_count: 3 + in_progress_count: 3 + code-scanning-organization-alert-items: + value: + - number: 4 + created_at: '2020-02-13T12:29:18Z' + url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/4 + html_url: https://github.com/octocat/hello-world/code-scanning/4 + state: open + dismissed_by: + dismissed_at: + dismissed_reason: + dismissed_comment: + rule: + id: js/zipslip + severity: error + tags: + - security + - external/cwe/cwe-022 + description: Arbitrary file write during zip extraction + name: js/zipslip + tool: + name: CodeQL + guid: + version: 2.4.0 + most_recent_instance: + ref: refs/heads/main + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: "{}" + state: open + commit_sha: 39406e42cb832f683daa691dd652a8dc36ee8930 + message: + text: This path depends on a user-provided value. + location: + path: spec-main/api-session-spec.ts + start_line: 917 + end_line: 917 + start_column: 7 + end_column: 18 + classifications: + - test + instances_url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/4/instances + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + - number: 3 + created_at: '2020-02-13T12:29:18Z' + url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3 + html_url: https://github.com/octocat/hello-world/code-scanning/3 + state: dismissed + dismissed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + dismissed_at: '2020-02-14T12:29:18Z' + dismissed_reason: false positive + dismissed_comment: This alert is not actually correct, because there's a sanitizer + included in the library. + rule: + id: js/zipslip + severity: error + tags: + - security + - external/cwe/cwe-022 + description: Arbitrary file write during zip extraction + name: js/zipslip + tool: + name: CodeQL + guid: + version: 2.4.0 + most_recent_instance: + ref: refs/heads/main + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: "{}" + state: open + commit_sha: 39406e42cb832f683daa691dd652a8dc36ee8930 + message: + text: This path depends on a user-provided value. + location: + path: lib/ab12-gen.js + start_line: 917 + end_line: 917 + start_column: 7 + end_column: 18 + classifications: [] + instances_url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3/instances + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + code-security-configuration-list: + value: + - id: 17 + target_type: global + name: GitHub recommended + description: Suggested settings for Dependabot, secret scanning, and code + scanning. + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: not_set + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: enabled + code_scanning_delegated_alert_dismissal: enabled + secret_scanning: enabled + secret_scanning_push_protection: enabled + secret_scanning_delegated_bypass: enabled + secret_scanning_delegated_bypass_options: + reviewers: + - security_configuration_id: 17 + reviewer_id: 5678 + reviewer_type: TEAM + secret_scanning_validity_checks: enabled + secret_scanning_non_provider_patterns: enabled + secret_scanning_delegated_alert_dismissal: not_set + private_vulnerability_reporting: enabled + enforcement: enforced + url: https://api.github.com/orgs/octo-org/code-security/configurations/17 + html_url: https://github.com/organizations/octo-org/settings/security_products/configurations/view + created_at: '2023-12-04T15:58:07Z' + updated_at: '2023-12-04T15:58:07Z' + - id: 1326 + target_type: organization + name: High risk settings + description: This is a code security configuration for octo-org high risk + repositories + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: enabled + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: enabled + code_scanning_default_setup: enabled + code_scanning_delegated_alert_dismissal: enabled + secret_scanning: enabled + secret_scanning_push_protection: enabled + secret_scanning_delegated_bypass: disabled + secret_scanning_validity_checks: disabled + secret_scanning_non_provider_patterns: disabled + secret_scanning_delegated_alert_dismissal: disabled + private_vulnerability_reporting: enabled + enforcement: enforced + url: https://api.github.com/orgs/octo-org/code-security/configurations/1326 + html_url: https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1326 + created_at: '2024-05-10T00:00:00Z' + updated_at: '2024-05-10T00:00:00Z' + code-security-configuration-updated: + value: + id: 1325 + target_type: organization + name: octo-org recommended settings v2 + description: This is a code security configuration for octo-org + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: enabled + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: enabled + code_scanning_default_setup_options: + runner_type: not_set + runner_label: + code_scanning_options: + allow_advanced: false + code_scanning_delegated_alert_dismissal: disabled + secret_scanning: disabled + secret_scanning_push_protection: disabled + secret_scanning_delegated_bypass: disabled + secret_scanning_validity_checks: disabled + secret_scanning_non_provider_patterns: disabled + secret_scanning_generic_secrets: disabled + secret_scanning_delegated_alert_dismissal: disabled + private_vulnerability_reporting: disabled + enforcement: enforced + url: https://api.github.com/orgs/octo-org/code-security/configurations/1325 + html_url: https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325 + created_at: '2024-05-01T00:00:00Z' + updated_at: '2024-05-01T00:00:00Z' + codespaces-list: + value: + total_count: 3 + codespaces: + - id: 1 + name: monalisa-octocat-hello-world-g4wpq6h95q + environment_id: 26a7c758-7299-4a73-b978-5a92a7ae98a0 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + machine: + name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + prebuild: false + devcontainer_path: ".devcontainer/devcontainer.json" + created_at: '2021-10-14T00:53:30-06:00' + updated_at: '2021-10-14T00:53:32-06:00' + last_used_at: '2021-10-14T00:53:30-06:00' + state: Available + url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q + git_status: + ahead: 0 + behind: 0 + has_unpushed_changes: false + has_uncommitted_changes: false + ref: main + location: WestUs2 + idle_timeout_minutes: 60 + web_url: https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev + machines_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines + start_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start + stop_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop + recent_folders: [] + - id: 1 + name: monalisa-octocat-hello-world-3f89ada1j3 + environment_id: 526ce4d7-46da-494f-a4f9-cfd25b818719 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + machine: + name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + prebuild: false + devcontainer_path: ".devcontainer/foobar/devcontainer.json" + created_at: '2021-10-14T00:53:30-06:00' + updated_at: '2021-10-14T00:53:32-06:00' + last_used_at: '2021-10-14T00:53:30-06:00' + state: Available + url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3 + git_status: + ahead: 0 + behind: 0 + has_unpushed_changes: false + has_uncommitted_changes: false + ref: main + location: WestUs2 + idle_timeout_minutes: 60 + web_url: https://monalisa-octocat-hello-world-3f89ada1j3.github.dev + machines_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines + start_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start + stop_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop + recent_folders: [] + - id: 1 + name: monalisa-octocat-hello-world-f8adfad99a + environment_id: 6ac8cd6d-a2d0-4ae3-8cea-e135059264df + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + machine: + name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + prebuild: false + devcontainer_path: ".devcontainer.json" + created_at: '2021-10-14T00:53:30-06:00' + updated_at: '2021-10-14T00:53:32-06:00' + last_used_at: '2021-10-14T00:53:30-06:00' + state: Available + url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a + git_status: + ahead: 0 + behind: 0 + has_unpushed_changes: false + has_uncommitted_changes: false + ref: main + location: WestUs2 + idle_timeout_minutes: 60 + web_url: https://monalisa-octocat-hello-world-f8adfad99a.github.dev + machines_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/machines + start_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/start + stop_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/stop + recent_folders: [] + repo-codespaces-secret-paginated: + value: + total_count: 2 + secrets: + - name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: all + - name: GIST_ID + created_at: '2020-01-10T10:59:22Z' + updated_at: '2020-01-11T11:59:22Z' + visibility: all + codespaces-public-key: + value: + key_id: '012345678912345678' + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + repo-codespaces-secret: + value: + name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: all + copilot-organization-details: + value: + seat_breakdown: + total: 12 + added_this_cycle: 9 + pending_invitation: 0 + pending_cancellation: 0 + active_this_cycle: 12 + inactive_this_cycle: 11 + seat_management_setting: assign_selected + ide_chat: enabled + platform_chat: enabled + cli: enabled + public_code_suggestions: block + plan_type: business + copilot-seats-list: + value: + total_seats: 2 + seats: + - created_at: '2021-08-03T18:00:00-06:00' + updated_at: '2021-09-23T15:00:00-06:00' + pending_cancellation_date: + last_activity_at: '2021-10-14T00:53:32-06:00' + last_activity_editor: vscode/1.77.3/copilot/1.86.82 + last_authenticated_at: '2021-10-14T00:53:32-06:00' + plan_type: business + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assigning_team: + id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + - created_at: '2021-09-23T18:00:00-06:00' + updated_at: '2021-09-23T15:00:00-06:00' + pending_cancellation_date: '2021-11-01' + last_activity_at: '2021-10-13T00:53:32-06:00' + last_activity_editor: vscode/1.77.3/copilot/1.86.82 + last_authenticated_at: '2021-10-14T00:53:32-06:00' + assignee: + login: octokitten + id: 1 + node_id: MDQ76VNlcjE= + avatar_url: https://github.com/images/error/octokitten_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octokitten + html_url: https://github.com/octokitten + followers_url: https://api.github.com/users/octokitten/followers + following_url: https://api.github.com/users/octokitten/following{/other_user} + gists_url: https://api.github.com/users/octokitten/gists{/gist_id} + starred_url: https://api.github.com/users/octokitten/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octokitten/subscriptions + organizations_url: https://api.github.com/users/octokitten/orgs + repos_url: https://api.github.com/users/octokitten/repos + events_url: https://api.github.com/users/octokitten/events{/privacy} + received_events_url: https://api.github.com/users/octokitten/received_events + type: User + site_admin: false + copilot-usage-metrics-for-day: + value: + - date: '2024-06-24' + total_active_users: 24 + total_engaged_users: 20 + copilot_ide_code_completions: + total_engaged_users: 20 + languages: + - name: python + total_engaged_users: 10 + - name: ruby + total_engaged_users: 10 + editors: + - name: vscode + total_engaged_users: 13 + models: + - name: default + is_custom_model: false + custom_model_training_date: + total_engaged_users: 13 + languages: + - name: python + total_engaged_users: 6 + total_code_suggestions: 249 + total_code_acceptances: 123 + total_code_lines_suggested: 225 + total_code_lines_accepted: 135 + - name: ruby + total_engaged_users: 7 + total_code_suggestions: 496 + total_code_acceptances: 253 + total_code_lines_suggested: 520 + total_code_lines_accepted: 270 + - name: neovim + total_engaged_users: 7 + models: + - name: a-custom-model + is_custom_model: true + custom_model_training_date: '2024-02-01' + languages: + - name: typescript + total_engaged_users: 3 + total_code_suggestions: 112 + total_code_acceptances: 56 + total_code_lines_suggested: 143 + total_code_lines_accepted: 61 + - name: go + total_engaged_users: 4 + total_code_suggestions: 132 + total_code_acceptances: 67 + total_code_lines_suggested: 154 + total_code_lines_accepted: 72 + copilot_ide_chat: + total_engaged_users: 13 + editors: + - name: vscode + total_engaged_users: 13 + models: + - name: default + is_custom_model: false + custom_model_training_date: + total_engaged_users: 12 + total_chats: 45 + total_chat_insertion_events: 12 + total_chat_copy_events: 16 + - name: a-custom-model + is_custom_model: true + custom_model_training_date: '2024-02-01' + total_engaged_users: 1 + total_chats: 10 + total_chat_insertion_events: 11 + total_chat_copy_events: 3 + copilot_dotcom_chat: + total_engaged_users: 14 + models: + - name: default + is_custom_model: false + custom_model_training_date: + total_engaged_users: 14 + total_chats: 38 + copilot_dotcom_pull_requests: + total_engaged_users: 12 + repositories: + - name: demo/repo1 + total_engaged_users: 8 + models: + - name: default + is_custom_model: false + custom_model_training_date: + total_pr_summaries_created: 6 + total_engaged_users: 8 + - name: demo/repo2 + total_engaged_users: 4 + models: + - name: a-custom-model + is_custom_model: true + custom_model_training_date: '2024-02-01' + total_pr_summaries_created: 10 + total_engaged_users: 4 + organization-dependabot-secret-paginated: + value: + total_count: 3 + secrets: + - name: MY_ARTIFACTORY_PASSWORD + created_at: '2021-08-10T14:59:22Z' + updated_at: '2021-12-10T14:59:22Z' + visibility: private + - name: NPM_TOKEN + created_at: '2021-08-10T14:59:22Z' + updated_at: '2021-12-10T14:59:22Z' + visibility: all + - name: GH_TOKEN + created_at: '2021-08-10T14:59:22Z' + updated_at: '2021-12-10T14:59:22Z' + visibility: selected + selected_repositories_url: https://api.github.com/orgs/octo-org/dependabot/secrets/SUPER_SECRET/repositories + dependabot-public-key: + value: + key_id: '012345678912345678' + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + organization-dependabot-secret: + value: + name: NPM_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: selected + selected_repositories_url: https://api.github.com/orgs/octo-org/dependabot/secrets/NPM_TOKEN/repositories + packages-for-org: + value: + - id: 197 + name: hello_docker + package_type: container + owner: + login: github + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + site_admin: false + version_count: 1 + visibility: private + url: https://api.github.com/orgs/github/packages/container/hello_docker + created_at: '2020-05-19T22:19:11Z' + updated_at: '2020-05-19T22:19:11Z' + html_url: https://github.com/orgs/github/packages/container/package/hello_docker + - id: 198 + name: goodbye_docker + package_type: container + owner: + login: github + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + site_admin: false + version_count: 2 + visibility: private + url: https://api.github.com/orgs/github/packages/container/goodbye_docker + created_at: '2020-05-20T22:19:11Z' + updated_at: '2020-05-20T22:19:11Z' + html_url: https://github.com/orgs/github/packages/container/package/goodbye_docker + public-org-events-items: + value: + - id: '22237752260' + type: WatchEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octo-org/octo-repo + url: https://api.github.com/repos/octo-org/octo-repo + payload: + action: started + public: true + created_at: '2022-06-08T23:29:25Z' + org: + id: 9919 + login: octo-org + gravatar_id: '' + url: https://api.github.com/orgs/octo-org + avatar_url: https://avatars.githubusercontent.com/u/9919? + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octo-org/octo-repo + url: https://api.github.com/repos/octo-org/octo-repo + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: true + created_at: '2022-06-09T12:47:28Z' + org: + id: 9919 + login: octo-org + gravatar_id: '' + url: https://api.github.com/orgs/octo-org + avatar_url: https://avatars.githubusercontent.com/u/9919? + organization-invitation-items: + value: + - id: 1 + login: monalisa + node_id: MDQ6VXNlcjE= + email: octocat@github.com + role: direct_member + created_at: '2016-11-30T06:46:10-08:00' + failed_at: '' + failed_reason: '' + inviter: + login: other_user + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/other_user_happy.gif + gravatar_id: '' + url: https://api.github.com/users/other_user + html_url: https://github.com/other_user + followers_url: https://api.github.com/users/other_user/followers + following_url: https://api.github.com/users/other_user/following{/other_user} + gists_url: https://api.github.com/users/other_user/gists{/gist_id} + starred_url: https://api.github.com/users/other_user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/other_user/subscriptions + organizations_url: https://api.github.com/users/other_user/orgs + repos_url: https://api.github.com/users/other_user/repos + events_url: https://api.github.com/users/other_user/events{/privacy} + received_events_url: https://api.github.com/users/other_user/received_events + type: User + site_admin: false + team_count: 2 + invitation_teams_url: https://api.github.com/organizations/2/invitations/1/teams + invitation_source: member + org-hook-items: + value: + - id: 1 + url: https://api.github.com/orgs/octocat/hooks/1 + ping_url: https://api.github.com/orgs/octocat/hooks/1/pings + deliveries_url: https://api.github.com/orgs/octocat/hooks/1/deliveries + name: web + events: + - push + - pull_request + active: true + config: + url: http://example.com + content_type: json + updated_at: '2011-09-06T20:39:23Z' + created_at: '2011-09-06T17:26:27Z' + type: Organization + org-hook: + value: + id: 1 + url: https://api.github.com/orgs/octocat/hooks/1 + ping_url: https://api.github.com/orgs/octocat/hooks/1/pings + deliveries_url: https://api.github.com/orgs/octocat/hooks/1/deliveries + name: web + events: + - push + - pull_request + active: true + config: + url: http://example.com + content_type: json + updated_at: '2011-09-06T20:39:23Z' + created_at: '2011-09-06T17:26:27Z' + type: Organization + org-hook-2: + value: + id: 1 + url: https://api.github.com/orgs/octocat/hooks/1 + ping_url: https://api.github.com/orgs/octocat/hooks/1/pings + deliveries_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/deliveries + name: web + events: + - pull_request + active: true + config: + url: http://example.com + content_type: json + updated_at: '2011-09-06T20:39:23Z' + created_at: '2011-09-06T17:26:27Z' + type: Organization + api-insights-route-stats: + value: + - http_method: GET + api_route: "/repositories/:repository_id" + total_request_count: 544665 + rate_limited_request_count: 13 + last_request_timestamp: '2024-09-18T15:43:03Z' + last_rate_limited_timestamp: '2024-09-18T06:30:09Z' + api-insights-subject-stats: + value: + - subject_type: installation + subject_id: 954453 + subject_name: GitHub Actions + integration_id: 124345 + total_request_count: 544665 + rate_limited_request_count: 13 + last_request_timestamp: '2024-09-18T15:43:03Z' + last_rate_limited_timestamp: '2024-09-18T06:30:09Z' + api-insights-summary-stats: + value: + total_request_count: 34225 + rate_limited_request_count: 23 + api-insights-time-stats: + value: + - timestamp: '2024-09-11T15:00:00Z' + total_request_count: 34225 + rate_limited_request_count: 0 + - timestamp: '2024-09-11T15:05:00Z' + total_request_count: 10587 + rate_limited_request_count: 18 + - timestamp: '2024-09-11T15:10:00Z' + total_request_count: 43587 + rate_limited_request_count: 14 + - timestamp: '2024-09-11T15:15:00Z' + total_request_count: 19463 + rate_limited_request_count: 4 + - timestamp: '2024-09-11T15:20:00Z' + total_request_count: 60542 + rate_limited_request_count: 3 + - timestamp: '2024-09-11T15:25:00Z' + total_request_count: 55872 + rate_limited_request_count: 23 + api-insights-user-stats: + value: + - actor_type: oauth_app + actor_id: 954453 + actor_name: GitHub Actions + oauth_application_id: 1245 + total_request_count: 544665 + rate_limited_request_count: 13 + last_request_timestamp: '2024-09-18T15:43:03Z' + last_rate_limited_timestamp: '2024-09-18T06:30:09Z' + installation: + value: + id: 1 + account: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + avatar_url: https://github.com/images/error/hubot_happy.gif + gravatar_id: '' + url: https://api.github.com/orgs/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + received_events_url: https://api.github.com/users/github/received_events + type: Organization + site_admin: false + repository_selection: all + access_tokens_url: https://api.github.com/app/installations/1/access_tokens + repositories_url: https://api.github.com/installation/repositories + html_url: https://github.com/organizations/github/settings/installations/1 + app_id: 1 + client_id: Iv1.ab1112223334445c + target_id: 1 + target_type: Organization + permissions: + checks: write + metadata: read + contents: read + events: + - push + - pull_request + created_at: '2018-02-09T20:51:14Z' + updated_at: '2018-02-09T20:51:14Z' + single_file_name: config.yml + has_multiple_single_files: true + single_file_paths: + - config.yml + - ".github/issue_TEMPLATE.md" + app_slug: github-actions + suspended_at: + suspended_by: + installation-paginated: + value: + total_count: 1 + installations: + - id: 25381 + account: + login: octo-org + id: 6811672 + node_id: MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI= + avatar_url: https://avatars3.githubusercontent.com/u/6811672?v=4 + gravatar_id: '' + url: https://api.github.com/users/octo-org + html_url: https://github.com/octo-org + followers_url: https://api.github.com/users/octo-org/followers + following_url: https://api.github.com/users/octo-org/following{/other_user} + gists_url: https://api.github.com/users/octo-org/gists{/gist_id} + starred_url: https://api.github.com/users/octo-org/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octo-org/subscriptions + organizations_url: https://api.github.com/users/octo-org/orgs + repos_url: https://api.github.com/users/octo-org/repos + events_url: https://api.github.com/users/octo-org/events{/privacy} + received_events_url: https://api.github.com/users/octo-org/received_events + type: Organization + site_admin: false + repository_selection: selected + access_tokens_url: https://api.github.com/app/installations/25381/access_tokens + repositories_url: https://api.github.com/installation/repositories + html_url: https://github.com/organizations/octo-org/settings/installations/25381 + app_id: 2218 + target_id: 6811672 + target_type: Organization + permissions: + deployments: write + metadata: read + pull_requests: read + statuses: read + events: + - deployment + - deployment_status + created_at: '2017-05-16T08:47:09.000-07:00' + updated_at: '2017-06-06T11:23:23.000-07:00' + single_file_name: config.yml + has_multiple_single_files: true + single_file_paths: + - config.yml + - ".github/issue_TEMPLATE.md" + app_slug: github-actions + suspended_at: + suspended_by: + interaction-limit-response: + value: + limit: collaborators_only + origin: organization + expires_at: '2018-08-17T04:18:39Z' + organization-invitation: + value: + id: 1 + login: monalisa + node_id: MDQ6VXNlcjE= + email: octocat@github.com + role: direct_member + created_at: '2016-11-30T06:46:10-08:00' + inviter: + login: other_user + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/other_user_happy.gif + gravatar_id: '' + url: https://api.github.com/users/other_user + html_url: https://github.com/other_user + followers_url: https://api.github.com/users/other_user/followers + following_url: https://api.github.com/users/other_user/following{/other_user} + gists_url: https://api.github.com/users/other_user/gists{/gist_id} + starred_url: https://api.github.com/users/other_user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/other_user/subscriptions + organizations_url: https://api.github.com/users/other_user/orgs + repos_url: https://api.github.com/users/other_user/repos + events_url: https://api.github.com/users/other_user/events{/privacy} + received_events_url: https://api.github.com/users/other_user/received_events + type: User + site_admin: false + team_count: 2 + invitation_teams_url: https://api.github.com/organizations/2/invitations/1/teams + invitation_source: member + team-items: + value: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + issue-type-items: + value: + - id: 410 + node_id: IT_kwDNAd3NAZo + name: Task + description: A specific piece of work + created_at: '2024-12-11T14:39:09Z' + updated_at: '2024-12-11T14:39:09Z' + - id: 411 + node_id: IT_kwDNAd3NAZs + name: Bug + description: An unexpected problem or behavior + created_at: '2024-12-11T14:39:09Z' + updated_at: '2024-12-11T14:39:09Z' + issue-type: + value: + id: 410 + node_id: IT_kwDNAd3NAZo + name: Task + description: A specific piece of work + created_at: '2024-12-11T14:39:09Z' + updated_at: '2024-12-11T14:39:09Z' + codespace: + value: + id: 1 + name: monalisa-octocat-hello-world-g4wpq6h95q + environment_id: 26a7c758-7299-4a73-b978-5a92a7ae98a0 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + machine: + name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + prebuild: false + devcontainer_path: ".devcontainer/devcontainer.json" + created_at: '2021-10-14T00:53:30-06:00' + updated_at: '2021-10-14T00:53:32-06:00' + last_used_at: '2021-10-14T00:53:30-06:00' + state: Available + url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q + git_status: + ahead: 0 + behind: 0 + has_unpushed_changes: false + has_uncommitted_changes: false + ref: main + location: WestUs2 + idle_timeout_minutes: 60 + retention_period_minutes: 43200 + retention_expires_at: + web_url: https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev + machines_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines + start_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start + stop_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls/1 + recent_folders: [] + template: + copilot-seat-detail-active: + value: + created_at: '2021-08-03T18:00:00-06:00' + updated_at: '2021-09-23T15:00:00-06:00' + pending_cancellation_date: + last_activity_at: '2021-10-14T00:53:32-06:00' + last_activity_editor: vscode/1.77.3/copilot/1.86.82 + last_authenticated_at: '2021-10-14T00:53:32-06:00' + plan_type: business + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assigning_team: + id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + org-membership-response-if-user-has-an-active-admin-membership-with-organization: + summary: Response if user has an active admin membership with organization + value: + url: https://api.github.com/orgs/octocat/memberships/defunkt + state: active + role: admin + organization_url: https://api.github.com/orgs/octocat + direct_membership: true + enterprise_teams_providing_indirect_membership: + - ent:justice-league + - ent:security-managers + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + migration-with-short-org-items: + value: + - id: 79 + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + state: pending + lock_repositories: true + exclude_attachments: false + exclude_releases: false + exclude_owner_projects: false + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + url: https://api.github.com/orgs/octo-org/migrations/79 + created_at: '2015-07-06T15:33:38-07:00' + updated_at: '2015-07-06T15:33:38-07:00' + node_id: MDQ6VXNlcjE= + migration-with-short-org-2: + value: + id: 79 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + state: pending + lock_repositories: true + exclude_attachments: false + exclude_releases: false + exclude_owner_projects: false + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + url: https://api.github.com/orgs/octo-org/migrations/79 + created_at: '2015-07-06T15:33:38-07:00' + updated_at: '2015-07-06T15:33:38-07:00' + migration-with-short-org: + value: + id: 79 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + state: exported + lock_repositories: true + exclude_attachments: false + exclude_releases: false + exclude_owner_projects: false + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + url: https://api.github.com/orgs/octo-org/migrations/79 + created_at: '2015-07-06T15:33:38-07:00' + updated_at: '2015-07-06T15:33:38-07:00' + minimal-repository-items: + value: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + has_discussions: false + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + security_and_analysis: + advanced_security: + status: enabled + secret_scanning: + status: enabled + secret_scanning_push_protection: + status: disabled + secret_scanning_non_provider_patterns: + status: disabled + organization-role-list: + value: + total_count: 2 + roles: + - id: 8030 + name: Custom Role Manager + description: Permissions to manage custom roles within an org + permissions: + - write_organization_custom_repo_role + - write_organization_custom_org_role + - read_organization_custom_repo_role + - read_organization_custom_org_role + organization: + login: github + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + site_admin: false + created_at: '2022-07-04T22:19:11Z' + updated_at: '2022-07-04T22:20:11Z' + - id: 8031 + name: Auditor + description: Permissions to read the organization audit log + permissions: + - read_audit_logs + organization: + login: github + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + site_admin: false + created_at: '2022-07-04T22:19:11Z' + updated_at: '2022-07-04T22:20:11Z' + organization-role: + value: + id: 8030 + name: Custom Role Manager + description: Permissions to manage custom roles within an org + permissions: + - write_organization_custom_repo_role + - write_organization_custom_org_role + - read_organization_custom_repo_role + - read_organization_custom_org_role + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + created_at: '2022-07-04T22:19:11Z' + updated_at: '2022-07-04T22:20:11Z' + package-org: + value: + id: 197 + name: hello_docker + package_type: container + owner: + login: github + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + site_admin: false + version_count: 1 + visibility: private + url: https://api.github.com/orgs/github/packages/container/hello_docker + created_at: '2020-05-19T22:19:11Z' + updated_at: '2020-05-19T22:19:11Z' + html_url: https://github.com/orgs/github/packages/container/package/hello_docker + package-versions-for-org: + value: + - id: 245301 + name: 1.0.4 + url: https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/245301 + package_html_url: https://github.com/octo-org/hello-world-npm/packages/43752 + created_at: '2019-11-05T22:49:04Z' + updated_at: '2019-11-05T22:49:04Z' + html_url: https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.4 + metadata: + package_type: npm + - id: 209672 + name: 1.0.3 + url: https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/209672 + package_html_url: https://github.com/octo-org/hello-world-npm/packages/43752 + created_at: '2019-10-29T15:42:11Z' + updated_at: '2019-10-29T15:42:12Z' + html_url: https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.3 + metadata: + package_type: npm + package-version-org: + value: + id: 836 + name: sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344 + url: https://api.github.com/orgs/github/packages/container/hello_docker/versions/836 + package_html_url: https://github.com/orgs/github/packages/container/package/hello_docker + created_at: '2020-05-19T22:19:11Z' + updated_at: '2020-05-19T22:19:11Z' + html_url: https://github.com/orgs/github/packages/container/hello_docker/836 + metadata: + package_type: container + container: + tags: + - latest + org-pat-grant-request-paginated: + value: + - id: 25381 + reason: I need to access the GitHub API + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository_selection: all + repositories_url: https://api.github.com/organizations/652551/personal-access-token-requests/25381/repositories + permissions: + organization: + members: read + repository: + metadata: read + created_at: '2023-05-16T08:47:09.000-07:00' + token_id: 98716 + token_name: Some Token + token_expired: false + token_expires_at: '2023-11-16T08:47:09.000-07:00' + token_last_used_at: + org-pat-grant-paginated: + value: + - id: 25381 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository_selection: all + repositories_url: https://api.github.com/organizations/652551/personal-access-tokens/25381/repositories + permissions: + organization: + members: read + repository: + metadata: read + access_granted_at: '2023-05-16T08:47:09.000-07:00' + token_id: 98716 + token_name: Some Token + token_expired: false + token_expires_at: '2023-11-16T08:47:09.000-07:00' + token_last_used_at: + org-private-registry-configurations-paginated: + value: + total_count: 1 + configurations: + - name: MAVEN_REPOSITORY_SECRET + registry_type: maven_repository + username: monalisa + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: selected + org-private-registry-configuration: + value: + name: MAVEN_REPOSITORY_SECRET + registry_type: maven_repository + username: monalisa + visibility: private + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + org-private-registry-configuration-with-selected-repositories: + value: + name: MAVEN_REPOSITORY_SECRET + registry_type: maven_repository + username: monalisa + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + private-registries-public-key: + value: + key_id: '012345678912345678' + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + projects-v2: + value: + id: 2 + node_id: MDc6UHJvamVjdDEwMDI2MDM= + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + title: My Projects + description: A board to manage my personal projects. + public: true + closed_at: + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + number: 2 + short_description: + deleted_at: + deleted_by: + state: open + latest_status_update: + id: 3 + node_id: PVTSU_lAECAQM + creator: + login: hubot + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://github.com/images/error/hubot_happy.gif + gravatar_id: '' + url: https://api.github.com/users/hubot + html_url: https://github.com/hubot + followers_url: https://api.github.com/users/hubot/followers + following_url: https://api.github.com/users/hubot/following{/other_user} + gists_url: https://api.github.com/users/hubot/gists{/gist_id} + starred_url: https://api.github.com/users/hubot/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/hubot/subscriptions + organizations_url: https://api.github.com/users/hubot/orgs + repos_url: https://api.github.com/users/hubot/repos + events_url: https://api.github.com/users/hubot/events{/privacy} + received_events_url: https://api.github.com/users/hubot/received_events + type: User + site_admin: false + body: DONE + start_date: '2025-07-23' + target_date: '2025-07-26' + status: COMPLETE + created_at: '2025-07-11T16:19:28Z' + updated_at: '2025-07-11T16:19:28Z' + is_template: true + projects-v2-item-simple: + value: + id: 17 + node_id: PVTI_lADOANN5s84ACbL0zgBueEI + content: + id: 38 + node_id: I_kwDOANN5s85FtLts + title: Example Draft Issue + body: This is a draft issue in the project. + created_at: '2022-04-28T12:00:00Z' + updated_at: '2022-04-28T12:00:00Z' + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + content_type: DraftIssue + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2022-04-28T12:00:00Z' + updated_at: '2022-04-28T12:00:00Z' + archived_at: + project_url: https://api.github.com/users/octocat/projectsV2/1 + item_url: https://api.github.com/users/octocat/projectsV2/items/17 + projects-v2-field-items: + value: + - id: 12345 + node_id: PVTF_lADOABCD1234567890 + name: Priority + data_type: single_select + project_url: https://api.github.com/projects/67890 + options: + - id: option_1 + name: + html: Low + raw: Low + color: GREEN + description: + html: Low priority items + raw: Low priority items + - id: option_2 + name: + html: Medium + raw: Medium + color: YELLOW + description: + html: Medium priority items + raw: Medium priority items + - id: option_3 + name: + html: High + raw: High + color: RED + description: + html: High priority items + raw: High priority items + created_at: '2022-04-28T12:00:00Z' + updated_at: '2022-04-28T12:00:00Z' + - id: 67891 + node_id: PVTF_lADOABCD9876543210 + name: Status + data_type: single_select + project_url: https://api.github.com/projects/67890 + options: + - id: option_4 + name: + html: Todo + raw: Todo + color: GRAY + description: + html: Items to be worked on + raw: Items to be worked on + - id: option_5 + name: + html: In Progress + raw: In Progress + color: BLUE + description: + html: Items currently being worked on + raw: Items currently being worked on + - id: option_6 + name: + html: Done + raw: Done + color: GREEN + description: + html: Completed items + raw: Completed items + created_at: '2022-04-29T10:30:00Z' + updated_at: '2022-04-29T10:30:00Z' + - id: 24680 + node_id: PVTF_lADOABCD2468024680 + name: Team notes + data_type: text + project_url: https://api.github.com/projects/67890 + created_at: '2022-05-15T08:00:00Z' + updated_at: '2022-05-15T08:00:00Z' + - id: 13579 + node_id: PVTF_lADOABCD1357913579 + name: Story points + data_type: number + project_url: https://api.github.com/projects/67890 + created_at: '2022-06-01T14:30:00Z' + updated_at: '2022-06-01T14:30:00Z' + - id: 98765 + node_id: PVTF_lADOABCD9876598765 + name: Due date + data_type: date + project_url: https://api.github.com/projects/67890 + created_at: '2022-06-10T09:15:00Z' + updated_at: '2022-06-10T09:15:00Z' + - id: 11223 + node_id: PVTF_lADOABCD1122311223 + name: Sprint + data_type: iteration + project_url: https://api.github.com/projects/67890 + configuration: + duration: 14 + start_day: 1 + iterations: + - id: iter_1 + title: + html: Sprint 1 + raw: Sprint 1 + start_date: '2022-07-01' + duration: 14 + - id: iter_2 + title: + html: Sprint 2 + raw: Sprint 2 + start_date: '2022-07-15' + duration: 14 + created_at: '2022-06-20T16:45:00Z' + updated_at: '2022-06-20T16:45:00Z' + projects-v2-field-single-select-request: + summary: Create a single select field + value: + name: Priority + data_type: single_select + single_select_options: + - name: + raw: Low + html: Low + color: GREEN + description: + raw: Low priority items + html: Low priority items + - name: + raw: Medium + html: Medium + color: YELLOW + description: + raw: Medium priority items + html: Medium priority items + - name: + raw: High + html: High + color: RED + description: + raw: High priority items + html: High priority items + projects-v2-field-iteration-request: + summary: Create an iteration field + value: + name: Sprint + data_type: iteration + iteration_configuration: + start_day: 1 + duration: 14 + iterations: + - title: + raw: Sprint 1 + html: Sprint 1 + start_date: '2022-07-01' + duration: 14 + - title: + raw: Sprint 2 + html: Sprint 2 + start_date: '2022-07-15' + duration: 14 + projects-v2-field-text: + value: + id: 24680 + node_id: PVTF_lADOABCD2468024680 + name: Team notes + data_type: text + project_url: https://api.github.com/projects/67890 + created_at: '2022-05-15T08:00:00Z' + updated_at: '2022-05-15T08:00:00Z' + projects-v2-field-number: + value: + id: 13579 + node_id: PVTF_lADOABCD1357913579 + name: Story points + data_type: number + project_url: https://api.github.com/projects/67890 + created_at: '2022-06-01T14:30:00Z' + updated_at: '2022-06-01T14:30:00Z' + projects-v2-field-date: + value: + id: 98765 + node_id: PVTF_lADOABCD9876598765 + name: Due date + data_type: date + project_url: https://api.github.com/projects/67890 + created_at: '2022-06-10T09:15:00Z' + updated_at: '2022-06-10T09:15:00Z' + projects-v2-field-single-select: + value: + id: 12345 + node_id: PVTF_lADOABCD1234567890 + name: Priority + data_type: single_select + project_url: https://api.github.com/projects/67890 + options: + - id: option_1 + name: + html: Low + raw: Low + color: GREEN + description: + html: Low priority items + raw: Low priority items + - id: option_2 + name: + html: Medium + raw: Medium + color: YELLOW + description: + html: Medium priority items + raw: Medium priority items + - id: option_3 + name: + html: High + raw: High + color: RED + description: + html: High priority items + raw: High priority items + created_at: '2022-04-28T12:00:00Z' + updated_at: '2022-04-28T12:00:00Z' + projects-v2-field-iteration: + value: + id: 11223 + node_id: PVTF_lADOABCD1122311223 + name: Sprint + data_type: iteration + project_url: https://api.github.com/projects/67890 + configuration: + duration: 14 + start_day: 1 + iterations: + - id: iter_1 + title: + html: Sprint 1 + raw: Sprint 1 + start_date: '2022-07-01' + duration: 14 + - id: iter_2 + title: + html: Sprint 2 + raw: Sprint 2 + start_date: '2022-07-15' + duration: 14 + created_at: '2022-06-20T16:45:00Z' + updated_at: '2022-06-20T16:45:00Z' + projects-v2-field: + value: + id: 12345 + node_id: PVTF_lADOABCD1234567890 + name: Priority + data_type: single_select + project_url: https://api.github.com/projects/67890 + options: + - id: option_1 + name: + html: Low + raw: Low + color: GREEN + description: + html: Low priority items + raw: Low priority items + - id: option_2 + name: + html: Medium + raw: Medium + color: YELLOW + description: + html: Medium priority items + raw: Medium priority items + - id: option_3 + name: + html: High + raw: High + color: RED + description: + html: High priority items + raw: High priority items + created_at: '2022-04-28T12:00:00Z' + updated_at: '2022-04-28T12:00:00Z' + projects-v2-item-with-content: + value: + id: 13 + node_id: PVTI_lAAFAQ0 + project_url: https://api.github.com/orgs/github/projectsV2/1 + content: + url: https://api.github.com/repos/github/Hello-World/pulls/6 + id: 10 + node_id: PR_kwABCg + html_url: https://github.com/github/Hello-World/pull/6 + diff_url: https://github.com/github/Hello-World/pull/6.diff + patch_url: https://github.com/github/Hello-World/pull/6.patch + issue_url: https://api.github.com/repos/github/Hello-World/issues/6 + number: 6 + state: open + locked: false + title: Issue title + user: + login: monalisa + id: 161 + node_id: U_kgDMoQ + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + user_view_type: public + site_admin: false + body: Issue body + created_at: '2025-08-01T18:44:50Z' + updated_at: '2025-08-06T19:25:18Z' + closed_at: + merged_at: + merge_commit_sha: 98e25bad5878e54d22e5338cbc905dd2deedfa34 + assignee: + login: octocat + id: 175 + node_id: U_kgDMrw + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + user_view_type: public + site_admin: false + assignees: + - login: octocat + id: 175 + node_id: U_kgDMrw + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + user_view_type: public + site_admin: false + requested_reviewers: + - login: monalisa + id: 2 + node_id: U_kgAC + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + user_view_type: public + site_admin: false + requested_teams: [] + labels: + - id: 19 + node_id: LA_kwABEw + url: 'https://api.github.com/repos/github/Hello-World/labels/bug%20:bug:' + name: 'bug :bug:' + color: efe24f + default: false + description: Something isn't working + - id: 26 + node_id: LA_kwABGg + url: https://api.github.com/repos/github/Hello-World/labels/fun%20size%20%F0%9F%8D%AB + name: "fun size \U0001F36B" + color: f29c24 + default: false + description: Extra attention is needed + - id: 33 + node_id: LA_kwABIQ + url: https://api.github.com/repos/github/Hello-World/labels/%F0%9F%9A%92%20wontfix + name: "\U0001F692 wontfix" + color: 5891ce + default: false + description: This will not be worked on + milestone: + url: https://api.github.com/repos/github/Hello-World/milestones/1 + html_url: https://github.com/github/Hello-World/milestone/1 + labels_url: https://api.github.com/repos/github/Hello-World/milestones/1/labels + id: 1 + node_id: MI_kwABAQ + number: 1 + title: Open milestone + description: + creator: + login: monalisa + id: 2 + node_id: U_kgAC + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + user_view_type: public + site_admin: false + open_issues: 2 + closed_issues: 1 + state: open + created_at: '2025-08-01T18:44:30Z' + updated_at: '2025-08-06T19:14:15Z' + due_on: + closed_at: + draft: false + commits_url: https://api.github.com/repos/github/Hello-World/pulls/6/commits + review_comments_url: https://api.github.com/repos/github/Hello-World/pulls/6/comments + review_comment_url: https://api.github.com/repos/github/Hello-World/pulls/comments{/number} + comments_url: https://api.github.com/repos/github/Hello-World/issues/6/comments + statuses_url: https://api.github.com/repos/github/Hello-World/statuses/a3258d3434ecb2058b2784c8eb8610c2e9937a0d + head: + label: github:branch-2ee3da8fde8a1adfe6d0809a1a414e4f + ref: branch-2ee3da8fde8a1adfe6d0809a1a414e4f + sha: a3258d3434ecb2058b2784c8eb8610c2e9937a0d + user: + login: github + id: 5 + node_id: O_kgAF + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + user_view_type: public + site_admin: false + repo: + id: 1 + node_id: R_kgAB + name: Hello-World + full_name: github/Hello-World + private: false + owner: + login: github + id: 5 + node_id: O_kgAF + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + user_view_type: public + site_admin: false + html_url: https://github.com/github/Hello-World + description: + fork: false + url: https://api.github.com/repos/github/Hello-World + forks_url: https://api.github.com/repos/github/Hello-World/forks + keys_url: https://api.github.com/repos/github/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/github/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/github/Hello-World/teams + hooks_url: https://api.github.com/repos/github/Hello-World/hooks + issue_events_url: https://api.github.com/repos/github/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/github/Hello-World/events + assignees_url: https://api.github.com/repos/github/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/github/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/github/Hello-World/tags + blobs_url: https://api.github.com/repos/github/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/github/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/github/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/github/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/github/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/github/Hello-World/languages + stargazers_url: https://api.github.com/repos/github/Hello-World/stargazers + contributors_url: https://api.github.com/repos/github/Hello-World/contributors + subscribers_url: https://api.github.com/repos/github/Hello-World/subscribers + subscription_url: https://api.github.com/repos/github/Hello-World/subscription + commits_url: https://api.github.com/repos/github/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/github/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/github/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/github/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/github/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/github/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/github/Hello-World/merges + archive_url: https://api.github.com/repos/github/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/github/Hello-World/downloads + issues_url: https://api.github.com/repos/github/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/github/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/github/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/github/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/github/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/github/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/github/Hello-World/deployments + created_at: '2025-08-01T18:44:14Z' + updated_at: '2025-08-01T18:48:38Z' + pushed_at: '2025-08-01T18:44:50Z' + git_url: git://github.localhost/github/Hello-World.git + ssh_url: ssh://git@localhost:3035/github/Hello-World.git + clone_url: https://github.com/github/Hello-World.git + svn_url: https://github.com/github/Hello-World + homepage: + size: 6 + stargazers_count: 0 + watchers_count: 0 + language: + has_issues: true + has_projects: true + has_downloads: true + has_wiki: true + has_pages: false + has_discussions: false + forks_count: 0 + mirror_url: + archived: false + disabled: false + open_issues_count: 3 + license: + allow_forking: true + is_template: false + web_commit_signoff_required: false + topics: [] + visibility: public + forks: 0 + open_issues: 3 + watchers: 0 + default_branch: main + base: + label: github:branch-0f4ceb14cbe39e4786ffbabb776da599 + ref: branch-0f4ceb14cbe39e4786ffbabb776da599 + sha: 9a9f5a8d77bdc2540412900d3c930fe36a82b5ed + user: + login: github + id: 5 + node_id: O_kgAF + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + user_view_type: public + site_admin: false + repo: + id: 1 + node_id: R_kgAB + name: Hello-World + full_name: github/Hello-World + private: false + owner: + login: github + id: 5 + node_id: O_kgAF + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + user_view_type: public + site_admin: false + html_url: https://github.com/github/Hello-World + description: + fork: false + url: https://api.github.com/repos/github/Hello-World + forks_url: https://api.github.com/repos/github/Hello-World/forks + keys_url: https://api.github.com/repos/github/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/github/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/github/Hello-World/teams + hooks_url: https://api.github.com/repos/github/Hello-World/hooks + issue_events_url: https://api.github.com/repos/github/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/github/Hello-World/events + assignees_url: https://api.github.com/repos/github/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/github/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/github/Hello-World/tags + blobs_url: https://api.github.com/repos/github/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/github/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/github/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/github/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/github/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/github/Hello-World/languages + stargazers_url: https://api.github.com/repos/github/Hello-World/stargazers + contributors_url: https://api.github.com/repos/github/Hello-World/contributors + subscribers_url: https://api.github.com/repos/github/Hello-World/subscribers + subscription_url: https://api.github.com/repos/github/Hello-World/subscription + commits_url: https://api.github.com/repos/github/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/github/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/github/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/github/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/github/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/github/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/github/Hello-World/merges + archive_url: https://api.github.com/repos/github/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/github/Hello-World/downloads + issues_url: https://api.github.com/repos/github/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/github/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/github/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/github/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/github/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/github/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/github/Hello-World/deployments + created_at: '2025-08-01T18:44:14Z' + updated_at: '2025-08-01T18:48:38Z' + pushed_at: '2025-08-01T18:44:50Z' + git_url: git://github.localhost/github/Hello-World.git + ssh_url: ssh://git@localhost:3035/github/Hello-World.git + clone_url: https://github.com/github/Hello-World.git + svn_url: https://github.com/github/Hello-World + homepage: + size: 6 + stargazers_count: 0 + watchers_count: 0 + language: + has_issues: true + has_projects: true + has_downloads: true + has_wiki: true + has_pages: false + has_discussions: false + forks_count: 0 + mirror_url: + archived: false + disabled: false + open_issues_count: 3 + license: + allow_forking: true + is_template: false + web_commit_signoff_required: false + topics: [] + visibility: public + forks: 0 + open_issues: 3 + watchers: 0 + default_branch: main + _links: + self: + href: https://api.github.com/repos/github/Hello-World/pulls/6 + html: + href: https://github.com/github/Hello-World/pull/6 + issue: + href: https://api.github.com/repos/github/Hello-World/issues/6 + comments: + href: https://api.github.com/repos/github/Hello-World/issues/6/comments + review_comments: + href: https://api.github.com/repos/github/Hello-World/pulls/6/comments + review_comment: + href: https://api.github.com/repos/github/Hello-World/pulls/comments{/number} + commits: + href: https://api.github.com/repos/github/Hello-World/pulls/6/commits + statuses: + href: https://api.github.com/repos/github/Hello-World/statuses/a3258d3434ecb2058b2784c8eb8610c2e9937a0d + author_association: MEMBER + auto_merge: + active_lock_reason: + content_type: PullRequest + creator: + login: monalisa + id: 2 + node_id: U_kgAC + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + user_view_type: public + site_admin: false + created_at: '2025-08-01T18:44:51Z' + updated_at: '2025-08-06T19:25:18Z' + archived_at: + item_url: https://api.github.com/orgs/github/projectsV2/1/items/13 + fields: + - id: 1 + name: Title + type: title + value: + raw: It seemed to me that any civilization that had so far lost its head + as to need to include a set of detailed instructions for use in a packet + of toothpicks, was no longer a civilization in which I could live and + stay sane. + html: It seemed to me that any civilization that had so far lost its head + as to need to include a set of detailed instructions for use in a packet + of toothpicks, was no longer a civilization in which I could live and + stay sane. + number: 6 + url: https://github.com/5/1/pull/6 + issue_id: 12 + state: open + state_reason: + is_draft: false + - id: 2 + name: Assignees + type: assignees + value: + - login: octocat + id: 175 + node_id: U_kgDMrw + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + user_view_type: public + site_admin: false + - id: 3 + name: Status + type: single_select + value: + id: '98236657' + name: + raw: Done + html: Done + color: PURPLE + description: + raw: This has been completed + html: This has been completed + - id: 4 + name: Labels + type: labels + value: + - id: 19 + node_id: LA_kwABEw + url: 'https://api.github.com/repos/github/Hello-World/labels/bug%20:bug:' + name: 'bug :bug:' + color: efe24f + default: false + description: Something isn't working + - id: 26 + node_id: LA_kwABGg + url: https://api.github.com/repos/github/Hello-World/labels/fun%20size%20%F0%9F%8D%AB + name: "fun size \U0001F36B" + color: f29c24 + default: false + description: Extra attention is needed + - id: 33 + node_id: LA_kwABIQ + url: https://api.github.com/repos/github/Hello-World/labels/%F0%9F%9A%92%20wontfix + name: "\U0001F692 wontfix" + color: 5891ce + default: false + description: This will not be worked on + - id: 5 + name: Linked pull requests + type: linked_pull_requests + value: [] + - id: 6 + name: Milestone + type: milestone + value: + url: https://api.github.com/repos/github/Hello-World/milestones/1 + html_url: https://github.com/github/Hello-World/milestone/1 + labels_url: https://api.github.com/repos/github/Hello-World/milestones/1/labels + id: 1 + node_id: MI_kwABAQ + number: 1 + title: Open milestone + description: + creator: + login: octocat + id: 175 + node_id: U_kgDMrw + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + user_view_type: public + site_admin: false + open_issues: 2 + closed_issues: 1 + state: open + created_at: '2025-08-01T18:44:30Z' + updated_at: '2025-08-06T19:14:15Z' + due_on: + closed_at: + - id: 7 + name: Repository + type: repository + value: + id: 1 + node_id: R_kgAB + name: Hello-World + full_name: github/Hello-World + private: false + owner: + login: github + id: 5 + node_id: O_kgAF + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + user_view_type: public + site_admin: false + html_url: https://github.com/github/Hello-World + description: + fork: false + url: https://api.github.com/repos/github/Hello-World + forks_url: https://api.github.com/repos/github/Hello-World/forks + keys_url: https://api.github.com/repos/github/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/github/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/github/Hello-World/teams + hooks_url: https://api.github.com/repos/github/Hello-World/hooks + issue_events_url: https://api.github.com/repos/github/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/github/Hello-World/events + assignees_url: https://api.github.com/repos/github/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/github/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/github/Hello-World/tags + blobs_url: https://api.github.com/repos/github/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/github/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/github/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/github/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/github/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/github/Hello-World/languages + stargazers_url: https://api.github.com/repos/github/Hello-World/stargazers + contributors_url: https://api.github.com/repos/github/Hello-World/contributors + subscribers_url: https://api.github.com/repos/github/Hello-World/subscribers + subscription_url: https://api.github.com/repos/github/Hello-World/subscription + commits_url: https://api.github.com/repos/github/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/github/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/github/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/github/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/github/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/github/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/github/Hello-World/merges + archive_url: https://api.github.com/repos/github/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/github/Hello-World/downloads + issues_url: https://api.github.com/repos/github/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/github/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/github/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/github/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/github/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/github/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/github/Hello-World/deployments + - id: 8 + name: Type + type: issue_type + value: + - id: 9 + name: Reviewers + type: reviewers + value: + - type: ReviewRequest + status: pending + reviewer: + avatarUrl: https://github.com/images/error/octocat_happy.gif + id: 2 + login: monalisa + url: https://github.com/monalisa + name: monalisa + type: User + - id: 10 + name: Parent issue + type: parent_issue + value: + - id: 11 + name: Sub-issues progress + type: sub_issues_progress + value: + projects-v2-view: + value: + id: 1 + number: 1 + name: Sprint Board + layout: board + node_id: PVTV_lADOANN5s84ACbL0zgBueEI + project_url: https://api.github.com/orgs/octocat/projectsV2/1 + html_url: https://github.com/orgs/octocat/projects/1/views/1 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2022-04-28T12:00:00Z' + updated_at: '2022-04-28T12:00:00Z' + filter: is:issue is:open + visible_fields: + - 123 + - 456 + - 789 + sort_by: + - - 123 + - asc + - - 456 + - desc + group_by: + - 123 + vertical_group_by: + - 456 + custom-properties: + value: + - property_name: environment + url: https://api.github.com/orgs/github/properties/schema/environment + source_type: organization + value_type: single_select + required: true + default_value: production + description: Prod or dev environment + allowed_values: + - production + - development + values_editable_by: org_actors + - property_name: service + url: https://api.github.com/orgs/github/properties/schema/service + source_type: organization + value_type: string + - property_name: team + url: https://api.github.com/orgs/github/properties/schema/team + source_type: organization + value_type: string + description: Team owning the repository + custom-property: + value: + property_name: environment + url: https://api.github.com/orgs/github/properties/schema/environment + source_type: organization + value_type: single_select + required: true + default_value: production + description: Prod or dev environment + allowed_values: + - production + - development + org-repo-custom-property-values: + value: + - repository_id: 1296269 + repository_name: Hello-World + repository_full_name: octocat/Hello-World + properties: + - property_name: environment + value: production + - property_name: service + value: web + - property_name: team + value: octocat + org-repo-update-custom-property-values: + value: + repository_names: + - Hello-World + - octo-repo + properties: + - property_name: environment + value: production + - property_name: service + value: web + - property_name: team + value: octocat + full-repository: + value: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + language: + forks_count: 9 + forks: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues_count: 0 + open_issues: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + pull: true + push: false + admin: false + allow_rebase_merge: true + template_repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World-Template + full_name: octocat/Hello-World-Template + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World-Template + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World-Template + archive_url: https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World-Template/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World-Template/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World-Template/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World-Template/downloads + events_url: https://api.github.com/repos/octocat/Hello-World-Template/events + forks_url: https://api.github.com/repos/octocat/Hello-World-Template/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World-Template.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World-Template/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World-Template/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World-Template/languages + merges_url: https://api.github.com/repos/octocat/Hello-World-Template/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World-Template/releases{/id} + ssh_url: git@github.com:octocat/Hello-World-Template.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World-Template/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World-Template/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World-Template/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World-Template/tags + teams_url: https://api.github.com/repos/octocat/Hello-World-Template/teams + trees_url: https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World-Template.git + mirror_url: git:git.example.com/octocat/Hello-World-Template + hooks_url: https://api.github.com/repos/octocat/Hello-World-Template/hooks + svn_url: https://svn.github.com/octocat/Hello-World-Template + homepage: https://github.com + language: + forks: 9 + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues: 0 + open_issues_count: 0 + is_template: true + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + allow_forking: true + web_commit_signoff_required: false + subscribers_count: 42 + network_count: 0 + organization: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: Organization + site_admin: false + parent: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + source: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + org-ruleset-items: + value: + - id: 21 + name: super cool ruleset + source_type: Organization + source: my-org + enforcement: enabled + node_id: RRS_lACkVXNlcgQB + _links: + self: + href: https://api.github.com/orgs/my-org/rulesets/21 + html: + href: https://github.com/organizations/my-org/settings/rules/21 + created_at: '2023-07-15T08:43:03Z' + updated_at: '2023-08-23T16:29:47Z' + - id: 432 + name: Another ruleset + source_type: Organization + source: my-org + enforcement: enabled + node_id: RRS_lACkVXNlcgQQ + _links: + self: + href: https://api.github.com/orgs/my-org/rulesets/432 + html: + href: https://github.com/organizations/my-org/settings/rules/432 + created_at: '2023-08-15T08:43:03Z' + updated_at: '2023-09-23T16:29:47Z' + org-ruleset: + value: + id: 21 + name: super cool ruleset + target: branch + source_type: Organization + source: my-org + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + repository_name: + include: + - important_repository + - another_important_repository + exclude: + - unimportant_repository + protected: true + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + node_id: RRS_lACkVXNlcgQB + _links: + self: + href: https://api.github.com/orgs/my-org/rulesets/21 + html: + href: https://github.com/organizations/my-org/settings/rules/21 + created_at: '2023-08-15T08:43:03Z' + updated_at: '2023-09-23T16:29:47Z' + rule-suite-items: + value: + - id: 21 + actor_id: 12 + actor_name: octocat + before_sha: 893f768e172fb1bc9c5d6f3dd48557e45f14e01d + after_sha: dedd88641a362b6b4ea872da4847d6131a164d01 + ref: refs/heads/i-see-everything + repository_id: 404 + repository_name: octo-repo + pushed_at: '2023-07-06T08:43:03Z' + result: bypass + - id: 25 + actor_id: 11 + actor_name: not-octocat + before_sha: 48994e4e01ccc943624c6231f172702b82b233cc + after_sha: ecfd5a1025fa271a33ca5608d089476a2df3c9a1 + ref: refs/heads/i-am-everything + repository_id: 404 + repository_name: octo-repo + pushed_at: '2023-07-07T08:43:03Z' + result: pass + evaluation_result: fail + rule-suite: + value: + id: 21 + actor_id: 12 + actor_name: octocat + before_sha: 893f768e172fb1bc9c5d6f3dd48557e45f14e01d + after_sha: dedd88641a362b6b4ea872da4847d6131a164d01 + ref: refs/heads/i-see-everything + repository_id: 404 + repository_name: octo-repo + pushed_at: '2023-07-06T08:43:03Z' + result: bypass + evaluation_result: fail + rule_evaluations: + - rule_source: + type: ruleset + id: 2 + name: Author email must be a GitHub email address + enforcement: active + result: pass + rule_type: commit_author_email_pattern + - rule_source: + type: protected_branch + enforcement: active + result: fail + rule_type: pull_request + details: Changes must be made through a pull request. + - rule_source: + type: ruleset + id: 3 + name: Evaluate commit message pattern + enforcement: evaluate + result: fail + rule_type: commit_message_pattern + ruleset-history: + value: + - version_id: 3 + actor: + id: 1 + type: User + updated_at: 2024-010-23T16:29:47Z + - version_id: 2 + actor: + id: 2 + type: User + updated_at: '2024-09-23T16:29:47Z' + - version_id: 1 + actor: + id: 1 + type: User + updated_at: '2024-08-23T16:29:47Z' + org-ruleset-version-with-state: + value: + - version_id: 3 + actor: + id: 1 + type: User + updated_at: 2024-010-23T16:29:47Z + state: + id: 21 + name: super cool ruleset + target: branch + source_type: Organization + source: my-org + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + repository_name: + include: + - important_repository + - another_important_repository + exclude: + - unimportant_repository + protected: true + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + organization-secret-scanning-alert-list: + value: + - number: 2 + created_at: '2020-11-06T18:48:51Z' + url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2 + html_url: https://github.com/owner/private-repo/security/secret-scanning/2 + locations_url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2/locations + state: resolved + resolution: false_positive + resolved_at: '2020-11-07T02:47:13Z' + resolved_by: + login: monalisa + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://alambic.github.com/avatars/u/2? + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + secret_type: adafruit_io_key + secret_type_display_name: Adafruit IO Key + secret: aio_XXXXXXXXXXXXXXXXXXXXXXXXXXXX + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + push_protection_bypassed_by: + login: monalisa + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://alambic.github.com/avatars/u/2? + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + push_protection_bypassed: true + push_protection_bypassed_at: '2020-11-06T21:48:51Z' + push_protection_bypass_request_reviewer: + login: octocat + id: 3 + node_id: MDQ6VXNlcjI= + avatar_url: https://alambic.github.com/avatars/u/3? + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + push_protection_bypass_request_reviewer_comment: Example response + push_protection_bypass_request_comment: Example comment + push_protection_bypass_request_html_url: https://github.com/owner/repo/secret_scanning_exemptions/1 + resolution_comment: Example comment + validity: active + publicly_leaked: false + multi_repo: false + is_base64_encoded: false + first_location_detected: + path: "/example/secrets.txt" + start_line: 1 + end_line: 1 + start_column: 1 + end_column: 64 + blob_sha: af5626b4a114abcb82d63db7c8082c3c4756e51b + blob_url: https://api.github.com/repos/octocat/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b + commit_sha: f14d7debf9775f957cf4f1e8176da0786431f72b + commit_url: https://api.github.com/repos/octocat/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b + has_more_locations: true + assigned_to: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + secret-scanning-pattern-configuration: + value: + pattern_config_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + provider_pattern_overrides: + - token_type: GITHUB_PERSONAL_ACCESS_TOKEN + slug: github_personal_access_token_legacy_v2 + display_name: GitHub Personal Access Token (Legacy v2) + alert_total: 15 + alert_total_percentage: 36 + false_positives: 2 + false_positive_rate: 13 + bypass_rate: 13 + default_setting: enabled + setting: enabled + enterprise_setting: enabled + custom_pattern_overrides: + - token_type: cp_2 + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + slug: custom-api-key + display_name: Custom API Key + alert_total: 15 + alert_total_percentage: 36 + false_positives: 3 + false_positive_rate: 20 + bypass_rate: 20 + default_setting: disabled + setting: enabled + list-repository-advisories: + value: + - ghsa_id: GHSA-abcd-1234-efgh + cve_id: CVE-2050-00000 + url: https://api.github.com/repos/repo/a-package/security-advisories/GHSA-abcd-1234-efgh + html_url: https://github.com/repo/a-package/security/advisories/GHSA-abcd-1234-efgh + summary: A short summary of the advisory. + description: A detailed description of what the advisory entails. + severity: critical + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + publisher: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + identifiers: + - type: GHSA + value: GHSA-abcd-1234-efgh + - type: CVE + value: CVE-2050-00000 + state: published + created_at: '2020-01-01T00:00:00Z' + updated_at: '2020-01-02T00:00:00Z' + published_at: '2020-01-03T00:00:00Z' + closed_at: + withdrawn_at: + submission: + vulnerabilities: + - package: + ecosystem: pip + name: a-package + vulnerable_version_range: ">= 1.0.0, < 1.0.1" + patched_versions: 1.0.1 + vulnerable_functions: + - function1 + - package: + ecosystem: pip + name: another-package + vulnerable_version_range: ">= 1.0.0, < 1.0.2" + patched_versions: 1.0.2 + vulnerable_functions: + - function2 + cvss: + vector_string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H + score: 9.8 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H + score: 9.8 + cvss_v4: + vector_string: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 9.3 + cwes: + - cwe_id: CWE-123 + name: A CWE + cwe_ids: + - CWE-123 + credits: + - login: octocat + type: analyst + credits_detailed: + - user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + type: analyst + state: accepted + collaborating_users: + - login: octokitten + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octokitten_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octokitten + html_url: https://github.com/octokitten + followers_url: https://api.github.com/users/octokitten/followers + following_url: https://api.github.com/users/octokitten/following{/other_user} + gists_url: https://api.github.com/users/octokitten/gists{/gist_id} + starred_url: https://api.github.com/users/octokitten/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octokitten/subscriptions + organizations_url: https://api.github.com/users/octokitten/orgs + repos_url: https://api.github.com/users/octokitten/repos + events_url: https://api.github.com/users/octokitten/events{/privacy} + received_events_url: https://api.github.com/users/octokitten/received_events + type: User + site_admin: false + collaborating_teams: + - name: Justice League + id: 1 + node_id: MDQ6VGVhbTE= + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + permission: admin + parent: + private_fork: + - ghsa_id: GHSA-1234-5678-9012 + cve_id: CVE-2051-0000 + url: https://api.github.com/repos/repo/a-package/security-advisories/GHSA-1234-5678-9012 + html_url: https://github.com/repo/a-package/security/advisories/GHSA-1234-5678-9012 + summary: A short summary of the advisory. + description: A detailed description of what the advisory entails. + severity: low + author: + login: monauser + id: 2 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/monauser + html_url: https://github.com/monauser + followers_url: https://api.github.com/users/monauser/followers + following_url: https://api.github.com/users/monauser/following{/other_user} + gists_url: https://api.github.com/users/monauser/gists{/gist_id} + starred_url: https://api.github.com/users/monauser/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monauser/subscriptions + organizations_url: https://api.github.com/users/monauser/orgs + repos_url: https://api.github.com/users/monauser/repos + events_url: https://api.github.com/users/monauser/events{/privacy} + received_events_url: https://api.github.com/users/monauser/received_events + type: User + site_admin: false + publisher: + login: monalisa + id: 3 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: false + identifiers: + - type: GHSA + value: GHSA-1234-5678-9012 + - type: CVE + value: CVE-2051-00000 + state: published + created_at: '2020-01-03T00:00:00Z' + updated_at: '2020-01-04T00:00:00Z' + published_at: '2020-01-04T00:00:00Z' + closed_at: + withdrawn_at: + submission: + accepted: true + vulnerabilities: + - package: + ecosystem: pip + name: a-package + vulnerable_version_range: ">= 1.0.0, < 1.0.1" + patched_versions: 1.0.1 + vulnerable_functions: + - function1 + - package: + ecosystem: pip + name: another-package + vulnerable_version_range: ">= 1.0.0, < 1.0.2" + patched_versions: 1.0.2 + vulnerable_functions: + - function2 + cvss: + vector_string: AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N + score: 1.6 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N + score: 1.6 + cvss_v4: + vector_string: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 7.1 + cwes: + - cwe_id: CWE-456 + name: A CWE 2.0 + cwe_ids: + - CWE-456 + credits: + - login: monauser + type: reporter + credits_detailed: + - user: + login: monauser + id: 2 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/monauser + html_url: https://github.com/monauser + followers_url: https://api.github.com/users/monauser/followers + following_url: https://api.github.com/users/monauser/following{/other_user} + gists_url: https://api.github.com/users/monauser/gists{/gist_id} + starred_url: https://api.github.com/users/monauser/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monauser/subscriptions + organizations_url: https://api.github.com/users/monauser/orgs + repos_url: https://api.github.com/users/monauser/repos + events_url: https://api.github.com/users/monauser/events{/privacy} + received_events_url: https://api.github.com/users/monauser/received_events + type: User + site_admin: false + type: reporter + state: accepted + collaborating_users: + - login: octokitten + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octokitten_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octokitten + html_url: https://github.com/octokitten + followers_url: https://api.github.com/users/octokitten/followers + following_url: https://api.github.com/users/octokitten/following{/other_user} + gists_url: https://api.github.com/users/octokitten/gists{/gist_id} + starred_url: https://api.github.com/users/octokitten/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octokitten/subscriptions + organizations_url: https://api.github.com/users/octokitten/orgs + repos_url: https://api.github.com/users/octokitten/repos + events_url: https://api.github.com/users/octokitten/events{/privacy} + received_events_url: https://api.github.com/users/octokitten/received_events + type: User + site_admin: false + collaborating_teams: + - name: Justice League + id: 1 + node_id: MDQ6VGVhbTE= + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + permission: admin + parent: + private_fork: + id: 217723378 + node_id: MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg= + name: octo-repo-ghsa-1234-5678-9012 + full_name: octo-org/octo-repo-ghsa-1234-5678-9012 + owner: + login: octo-org + id: 6811672 + node_id: MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI= + avatar_url: https://avatars3.githubusercontent.com/u/6811672?v=4 + gravatar_id: '' + url: https://api.github.com/users/octo-org + html_url: https://github.com/octo-org + followers_url: https://api.github.com/users/octo-org/followers + following_url: https://api.github.com/users/octo-org/following{/other_user} + gists_url: https://api.github.com/users/octo-org/gists{/gist_id} + starred_url: https://api.github.com/users/octo-org/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octo-org/subscriptions + organizations_url: https://api.github.com/users/octo-org/orgs + repos_url: https://api.github.com/users/octo-org/repos + events_url: https://api.github.com/users/octo-org/events{/privacy} + received_events_url: https://api.github.com/users/octo-org/received_events + type: Organization + site_admin: false + private: true + html_url: https://github.com/octo-org/octo-repo-ghsa-1234-5678-9012 + description: + fork: false + url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012 + archive_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/assignees{/user} + blobs_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/blobs{/sha} + branches_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/branches{/branch} + collaborators_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/comments{/number} + commits_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/commits{/sha} + compare_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/compare/{base}...{head} + contents_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/contents/{+path} + contributors_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/contributors + deployments_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/deployments + downloads_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/downloads + events_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/events + forks_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/forks + git_commits_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/tags{/sha} + hooks_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/hooks + issue_comment_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/issues/events{/number} + issues_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/issues{/number} + keys_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/keys{/key_id} + labels_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/labels{/name} + languages_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/languages + merges_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/merges + milestones_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/milestones{/number} + notifications_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/pulls{/number} + releases_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/releases{/id} + stargazers_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/stargazers + statuses_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/statuses/{sha} + subscribers_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/subscribers + subscription_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/subscription + tags_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/tags + teams_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/teams + trees_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/trees{/sha} + network-configurations-paginated: + value: + total_count: 2 + network_configurations: + - id: 123456789ABCDEF + name: My network configuration + compute_service: actions + network_settings_ids: + - 23456789ABDCEF1 + - 3456789ABDCEF12 + created_on: '2022-10-09T23:39:01Z' + - id: 456789ABDCEF123 + name: My other configuration + compute_service: none + network_settings_ids: + - 56789ABDCEF1234 + - 6789ABDCEF12345 + created_on: '2023-04-26T15:23:37Z' + network-configuration: + value: + id: 123456789ABCDEF + name: My network configuration + compute_service: actions + network_settings_ids: + - 23456789ABDCEF1 + - 3456789ABDCEF12 + created_on: '2022-10-09T23:39:01Z' + network-settings: + value: + id: 220F78DACB92BBFBC5E6F22DE1CCF52309D + network_configuration_id: 934E208B3EE0BD60CF5F752C426BFB53562 + name: my_network_settings + subnet_id: "/subscriptions/14839728-3ad9-43ab-bd2b-fa6ad0f75e2a/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet" + region: eastus + team-full: + value: + id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + members_count: 3 + repos_count: 10 + created_at: '2017-07-14T16:53:42Z' + updated_at: '2017-08-17T12:37:15Z' + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + name: github + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + is_verified: true + has_organization_projects: true + has_repository_projects: true + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + html_url: https://github.com/octocat + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + team-membership-response-if-user-is-a-team-maintainer: + summary: Response if user is a team maintainer + value: + url: https://api.github.com/teams/1/memberships/octocat + role: maintainer + state: active + team-membership-response-if-users-membership-with-team-is-now-pending: + summary: Response if user's membership with team is now pending + value: + url: https://api.github.com/teams/1/memberships/octocat + role: member + state: pending + team-repository-alternative-response-with-repository-permissions: + value: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + maintain: false + push: false + triage: false + pull: true + role_name: read + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + team-items-response-if-child-teams-exist: + value: + - id: 2 + node_id: MDQ6VGVhbTI= + url: https://api.github.com/teams/2 + name: Original Roster + slug: original-roster + description: Started it all. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/2/members{/member} + repositories_url: https://api.github.com/teams/2/repos + parent: + id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + html_url: https://github.com/orgs/rails/teams/core + rate-limit-overview: + value: + resources: + core: + limit: 5000 + used: 1 + remaining: 4999 + reset: 1691591363 + search: + limit: 30 + used: 12 + remaining: 18 + reset: 1691591091 + graphql: + limit: 5000 + used: 7 + remaining: 4993 + reset: 1691593228 + integration_manifest: + limit: 5000 + used: 1 + remaining: 4999 + reset: 1691594631 + source_import: + limit: 100 + used: 1 + remaining: 99 + reset: 1691591091 + code_scanning_upload: + limit: 500 + used: 1 + remaining: 499 + reset: 1691594631 + actions_runner_registration: + limit: 10000 + used: 0 + remaining: 10000 + reset: 1691594631 + scim: + limit: 15000 + used: 0 + remaining: 15000 + reset: 1691594631 + dependency_snapshots: + limit: 100 + used: 0 + remaining: 100 + reset: 1691591091 + code_search: + limit: 10 + used: 0 + remaining: 10 + reset: 1691591091 + code_scanning_autofix: + limit: 10 + used: 0 + remaining: 10 + reset: 1691591091 + rate: + limit: 5000 + used: 1 + remaining: 4999 + reset: 1372700873 + full-repository-default-response: + summary: Default response + value: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + forks_count: 9 + forks: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues_count: 0 + open_issues: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + has_discussions: false + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + pull: true + push: false + admin: false + allow_rebase_merge: true + template_repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World-Template + full_name: octocat/Hello-World-Template + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World-Template + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World-Template + archive_url: https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World-Template/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World-Template/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World-Template/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World-Template/downloads + events_url: https://api.github.com/repos/octocat/Hello-World-Template/events + forks_url: https://api.github.com/repos/octocat/Hello-World-Template/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World-Template.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World-Template/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World-Template/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World-Template/languages + merges_url: https://api.github.com/repos/octocat/Hello-World-Template/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World-Template/releases{/id} + ssh_url: git@github.com:octocat/Hello-World-Template.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World-Template/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World-Template/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World-Template/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World-Template/tags + teams_url: https://api.github.com/repos/octocat/Hello-World-Template/teams + trees_url: https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World-Template.git + mirror_url: git:git.example.com/octocat/Hello-World-Template + hooks_url: https://api.github.com/repos/octocat/Hello-World-Template/hooks + svn_url: https://svn.github.com/octocat/Hello-World-Template + homepage: https://github.com + language: + forks: 9 + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues: 0 + open_issues_count: 0 + is_template: true + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + allow_forking: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + spdx_id: MIT + url: https://api.github.com/licenses/mit + node_id: MDc6TGljZW5zZW1pdA== + organization: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: Organization + site_admin: false + parent: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + source: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + security_and_analysis: + advanced_security: + status: enabled + secret_scanning: + status: enabled + secret_scanning_push_protection: + status: disabled + secret_scanning_non_provider_patterns: + status: disabled + artifact-paginated: + value: + total_count: 2 + artifacts: + - id: 11 + node_id: MDg6QXJ0aWZhY3QxMQ== + name: Rails + size_in_bytes: 556 + url: https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11 + archive_download_url: https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip + expired: false + created_at: '2020-01-10T14:59:22Z' + expires_at: '2020-03-21T14:59:22Z' + updated_at: '2020-02-21T14:59:22Z' + digest: sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c + workflow_run: + id: 2332938 + repository_id: 1296269 + head_repository_id: 1296269 + head_branch: main + head_sha: 328faa0536e6fef19753d9d91dc96a9931694ce3 + - id: 13 + node_id: MDg6QXJ0aWZhY3QxMw== + name: Test output + size_in_bytes: 453 + url: https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13 + archive_download_url: https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip + expired: false + created_at: '2020-01-10T14:59:22Z' + expires_at: '2020-03-21T14:59:22Z' + updated_at: '2020-02-21T14:59:22Z' + digest: sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c + workflow_run: + id: 2332942 + repository_id: 1296269 + head_repository_id: 1296269 + head_branch: main + head_sha: 178f4f6090b3fccad4a65b3e83d076a622d59652 + artifact: + value: + id: 11 + node_id: MDg6QXJ0aWZhY3QxMQ== + name: Rails + size_in_bytes: 556 + url: https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11 + archive_download_url: https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip + expired: false + created_at: '2020-01-10T14:59:22Z' + expires_at: '2020-01-21T14:59:22Z' + updated_at: '2020-01-21T14:59:22Z' + digest: sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c + workflow_run: + id: 2332938 + repository_id: 1296269 + head_repository_id: 1296269 + head_branch: main + head_sha: 328faa0536e6fef19753d9d91dc96a9931694ce3 + actions-cache-usage: + value: + full_name: octo-org/Hello-World + active_caches_size_in_bytes: 2322142 + active_caches_count: 3 + actions-cache-list: + value: + total_count: 1 + actions_caches: + - id: 505 + ref: refs/heads/main + key: Linux-node-958aff96db2d75d67787d1e634ae70b659de937b + version: 73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0 + last_accessed_at: '2019-01-24T22:45:36.000Z' + created_at: '2019-01-24T22:45:36.000Z' + size_in_bytes: 1024 + job: + value: + id: 399444496 + run_id: 29679449 + run_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/29679449 + node_id: MDEyOldvcmtmbG93IEpvYjM5OTQ0NDQ5Ng== + head_sha: f83a356604ae3c5d03e1b46ef4d1ca77d64a90b0 + url: https://api.github.com/repos/octo-org/octo-repo/actions/jobs/399444496 + html_url: https://github.com/octo-org/octo-repo/runs/29679449/jobs/399444496 + status: completed + conclusion: success + started_at: '2020-01-20T17:42:40Z' + completed_at: '2020-01-20T17:44:39Z' + name: build + steps: + - name: Set up job + status: completed + conclusion: success + number: 1 + started_at: '2020-01-20T09:42:40.000-08:00' + completed_at: '2020-01-20T09:42:41.000-08:00' + - name: Run actions/checkout@v2 + status: completed + conclusion: success + number: 2 + started_at: '2020-01-20T09:42:41.000-08:00' + completed_at: '2020-01-20T09:42:45.000-08:00' + - name: Set up Ruby + status: completed + conclusion: success + number: 3 + started_at: '2020-01-20T09:42:45.000-08:00' + completed_at: '2020-01-20T09:42:45.000-08:00' + - name: Run actions/cache@v3 + status: completed + conclusion: success + number: 4 + started_at: '2020-01-20T09:42:45.000-08:00' + completed_at: '2020-01-20T09:42:48.000-08:00' + - name: Install Bundler + status: completed + conclusion: success + number: 5 + started_at: '2020-01-20T09:42:48.000-08:00' + completed_at: '2020-01-20T09:42:52.000-08:00' + - name: Install Gems + status: completed + conclusion: success + number: 6 + started_at: '2020-01-20T09:42:52.000-08:00' + completed_at: '2020-01-20T09:42:53.000-08:00' + - name: Run Tests + status: completed + conclusion: success + number: 7 + started_at: '2020-01-20T09:42:53.000-08:00' + completed_at: '2020-01-20T09:42:59.000-08:00' + - name: Deploy to Heroku + status: completed + conclusion: success + number: 8 + started_at: '2020-01-20T09:42:59.000-08:00' + completed_at: '2020-01-20T09:44:39.000-08:00' + - name: Post actions/cache@v3 + status: completed + conclusion: success + number: 16 + started_at: '2020-01-20T09:44:39.000-08:00' + completed_at: '2020-01-20T09:44:39.000-08:00' + - name: Complete job + status: completed + conclusion: success + number: 17 + started_at: '2020-01-20T09:44:39.000-08:00' + completed_at: '2020-01-20T09:44:39.000-08:00' + check_run_url: https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496 + labels: + - self-hosted + - foo + - bar + runner_id: 1 + runner_name: my runner + runner_group_id: 2 + runner_group_name: my runner group + workflow_name: CI + head_branch: main + oidc-custom-sub-repo: + value: + use_default: false + include_claim_keys: + - repo + - context + actions-secret-paginated: + value: + total_count: 2 + secrets: + - name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + - name: GIST_ID + created_at: '2020-01-10T10:59:22Z' + updated_at: '2020-01-11T11:59:22Z' + actions-variables-paginated: + value: + total_count: 2 + variables: + - name: USERNAME + value: octocat + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + - name: EMAIL + value: octocat@github.com + created_at: '2020-01-10T10:59:22Z' + updated_at: '2020-01-11T11:59:22Z' + actions-repository-permissions: + value: + enabled: true + allowed_actions: selected + selected_actions_url: https://api.github.com/repositories/42/actions/permissions/selected-actions + sha_pinning_required: true + actions-workflow-access-to-repository: + value: + access_level: organization + workflow-run-paginated: + value: + total_count: 1 + workflow_runs: + - id: 30433642 + name: Build + node_id: MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ== + check_suite_id: 42 + check_suite_node_id: MDEwOkNoZWNrU3VpdGU0Mg== + head_branch: master + head_sha: acb5820ced9479c074f688cc328bf03f341a511d + path: ".github/workflows/build.yml@main" + run_number: 562 + event: push + display_title: Update README.md + status: queued + conclusion: + workflow_id: 159038 + url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642 + html_url: https://github.com/octo-org/octo-repo/actions/runs/30433642 + pull_requests: [] + created_at: '2020-01-22T19:33:08Z' + updated_at: '2020-01-22T19:33:08Z' + actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + run_attempt: 1 + run_started_at: '2020-01-22T19:33:08Z' + triggering_actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + jobs_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs + logs_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs + check_suite_url: https://api.github.com/repos/octo-org/octo-repo/check-suites/414944374 + artifacts_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/artifacts + cancel_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/cancel + rerun_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/rerun + workflow_url: https://api.github.com/repos/octo-org/octo-repo/actions/workflows/159038 + head_commit: + id: acb5820ced9479c074f688cc328bf03f341a511d + tree_id: d23f6eedb1e1b9610bbc754ddb5197bfe7271223 + message: Create linter.yaml + timestamp: '2020-01-22T19:33:05Z' + author: + name: Octo Cat + email: octocat@github.com + committer: + name: GitHub + email: noreply@github.com + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + head_repository: + id: 217723378 + node_id: MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg= + name: octo-repo + full_name: octo-org/octo-repo + private: true + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + html_url: https://github.com/octo-org/octo-repo + description: + fork: false + url: https://api.github.com/repos/octo-org/octo-repo + forks_url: https://api.github.com/repos/octo-org/octo-repo/forks + keys_url: https://api.github.com/repos/octo-org/octo-repo/keys{/key_id} + collaborators_url: https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator} + teams_url: https://api.github.com/repos/octo-org/octo-repo/teams + hooks_url: https://api.github.com/repos/octo-org/octo-repo/hooks + issue_events_url: https://api.github.com/repos/octo-org/octo-repo/issues/events{/number} + events_url: https://api.github.com/repos/octo-org/octo-repo/events + assignees_url: https://api.github.com/repos/octo-org/octo-repo/assignees{/user} + branches_url: https://api.github.com/repos/octo-org/octo-repo/branches{/branch} + tags_url: https://api.github.com/repos/octo-org/octo-repo/tags + blobs_url: https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha} + git_refs_url: https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha} + trees_url: https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha} + statuses_url: https://api.github.com/repos/octo-org/octo-repo/statuses/{sha} + languages_url: https://api.github.com/repos/octo-org/octo-repo/languages + stargazers_url: https://api.github.com/repos/octo-org/octo-repo/stargazers + contributors_url: https://api.github.com/repos/octo-org/octo-repo/contributors + subscribers_url: https://api.github.com/repos/octo-org/octo-repo/subscribers + subscription_url: https://api.github.com/repos/octo-org/octo-repo/subscription + commits_url: https://api.github.com/repos/octo-org/octo-repo/commits{/sha} + git_commits_url: https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha} + comments_url: https://api.github.com/repos/octo-org/octo-repo/comments{/number} + issue_comment_url: https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number} + contents_url: https://api.github.com/repos/octo-org/octo-repo/contents/{+path} + compare_url: https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head} + merges_url: https://api.github.com/repos/octo-org/octo-repo/merges + archive_url: https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/octo-org/octo-repo/downloads + issues_url: https://api.github.com/repos/octo-org/octo-repo/issues{/number} + pulls_url: https://api.github.com/repos/octo-org/octo-repo/pulls{/number} + milestones_url: https://api.github.com/repos/octo-org/octo-repo/milestones{/number} + notifications_url: https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/octo-org/octo-repo/labels{/name} + releases_url: https://api.github.com/repos/octo-org/octo-repo/releases{/id} + deployments_url: https://api.github.com/repos/octo-org/octo-repo/deployments + workflow-run: + value: + id: 30433642 + name: Build + node_id: MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ== + check_suite_id: 42 + check_suite_node_id: MDEwOkNoZWNrU3VpdGU0Mg== + head_branch: main + head_sha: acb5820ced9479c074f688cc328bf03f341a511d + path: ".github/workflows/build.yml@main" + run_number: 562 + event: push + display_title: Update README.md + status: queued + conclusion: + workflow_id: 159038 + url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642 + html_url: https://github.com/octo-org/octo-repo/actions/runs/30433642 + pull_requests: [] + created_at: '2020-01-22T19:33:08Z' + updated_at: '2020-01-22T19:33:08Z' + actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + run_attempt: 1 + referenced_workflows: + - path: octocat/Hello-World/.github/workflows/deploy.yml@main + sha: 86e8bc9ecf7d38b1ed2d2cfb8eb87ba9b35b01db + ref: refs/heads/main + - path: octo-org/octo-repo/.github/workflows/report.yml@v2 + sha: 79e9790903e1c3373b1a3e3a941d57405478a232 + ref: refs/tags/v2 + - path: octo-org/octo-repo/.github/workflows/secure.yml@1595d4b6de6a9e9751fb270a41019ce507d4099e + sha: 1595d4b6de6a9e9751fb270a41019ce507d4099e + run_started_at: '2020-01-22T19:33:08Z' + triggering_actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + jobs_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs + logs_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs + check_suite_url: https://api.github.com/repos/octo-org/octo-repo/check-suites/414944374 + artifacts_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/artifacts + cancel_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/cancel + rerun_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/rerun + previous_attempt_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/attempts/1 + workflow_url: https://api.github.com/repos/octo-org/octo-repo/actions/workflows/159038 + head_commit: + id: acb5820ced9479c074f688cc328bf03f341a511d + tree_id: d23f6eedb1e1b9610bbc754ddb5197bfe7271223 + message: Create linter.yaml + timestamp: '2020-01-22T19:33:05Z' + author: + name: Octo Cat + email: octocat@github.com + committer: + name: GitHub + email: noreply@github.com + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + head_repository: + id: 217723378 + node_id: MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg= + name: octo-repo + full_name: octo-org/octo-repo + private: true + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + html_url: https://github.com/octo-org/octo-repo + description: + fork: false + url: https://api.github.com/repos/octo-org/octo-repo + forks_url: https://api.github.com/repos/octo-org/octo-repo/forks + keys_url: https://api.github.com/repos/octo-org/octo-repo/keys{/key_id} + collaborators_url: https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator} + teams_url: https://api.github.com/repos/octo-org/octo-repo/teams + hooks_url: https://api.github.com/repos/octo-org/octo-repo/hooks + issue_events_url: https://api.github.com/repos/octo-org/octo-repo/issues/events{/number} + events_url: https://api.github.com/repos/octo-org/octo-repo/events + assignees_url: https://api.github.com/repos/octo-org/octo-repo/assignees{/user} + branches_url: https://api.github.com/repos/octo-org/octo-repo/branches{/branch} + tags_url: https://api.github.com/repos/octo-org/octo-repo/tags + blobs_url: https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha} + git_refs_url: https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha} + trees_url: https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha} + statuses_url: https://api.github.com/repos/octo-org/octo-repo/statuses/{sha} + languages_url: https://api.github.com/repos/octo-org/octo-repo/languages + stargazers_url: https://api.github.com/repos/octo-org/octo-repo/stargazers + contributors_url: https://api.github.com/repos/octo-org/octo-repo/contributors + subscribers_url: https://api.github.com/repos/octo-org/octo-repo/subscribers + subscription_url: https://api.github.com/repos/octo-org/octo-repo/subscription + commits_url: https://api.github.com/repos/octo-org/octo-repo/commits{/sha} + git_commits_url: https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha} + comments_url: https://api.github.com/repos/octo-org/octo-repo/comments{/number} + issue_comment_url: https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number} + contents_url: https://api.github.com/repos/octo-org/octo-repo/contents/{+path} + compare_url: https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head} + merges_url: https://api.github.com/repos/octo-org/octo-repo/merges + archive_url: https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/octo-org/octo-repo/downloads + issues_url: https://api.github.com/repos/octo-org/octo-repo/issues{/number} + pulls_url: https://api.github.com/repos/octo-org/octo-repo/pulls{/number} + milestones_url: https://api.github.com/repos/octo-org/octo-repo/milestones{/number} + notifications_url: https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/octo-org/octo-repo/labels{/name} + releases_url: https://api.github.com/repos/octo-org/octo-repo/releases{/id} + deployments_url: https://api.github.com/repos/octo-org/octo-repo/deployments + environment-approvals-items: + value: + - state: approved + comment: Ship it! + environments: + - id: 161088068 + node_id: MDExOkVudmlyb25tZW50MTYxMDg4MDY4 + name: staging + url: https://api.github.com/repos/github/hello-world/environments/staging + html_url: https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging + created_at: '2020-11-23T22:00:40Z' + updated_at: '2020-11-23T22:00:40Z' + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + job-paginated: + value: + total_count: 1 + jobs: + - id: 399444496 + run_id: 29679449 + run_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/29679449 + node_id: MDEyOldvcmtmbG93IEpvYjM5OTQ0NDQ5Ng== + head_sha: f83a356604ae3c5d03e1b46ef4d1ca77d64a90b0 + url: https://api.github.com/repos/octo-org/octo-repo/actions/jobs/399444496 + html_url: https://github.com/octo-org/octo-repo/runs/29679449/jobs/399444496 + status: completed + conclusion: success + started_at: '2020-01-20T17:42:40Z' + completed_at: '2020-01-20T17:44:39Z' + name: build + steps: + - name: Set up job + status: completed + conclusion: success + number: 1 + started_at: '2020-01-20T09:42:40.000-08:00' + completed_at: '2020-01-20T09:42:41.000-08:00' + - name: Run actions/checkout@v2 + status: completed + conclusion: success + number: 2 + started_at: '2020-01-20T09:42:41.000-08:00' + completed_at: '2020-01-20T09:42:45.000-08:00' + - name: Set up Ruby + status: completed + conclusion: success + number: 3 + started_at: '2020-01-20T09:42:45.000-08:00' + completed_at: '2020-01-20T09:42:45.000-08:00' + - name: Run actions/cache@v3 + status: completed + conclusion: success + number: 4 + started_at: '2020-01-20T09:42:45.000-08:00' + completed_at: '2020-01-20T09:42:48.000-08:00' + - name: Install Bundler + status: completed + conclusion: success + number: 5 + started_at: '2020-01-20T09:42:48.000-08:00' + completed_at: '2020-01-20T09:42:52.000-08:00' + - name: Install Gems + status: completed + conclusion: success + number: 6 + started_at: '2020-01-20T09:42:52.000-08:00' + completed_at: '2020-01-20T09:42:53.000-08:00' + - name: Run Tests + status: completed + conclusion: success + number: 7 + started_at: '2020-01-20T09:42:53.000-08:00' + completed_at: '2020-01-20T09:42:59.000-08:00' + - name: Deploy to Heroku + status: completed + conclusion: success + number: 8 + started_at: '2020-01-20T09:42:59.000-08:00' + completed_at: '2020-01-20T09:44:39.000-08:00' + - name: Post actions/cache@v3 + status: completed + conclusion: success + number: 16 + started_at: '2020-01-20T09:44:39.000-08:00' + completed_at: '2020-01-20T09:44:39.000-08:00' + - name: Complete job + status: completed + conclusion: success + number: 17 + started_at: '2020-01-20T09:44:39.000-08:00' + completed_at: '2020-01-20T09:44:39.000-08:00' + check_run_url: https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496 + labels: + - self-hosted + - foo + - bar + runner_id: 1 + runner_name: my runner + runner_group_id: 2 + runner_group_name: my runner group + workflow_name: CI + head_branch: main + pending-deployment-items: + value: + - environment: + id: 161088068 + node_id: MDExOkVudmlyb25tZW50MTYxMDg4MDY4 + name: staging + url: https://api.github.com/repos/github/hello-world/environments/staging + html_url: https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging + wait_timer: 30 + wait_timer_started_at: '2020-11-23T22:00:40Z' + current_user_can_approve: true + reviewers: + - type: User + reviewer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - type: Team + reviewer: + id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + deployment-items: + value: + - url: https://api.github.com/repos/octocat/example/deployments/1 + id: 1 + node_id: MDEwOkRlcGxveW1lbnQx + sha: a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + ref: topic-branch + task: deploy + payload: {} + original_environment: staging + environment: production + description: Deploy request from hubot + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + statuses_url: https://api.github.com/repos/octocat/example/deployments/1/statuses + repository_url: https://api.github.com/repos/octocat/example + transient_environment: false + production_environment: true + workflow-run-usage: + value: + billable: + UBUNTU: + total_ms: 180000 + jobs: 1 + job_runs: + - job_id: 1 + duration_ms: 180000 + MACOS: + total_ms: 240000 + jobs: 4 + job_runs: + - job_id: 2 + duration_ms: 60000 + - job_id: 3 + duration_ms: 60000 + - job_id: 4 + duration_ms: 60000 + - job_id: 5 + duration_ms: 60000 + WINDOWS: + total_ms: 300000 + jobs: 2 + job_runs: + - job_id: 6 + duration_ms: 150000 + - job_id: 7 + duration_ms: 150000 + run_duration_ms: 500000 + actions-secret: + value: + name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + actions-variable: + value: + name: USERNAME + value: octocat + created_at: '2021-08-10T14:59:22Z' + updated_at: '2022-01-10T14:59:22Z' + workflow-paginated: + value: + total_count: 2 + workflows: + - id: 161335 + node_id: MDg6V29ya2Zsb3cxNjEzMzU= + name: CI + path: ".github/workflows/blank.yaml" + state: active + created_at: '2020-01-08T23:48:37.000-08:00' + updated_at: '2020-01-08T23:50:21.000-08:00' + url: https://api.github.com/repos/octo-org/octo-repo/actions/workflows/161335 + html_url: https://github.com/octo-org/octo-repo/blob/master/.github/workflows/161335 + badge_url: https://github.com/octo-org/octo-repo/workflows/CI/badge.svg + - id: 269289 + node_id: MDE4OldvcmtmbG93IFNlY29uZGFyeTI2OTI4OQ== + name: Linter + path: ".github/workflows/linter.yaml" + state: active + created_at: '2020-01-08T23:48:37.000-08:00' + updated_at: '2020-01-08T23:50:21.000-08:00' + url: https://api.github.com/repos/octo-org/octo-repo/actions/workflows/269289 + html_url: https://github.com/octo-org/octo-repo/blob/master/.github/workflows/269289 + badge_url: https://github.com/octo-org/octo-repo/workflows/Linter/badge.svg + workflow: + value: + id: 161335 + node_id: MDg6V29ya2Zsb3cxNjEzMzU= + name: CI + path: ".github/workflows/blank.yaml" + state: active + created_at: '2020-01-08T23:48:37.000-08:00' + updated_at: '2020-01-08T23:50:21.000-08:00' + url: https://api.github.com/repos/octo-org/octo-repo/actions/workflows/161335 + html_url: https://github.com/octo-org/octo-repo/blob/master/.github/workflows/161335 + badge_url: https://github.com/octo-org/octo-repo/workflows/CI/badge.svg + workflow-dispatch-response: + value: + workflow_run_id: 1 + run_url: https://api.github.com/repos/octo-org/octo-repo/actions/runs/1 + html_url: https://github.com/octo-org/octo-repo/actions/runs/1 + workflow-usage: + value: + billable: + UBUNTU: + total_ms: 180000 + MACOS: + total_ms: 240000 + WINDOWS: + total_ms: 300000 + activity-items: + value: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + before: 6dcb09b5b57875f334f61aebed695e2e4193db5e + after: 827efc6d56897b048c772eb4087f854f46256132 + ref: refs/heads/main + pushed_at: '2011-01-26T19:06:43Z' + push_type: normal + pusher: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + attestation: + value: + bundle: + mediaType: application/vnd.dev.sigstore.bundle.v0.3+json + verificationMaterial: + tlogEntries: + - logIndex: '97913980' + logId: + keyId: wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0= + kindVersion: + kind: dsse + version: 0.0.1 + integratedTime: '1716998992' + inclusionPromise: + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + inclusionProof: + logIndex: '93750549' + rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= + treeSize: '93750551' + hashes: + - 8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg= + - nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck= + - hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A= + - MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM= + - XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc= + - Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY= + - wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU= + - uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s= + - jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs= + - xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ= + - cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc= + - sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ= + - 98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8= + checkpoint: + envelope: rekor.sigstore.dev - 2605736670972794746\n93750551\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\n\n— + rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\n + canonicalizedBody: eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0= + timestampVerificationData: {} + certificate: + rawBytes: MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw== + dsseEnvelope: + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 + payloadType: application/vnd.in-toto+json + signatures: + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + autolink-items: + value: + - id: 1 + key_prefix: TICKET- + url_template: https://example.com/TICKET?query= + is_alphanumeric: true + autolink: + value: + id: 1 + key_prefix: TICKET- + url_template: https://example.com/TICKET?query= + is_alphanumeric: true + short-branch-with-protection-items: + value: + - name: master + commit: + sha: c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc + url: https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc + protected: true + protection: + required_status_checks: + enforcement_level: non_admins + contexts: + - ci-test + - linter + protection_url: https://api.github.com/repos/octocat/hello-world/branches/master/protection + branch-get: + value: + name: main + commit: + sha: 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + node_id: MDY6Q29tbWl0MTI5NjI2OTo3ZmQxYTYwYjAxZjkxYjMxNGY1OTk1NWE0ZTRkNGU4MGQ4ZWRmMTFk + commit: + author: + name: The Octocat + email: octocat@nowhere.com + date: '2012-03-06T23:06:50Z' + committer: + name: The Octocat + email: octocat@nowhere.com + date: '2012-03-06T23:06:50Z' + message: |- + Merge pull request #6 from Spaceghost/patch-1 + + New line at end of file. + tree: + sha: b4eecafa9be2f2006ce1b709d6857b07069b4608 + url: https://api.github.com/repos/octocat/Hello-World/git/trees/b4eecafa9be2f2006ce1b709d6857b07069b4608 + url: https://api.github.com/repos/octocat/Hello-World/git/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + comment_count: 77 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + url: https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + html_url: https://github.com/octocat/Hello-World/commit/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d/comments + author: + login: octocat + id: 583231 + node_id: MDQ6VXNlcjU4MzIzMQ== + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + committer: + login: octocat + id: 583231 + node_id: MDQ6VXNlcjU4MzIzMQ== + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + parents: + - sha: 553c2077f0edc3d5dc5d17262f6aa498e69d6f8e + url: https://api.github.com/repos/octocat/Hello-World/commits/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e + html_url: https://github.com/octocat/Hello-World/commit/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e + - sha: 762941318ee16e59dabbacb1b4049eec22f0d303 + url: https://api.github.com/repos/octocat/Hello-World/commits/762941318ee16e59dabbacb1b4049eec22f0d303 + html_url: https://github.com/octocat/Hello-World/commit/762941318ee16e59dabbacb1b4049eec22f0d303 + _links: + self: https://api.github.com/repos/octocat/Hello-World/branches/main + html: https://github.com/octocat/Hello-World/tree/main + protected: false + protection: + enabled: false + required_status_checks: + enforcement_level: 'off' + contexts: [] + checks: [] + protection_url: https://api.github.com/repos/octocat/Hello-World/branches/main/protection + branch-protection: + value: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection + required_status_checks: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks + contexts: + - continuous-integration/travis-ci + contexts_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts + enforcement_level: non_admins + enforce_admins: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins + enabled: true + required_pull_request_reviews: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_pull_request_reviews + dismissal_restrictions: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions + users_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/users + teams_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/teams + users: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + apps: + - id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + dismiss_stale_reviews: true + require_code_owner_reviews: true + required_approving_review_count: 2 + require_last_push_approval: true + restrictions: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions + users_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users + teams_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams + apps_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/apps + users: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + apps: + - id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + required_linear_history: + enabled: true + allow_force_pushes: + enabled: true + allow_deletions: + enabled: true + required_conversation_resolution: + enabled: true + lock_branch: + enabled: true + allow_fork_syncing: + enabled: true + branch-protection-update: + value: + url: https://api.github.com/repos/octocat/hello-world/branches/main/protection + required_status_checks: + url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_status_checks + strict: true + contexts: + - continuous-integration/travis-ci + contexts_url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_status_checks/contexts + checks: + - context: continuous-integration/travis-ci + app_id: + restrictions: + url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions + users_url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/users + teams_url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/teams + apps_url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/apps + users: [] + teams: [] + apps: [] + required_pull_request_reviews: + url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_pull_request_reviews + dismiss_stale_reviews: true + require_code_owner_reviews: true + required_approving_review_count: 2 + require_last_push_approval: true + dismissal_restrictions: + url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions + users_url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions/users + teams_url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions/teams + users: [] + teams: [] + apps: [] + required_signatures: + url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_signatures + enabled: false + enforce_admins: + url: https://api.github.com/repos/octocat/hello-world/branches/main/protection/enforce_admins + enabled: true + required_linear_history: + enabled: true + allow_force_pushes: + enabled: true + allow_deletions: + enabled: true + block_creations: + enabled: true + required_conversation_resolution: + enabled: true + lock_branch: + enabled: true + allow_fork_syncing: + enabled: true + protected-branch-admin-enforced-2: + value: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins + enabled: true + protected-branch-pull-request-review: + value: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_pull_request_reviews + dismissal_restrictions: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions + users_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/users + teams_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/teams + users: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + apps: + - id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + dismiss_stale_reviews: true + require_code_owner_reviews: true + required_approving_review_count: 2 + require_last_push_approval: true + protected-branch-admin-enforced: + value: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + enabled: true + status-check-policy: + value: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks + strict: true + contexts: + - continuous-integration/travis-ci + contexts_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts + branch-restriction-policy: + value: + url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions + users_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users + teams_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams + apps_url: https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/apps + users: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + apps: + - id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + integration-items: + value: + - id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + branch-with-protection: + value: + name: master + commit: + sha: 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + node_id: MDY6Q29tbWl0N2ZkMWE2MGIwMWY5MWIzMTRmNTk5NTVhNGU0ZDRlODBkOGVkZjExZA== + commit: + author: + name: The Octocat + date: '2012-03-06T15:06:50-08:00' + email: octocat@nowhere.com + url: https://api.github.com/repos/octocat/Hello-World/git/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + message: |- + Merge pull request #6 from Spaceghost/patch-1 + + New line at end of file. + tree: + sha: b4eecafa9be2f2006ce1b709d6857b07069b4608 + url: https://api.github.com/repos/octocat/Hello-World/git/trees/b4eecafa9be2f2006ce1b709d6857b07069b4608 + committer: + name: The Octocat + date: '2012-03-06T15:06:50-08:00' + email: octocat@nowhere.com + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + comment_count: 0 + author: + gravatar_id: '' + avatar_url: https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png + url: https://api.github.com/users/octocat + id: 583231 + login: octocat + node_id: MDQ6VXNlcjE= + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + parents: + - sha: 553c2077f0edc3d5dc5d17262f6aa498e69d6f8e + url: https://api.github.com/repos/octocat/Hello-World/commits/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e + - sha: 762941318ee16e59dabbacb1b4049eec22f0d303 + url: https://api.github.com/repos/octocat/Hello-World/commits/762941318ee16e59dabbacb1b4049eec22f0d303 + url: https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + committer: + gravatar_id: '' + avatar_url: https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png + url: https://api.github.com/users/octocat + id: 583231 + login: octocat + node_id: MDQ6VXNlcjE= + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + _links: + html: https://github.com/octocat/Hello-World/tree/master + self: https://api.github.com/repos/octocat/Hello-World/branches/master + protected: true + protection: + required_status_checks: + enforcement_level: non_admins + contexts: + - ci-test + - linter + protection_url: https://api.github.com/repos/octocat/hello-world/branches/master/protection + check-run-example-of-completed-conclusion: + summary: Response for completed conclusion + value: + id: 4 + head_sha: ce587453ced02b1526dfb4cb910479d431683101 + node_id: MDg6Q2hlY2tSdW40 + external_id: '42' + url: https://api.github.com/repos/github/hello-world/check-runs/4 + html_url: https://github.com/github/hello-world/runs/4 + details_url: https://example.com + status: completed + conclusion: neutral + started_at: '2018-05-04T01:14:52Z' + completed_at: '2018-05-04T01:14:52Z' + output: + title: Mighty Readme report + summary: There are 0 failures, 2 warnings, and 1 notice. + text: You may have some misspelled words on lines 2 and 4. You also may + want to add a section in your README about how to install your app. + annotations_count: 2 + annotations_url: https://api.github.com/repos/github/hello-world/check-runs/4/annotations + name: mighty_readme + check_suite: + id: 5 + app: + id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + pull_requests: + - url: https://api.github.com/repos/github/hello-world/pulls/1 + id: 1934 + number: 3956 + head: + ref: say-hello + sha: 3dca65fa3e8d4b3da3f3d056c59aee1c50f41390 + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + base: + ref: master + sha: e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + check-run-example-of-in-progress-conclusion: + summary: Response for in_progress conclusion + value: + id: 4 + head_sha: ce587453ced02b1526dfb4cb910479d431683101 + node_id: MDg6Q2hlY2tSdW40 + external_id: '42' + url: https://api.github.com/repos/github/hello-world/check-runs/4 + html_url: https://github.com/github/hello-world/runs/4 + details_url: https://example.com + status: in_progress + conclusion: + started_at: '2018-05-04T01:14:52Z' + completed_at: + output: + title: Mighty Readme report + summary: There are 0 failures, 2 warnings, and 1 notice. + text: You may have some misspelled words on lines 2 and 4. You also may + want to add a section in your README about how to install your app. + annotations_count: 2 + annotations_url: https://api.github.com/repos/github/hello-world/check-runs/4/annotations + name: mighty_readme + check_suite: + id: 5 + app: + id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + pull_requests: + - url: https://api.github.com/repos/github/hello-world/pulls/1 + id: 1934 + number: 3956 + head: + ref: say-hello + sha: 3dca65fa3e8d4b3da3f3d056c59aee1c50f41390 + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + base: + ref: master + sha: e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + check-run: + value: + id: 4 + head_sha: ce587453ced02b1526dfb4cb910479d431683101 + node_id: MDg6Q2hlY2tSdW40 + external_id: '' + url: https://api.github.com/repos/github/hello-world/check-runs/4 + html_url: https://github.com/github/hello-world/runs/4 + details_url: https://example.com + status: completed + conclusion: neutral + started_at: '2018-05-04T01:14:52Z' + completed_at: '2018-05-04T01:14:52Z' + output: + title: Mighty Readme report + summary: There are 0 failures, 2 warnings, and 1 notice. + text: You may have some misspelled words on lines 2 and 4. You also may + want to add a section in your README about how to install your app. + annotations_count: 2 + annotations_url: https://api.github.com/repos/github/hello-world/check-runs/4/annotations + name: mighty_readme + check_suite: + id: 5 + app: + id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + pull_requests: + - url: https://api.github.com/repos/github/hello-world/pulls/1 + id: 1934 + number: 3956 + head: + ref: say-hello + sha: 3dca65fa3e8d4b3da3f3d056c59aee1c50f41390 + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + base: + ref: master + sha: e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + check-annotation-items: + value: + - path: README.md + start_line: 2 + end_line: 2 + start_column: 5 + end_column: 10 + annotation_level: warning + title: Spell Checker + message: Check your spelling for 'banaas'. + raw_details: Do you mean 'bananas' or 'banana'? + blob_href: https://api.github.com/repos/github/rest-api-description/git/blobs/abc + check-suite: + value: + id: 5 + node_id: MDEwOkNoZWNrU3VpdGU1 + head_branch: master + head_sha: d6fde92930d4715a2b49857d24b940956b26d2d3 + status: completed + conclusion: neutral + url: https://api.github.com/repos/github/hello-world/check-suites/5 + before: 146e867f55c26428e5f9fade55a9bbf5e95a7912 + after: d6fde92930d4715a2b49857d24b940956b26d2d3 + pull_requests: [] + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + app: + id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + template_repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World-Template + full_name: octocat/Hello-World-Template + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World-Template + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World-Template + archive_url: https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World-Template/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World-Template/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World-Template/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World-Template/downloads + events_url: https://api.github.com/repos/octocat/Hello-World-Template/events + forks_url: https://api.github.com/repos/octocat/Hello-World-Template/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World-Template.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World-Template/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World-Template/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World-Template/languages + merges_url: https://api.github.com/repos/octocat/Hello-World-Template/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World-Template/releases{/id} + ssh_url: git@github.com:octocat/Hello-World-Template.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World-Template/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World-Template/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World-Template/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World-Template/tags + teams_url: https://api.github.com/repos/octocat/Hello-World-Template/teams + trees_url: https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World-Template.git + mirror_url: git:git.example.com/octocat/Hello-World-Template + hooks_url: https://api.github.com/repos/octocat/Hello-World-Template/hooks + svn_url: https://svn.github.com/octocat/Hello-World-Template + homepage: https://github.com + language: + forks: 9 + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues: 0 + open_issues_count: 0 + is_template: true + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + delete_branch_on_merge: true + subscribers_count: 42 + network_count: 0 + head_commit: + id: 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + tree_id: 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + message: |- + Merge pull request #6 from Spaceghost/patch-1 + + New line at end of file. + timestamp: '2016-10-10T00:00:00Z' + author: + name: The Octocat + email: octocat@nowhere.com + committer: + name: The Octocat + email: octocat@nowhere.com + latest_check_runs_count: 1 + check_runs_url: https://api.github.com/repos/octocat/Hello-World/check-suites/5/check-runs + check-suite-preference: + value: + preferences: + auto_trigger_checks: + - app_id: 2 + setting: true + - app_id: 4 + setting: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + template_repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World-Template + full_name: octocat/Hello-World-Template + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World-Template + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World-Template + archive_url: https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World-Template/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World-Template/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World-Template/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World-Template/downloads + events_url: https://api.github.com/repos/octocat/Hello-World-Template/events + forks_url: https://api.github.com/repos/octocat/Hello-World-Template/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World-Template.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World-Template/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World-Template/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World-Template/languages + merges_url: https://api.github.com/repos/octocat/Hello-World-Template/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World-Template/releases{/id} + ssh_url: git@github.com:octocat/Hello-World-Template.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World-Template/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World-Template/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World-Template/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World-Template/tags + teams_url: https://api.github.com/repos/octocat/Hello-World-Template/teams + trees_url: https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World-Template.git + mirror_url: git:git.example.com/octocat/Hello-World-Template + hooks_url: https://api.github.com/repos/octocat/Hello-World-Template/hooks + svn_url: https://svn.github.com/octocat/Hello-World-Template + homepage: https://github.com + language: + forks: 9 + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues: 0 + open_issues_count: 0 + is_template: true + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + check-run-paginated: + value: + total_count: 1 + check_runs: + - id: 4 + head_sha: ce587453ced02b1526dfb4cb910479d431683101 + node_id: MDg6Q2hlY2tSdW40 + external_id: '' + url: https://api.github.com/repos/github/hello-world/check-runs/4 + html_url: https://github.com/github/hello-world/runs/4 + details_url: https://example.com + status: completed + conclusion: neutral + started_at: '2018-05-04T01:14:52Z' + completed_at: '2018-05-04T01:14:52Z' + output: + title: Mighty Readme report + summary: There are 0 failures, 2 warnings, and 1 notice. + text: You may have some misspelled words on lines 2 and 4. You also may + want to add a section in your README about how to install your app. + annotations_count: 2 + annotations_url: https://api.github.com/repos/github/hello-world/check-runs/4/annotations + name: mighty_readme + check_suite: + id: 5 + app: + id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + pull_requests: + - url: https://api.github.com/repos/github/hello-world/pulls/1 + id: 1934 + number: 3956 + head: + ref: say-hello + sha: 3dca65fa3e8d4b3da3f3d056c59aee1c50f41390 + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + base: + ref: master + sha: e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f + repo: + id: 526 + url: https://api.github.com/repos/github/hello-world + name: hello-world + code-scanning-alert-items: + value: + - number: 4 + created_at: '2020-02-13T12:29:18Z' + url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/4 + html_url: https://github.com/octocat/hello-world/code-scanning/4 + state: open + fixed_at: + dismissed_by: + dismissed_at: + dismissed_reason: + dismissed_comment: + rule: + id: js/zipslip + severity: error + tags: + - security + - external/cwe/cwe-022 + description: Arbitrary file write during zip extraction + name: js/zipslip + tool: + name: CodeQL + guid: + version: 2.4.0 + most_recent_instance: + ref: refs/heads/main + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: "{}" + state: open + commit_sha: 39406e42cb832f683daa691dd652a8dc36ee8930 + message: + text: This path depends on a user-provided value. + location: + path: spec-main/api-session-spec.ts + start_line: 917 + end_line: 917 + start_column: 7 + end_column: 18 + classifications: + - test + instances_url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/4/instances + - number: 3 + created_at: '2020-02-13T12:29:18Z' + url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3 + html_url: https://github.com/octocat/hello-world/code-scanning/3 + state: dismissed + fixed_at: + dismissed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + dismissed_at: '2020-02-14T12:29:18Z' + dismissed_reason: false positive + dismissed_comment: This alert is not actually correct, because there's a sanitizer + included in the library. + rule: + id: js/zipslip + severity: error + tags: + - security + - external/cwe/cwe-022 + description: Arbitrary file write during zip extraction + name: js/zipslip + tool: + name: CodeQL + guid: + version: 2.4.0 + most_recent_instance: + ref: refs/heads/main + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: "{}" + state: open + commit_sha: 39406e42cb832f683daa691dd652a8dc36ee8930 + message: + text: This path depends on a user-provided value. + location: + path: lib/ab12-gen.js + start_line: 917 + end_line: 917 + start_column: 7 + end_column: 18 + classifications: [] + instances_url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3/instances + code-scanning-alert: + value: + number: 42 + created_at: '2020-06-19T11:21:34Z' + url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42 + html_url: https://github.com/octocat/hello-world/code-scanning/42 + state: dismissed + fixed_at: + dismissed_by: + login: octocat + id: 54933897 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + dismissed_at: '2020-02-14T12:29:18Z' + dismissed_reason: false positive + dismissed_comment: This alert is not actually correct, because there's a sanitizer + included in the library. + rule: + id: js/zipslip + severity: error + security_severity_level: high + description: Arbitrary file write during zip extraction ("Zip Slip") + name: js/zipslip + full_description: Extracting files from a malicious zip archive without + validating that the destination file path is within the destination directory + can cause files outside the destination directory to be overwritten. + tags: + - security + - external/cwe/cwe-022 + help: '# Arbitrary file write during zip extraction ("Zip Slip")\nExtracting + files from a malicious zip archive without validating that the destination + file path is within the destination directory can cause files outside + the destination directory to be overwritten ...' + help_uri: https://codeql.github.com/ + tool: + name: CodeQL + guid: + version: 2.4.0 + most_recent_instance: + ref: refs/heads/main + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: "{}" + state: dismissed + commit_sha: 39406e42cb832f683daa691dd652a8dc36ee8930 + message: + text: This path depends on a user-provided value. + location: + path: spec-main/api-session-spec.ts + start_line: 917 + end_line: 917 + start_column: 7 + end_column: 18 + classifications: + - test + instances_url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42/instances + code-scanning-alert-dismissed: + value: + number: 42 + created_at: '2020-08-25T21:28:36Z' + url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42 + html_url: https://github.com/octocat/hello-world/code-scanning/42 + state: dismissed + fixed_at: + dismissed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + dismissed_at: '2020-09-02T22:34:56Z' + dismissed_reason: false positive + dismissed_comment: This alert is not actually correct, because there's a sanitizer + included in the library. + rule: + id: js/zipslip + severity: error + security_severity_level: high + description: Arbitrary file write during zip extraction ("Zip Slip") + name: js/zipslip + full_description: Extracting files from a malicious zip archive without + validating that the destination file path is within the destination directory + can cause files outside the destination directory to be overwritten. + tags: + - security + - external/cwe/cwe-022 + help: '# Arbitrary file write during zip extraction ("Zip Slip")\nExtracting + files from a malicious zip archive without validating that the destination + file path is within the destination directory can cause files outside + the destination directory to be overwritten ...' + help_uri: https://codeql.github.com/ + tool: + name: CodeQL + guid: + version: 2.4.0 + most_recent_instance: + ref: refs/heads/main + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: "{}" + state: dismissed + commit_sha: 39406e42cb832f683daa691dd652a8dc36ee8930 + message: + text: This path depends on a user-provided value. + location: + path: spec-main/api-session-spec.ts + start_line: 917 + end_line: 917 + start_column: 7 + end_column: 18 + classifications: + - test + instances_url: https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42/instances + code-scanning-autofix: + value: + status: success + description: This fixes an XSS vulnerability by escaping the user input. + started_at: '2024-02-14T12:29:18Z' + code-scanning-bad-request: + value: + message: The alert_number is not valid + documentation_url: https://docs.github.com/rest/code-scanning/code-scanning#get-the-status-of-an-autofix-for-a-code-scanning-alert + status: '400' + code-scanning-autofix-pending: + value: + status: pending + description: + started_at: '2024-02-14T12:29:18Z' + code-scanning-autofix-commits: + value: + target_ref: refs/heads/fix-bug + message: "Let's fix this \U0001FAB2!" + code-scanning-autofix-commits-response: + value: + target_ref: refs/heads/main + sha: 178f4f6090b3fccad4a65b3e83d076a622d59652 + code-scanning-alert-instances: + value: + - ref: refs/heads/main + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: '' + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + state: open + fixed_at: + commit_sha: 39406e42cb832f683daa691dd652a8dc36ee8930 + message: + text: This path depends on a user-provided value. + location: + path: lib/ab12-gen.js + start_line: 917 + end_line: 917 + start_column: 7 + end_column: 18 + classifications: + - library + - ref: refs/pull/3740/merge + analysis_key: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + environment: '' + category: ".github/workflows/codeql-analysis.yml:CodeQL-Build" + state: fixed + fixed_at: '2020-02-14T12:29:18Z' + commit_sha: b09da05606e27f463a2b49287684b4ae777092f2 + message: + text: This suffix check is missing a length comparison to correctly handle + lastIndexOf returning -1. + location: + path: app/script.js + start_line: 2 + end_line: 2 + start_column: 10 + end_column: 50 + classifications: + - source + code-scanning-analysis-items: + value: + - ref: refs/heads/main + commit_sha: d99612c3e1f2970085cfbaeadf8f010ef69bad83 + analysis_key: ".github/workflows/codeql-analysis.yml:analyze" + environment: '{"language":"python"}' + error: '' + category: ".github/workflows/codeql-analysis.yml:analyze/language:python" + created_at: '2020-08-27T15:05:21Z' + results_count: 17 + rules_count: 49 + id: 201 + url: https://api.github.com/repos/octocat/hello-world/code-scanning/analyses/201 + sarif_id: 6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53 + tool: + name: CodeQL + guid: + version: 2.4.0 + deletable: true + warning: '' + - ref: refs/heads/my-branch + commit_sha: c8cff6510d4d084fb1b4aa13b64b97ca12b07321 + analysis_key: ".github/workflows/shiftleft.yml:build" + environment: "{}" + error: '' + category: ".github/workflows/shiftleft.yml:build/" + created_at: '2020-08-31T22:46:44Z' + results_count: 17 + rules_count: 32 + id: 200 + url: https://api.github.com/repos/octocat/hello-world/code-scanning/analyses/200 + sarif_id: 8981cd8e-b078-4ac3-a3be-1dad7dbd0b582 + tool: + name: Python Security Analysis + guid: + version: 1.2.0 + deletable: true + warning: '' + code-scanning-analysis-default: + summary: application/json response + value: + ref: refs/heads/main + commit_sha: c18c69115654ff0166991962832dc2bd7756e655 + analysis_key: ".github/workflows/codeql-analysis.yml:analyze" + environment: '{"language":"javascript"}' + error: '' + category: ".github/workflows/codeql-analysis.yml:analyze/language:javascript" + created_at: '2021-01-13T11:55:49Z' + results_count: 3 + rules_count: 67 + id: 3602840 + url: https://api.github.com/repos/octocat/hello-world/code-scanning/analyses/201 + sarif_id: 47177e22-5596-11eb-80a1-c1e54ef945c6 + tool: + name: CodeQL + guid: + version: 2.4.0 + deletable: true + warning: '' + code-scanning-analysis-sarif: + summary: application/sarif+json response + value: + runs: + - tool: + driver: + name: CodeQL + organization: GitHub + semanticVersion: 1.0.0 + rules: + - id: js/unused-local-variable + name: js/unused-local-variable + results: + - guid: 326aa09f-9af8-13cf-9851-3d0e5183ec38 + message: + text: Unused variable foo. + locations: + - physicalLocation: + artifactLocation: + uri: file1.js + region: + startLine: 1 + ruleId: js/unused-local-variable + properties: + - github/alertNumber: 2 + - github/alertUrl: https://api.github.com/repos/monalisa/monalisa/code-scanning/alerts/2 + code-scanning-analysis-deletion: + summary: Default response + value: + next_analysis_url: https://api.github.com/repos/octocat/hello-world/code-scanning/analyses/41 + confirm_delete_url: https://api.github.com/repos/octocat/hello-world/code-scanning/analyses/41?confirm_delete + code-scanning-codeql-databases: + value: + - id: 1 + name: database.zip + language: java + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + content_type: application/zip + size: 1024 + created_at: '2022-09-12T12:14:32Z' + updated_at: '2022-09-12T12:14:32Z' + url: https://api.github.com/repos/octocat/Hello-World/code-scanning/codeql/databases/java + commit_oid: 1927de39fefa25a9d0e64e3f540ff824a72f538c + - id: 2 + name: database.zip + language: ruby + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + content_type: application/zip + size: 1024 + created_at: '2022-09-12T12:14:32Z' + updated_at: '2022-09-12T12:14:32Z' + url: https://api.github.com/repos/octocat/Hello-World/code-scanning/codeql/databases/ruby + commit_oid: 1927de39fefa25a9d0e64e3f540ff824a72f538c + code-scanning-codeql-database: + value: + id: 1 + name: database.zip + language: java + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + content_type: application/zip + size: 1024 + created_at: '2022-09-12T12:14:32Z' + updated_at: '2022-09-12T12:14:32Z' + url: https://api.github.com/repos/octocat/Hello-World/code-scanning/codeql/databases/java + commit_oid: 1927de39fefa25a9d0e64e3f540ff824a72f538c + code-scanning-variant-analysis: + summary: Default response + value: + id: 1 + controller_repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + query_language: python + query_pack_url: https://www.example.com + created_at: '2022-09-12T12:14:32Z' + updated_at: '2022-09-12T12:14:32Z' + completed_at: '2022-09-12T13:15:33Z' + status: succeeded + actions_workflow_run_id: 3453588 + scanned_repositories: + - repository: + id: 1296269 + name: Hello-World + full_name: octocat/Hello-World + private: false + analysis_status: succeeded + result_count: 532 + artifact_size_in_bytes: 12345 + skipped_repositories: + access_mismatch_repos: + repository_count: 2 + repositories: + - id: 1 + name: octo-repo1 + full_name: octo-org/octo-repo1 + private: false + - id: 2 + name: octo-repo2 + full_name: octo-org/octo-repo2 + private: false + not_found_repos: + repository_count: 3 + repository_full_names: + - octo-org/octo-repo4 + - octo-org/octo-repo5 + - octo-org/octo-repo6 + no_codeql_db_repos: + repository_count: 2 + repositories: + - id: 7 + name: octo-repo7 + full_name: octo-org/octo-repo7 + private: false + - id: 8 + name: octo-repo8 + full_name: octo-org/octo-repo8 + private: false + over_limit_repos: + repository_count: 2 + repositories: + - id: 9 + name: octo-repo9 + full_name: octo-org/octo-repo9 + private: false + - id: 10 + name: octo-repo10 + full_name: octo-org/octo-repo10 + private: false + code-scanning-variant-analysis-repo-task: + summary: Default response + value: + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + analysis_status: succeeded + artifact_size_in_bytes: 12345 + result_count: 532 + database_commit_sha: 2d870c2a717a524627af38fa2da382188a096f90 + source_location_prefix: "/" + artifact_url: https://example.com + code-scanning-default-setup: + value: + state: configured + languages: + - ruby + - python + query_suite: default + threat_model: remote + updated_at: '2023-01-19T11:21:34Z' + schedule: weekly + code-scanning-default-setup-update: + value: + state: configured + threat_model: remote_and_local + code-scanning-default-setup-update-response: + value: + run_id: 42 + run_url: https://api.github.com/repos/octoorg/octocat/actions/runs/42 + code-scanning-sarif-upload: + summary: Default response + value: + id: 47177e22-5596-11eb-80a1-c1e54ef945c6 + url: https://api.github.com/repos/octocat/hello-world/code-scanning/sarifs/47177e22-5596-11eb-80a1-c1e54ef945c6 + code-scanning-sarif-upload-status: + summary: Default response + value: + processing_status: complete + analyses_url: https://api.github.com/repos/octocat/hello-world/code-scanning/analyses?sarif_id=47177e22-5596-11eb-80a1-c1e54ef945c6 + code-security-configuration-for-repository: + value: + status: attached + configuration: + id: 1325 + target_type: organization + name: octo-org recommended settings + description: This is a code security configuration for octo-org + advanced_security: enabled + dependency_graph: enabled + dependency_graph_autosubmit_action: enabled + dependency_graph_autosubmit_action_options: + labeled_runners: false + dependabot_alerts: enabled + dependabot_security_updates: not_set + code_scanning_default_setup: disabled + code_scanning_delegated_alert_dismissal: disabled + secret_scanning: enabled + secret_scanning_push_protection: disabled + secret_scanning_delegated_bypass: disabled + secret_scanning_validity_checks: disabled + secret_scanning_non_provider_patterns: disabled + secret_scanning_generic_secrets: disabled + secret_scanning_delegated_alert_dismissal: disabled + private_vulnerability_reporting: disabled + enforcement: enforced + url: https://api.github.com/orgs/octo-org/code-security/configurations/1325 + html_url: https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325 + created_at: '2024-05-01T00:00:00Z' + updated_at: '2024-05-01T00:00:00Z' + codeowners-errors: + value: + errors: + - line: 3 + column: 1 + kind: Invalid pattern + source: "***/*.rb @monalisa" + suggestion: Did you mean `**/*.rb`? + message: |- + Invalid pattern on line 3: Did you mean `**/*.rb`? + + ***/*.rb @monalisa + ^ + path: ".github/CODEOWNERS" + - line: 7 + column: 7 + kind: Invalid owner + source: "*.txt docs@" + suggestion: + message: |- + Invalid owner on line 7: + + *.txt docs@ + ^ + path: ".github/CODEOWNERS" + codespaces-list-for-repository: + value: + total_count: 2 + codespaces: + - id: 1 + name: monalisa-octocat-hello-world-g4wpq6h95q + environment_id: 26a7c758-7299-4a73-b978-5a92a7ae98a0 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + machine: + name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + prebuild: false + devcontainer_path: ".devcontainer/devcontainer.json" + created_at: '2021-10-14T00:53:30-06:00' + updated_at: '2021-10-14T00:53:32-06:00' + last_used_at: '2021-10-14T00:53:30-06:00' + state: Available + url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q + git_status: + ahead: 0 + behind: 0 + has_unpushed_changes: false + has_uncommitted_changes: false + ref: main + location: WestUs2 + idle_timeout_minutes: 60 + web_url: https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev + machines_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines + start_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start + stop_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop + recent_folders: [] + - id: 2 + name: monalisa-octocat-hello-world-3f89ada1j3 + environment_id: 526ce4d7-46da-494f-a4f9-cfd25b818719 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + machine: + name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + prebuild: false + devcontainer_path: ".devcontainer/devcontainer.json" + created_at: '2021-10-14T00:53:30-06:00' + updated_at: '2021-10-14T00:53:32-06:00' + last_used_at: '2021-10-14T00:53:30-06:00' + state: Available + url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3 + git_status: + ahead: 0 + behind: 0 + has_unpushed_changes: false + has_uncommitted_changes: false + ref: main + location: WestUs2 + idle_timeout_minutes: 60 + web_url: https://monalisa-octocat-hello-world-3f89ada1j3.github.dev + machines_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines + start_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start + stop_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop + recent_folders: [] + codespaces-list-devcontainers-for-repository: + value: + devcontainers: + - path: ".devcontainer/foobar/devcontainer.json" + name: foobar + display_name: foobar + - path: ".devcontainer/devcontainer.json" + name: kitchensink + display_name: kitchensink + - path: ".devcontainer.json" + display_name: Default project configuration + total_count: 3 + codespace-machines-list: + value: + total_count: 2 + machines: + - name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + - name: premiumLinux + display_name: 8 cores, 32 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 34359738368 + cpus: 8 + codespaces-default-attributes-for-a-codespace: + value: + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + defaults: + location: EastUs + devcontainer_path: ".devcontainer/devcontainer.json" + codespaces-permissions-check-for-devcontainer: + value: + accepted: true + collaborator-items: + value: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + permissions: + pull: true + triage: true + push: true + maintain: false + admin: false + role_name: write + repository-invitation-response-when-a-new-invitation-is-created: + value: + id: 1 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + invitee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + inviter: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + permissions: write + created_at: '2016-06-13T14:52:50-05:00' + url: https://api.github.com/user/repository_invitations/1296269 + html_url: https://github.com/octocat/Hello-World/invitations + repository-collaborator-permission-response-if-user-has-admin-permissions: + value: + permission: admin + role_name: admin + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + commit-comment-items: + value: + - html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e#commitcomment-1 + url: https://api.github.com/repos/octocat/Hello-World/comments/1 + id: 1 + node_id: MDEzOkNvbW1pdENvbW1lbnQx + body: Great stuff + path: file1.txt + position: 4 + line: 14 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + author_association: COLLABORATOR + commit-comment: + value: + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e#commitcomment-1 + url: https://api.github.com/repos/octocat/Hello-World/comments/1 + id: 1 + node_id: MDEzOkNvbW1pdENvbW1lbnQx + body: Great stuff + path: file1.txt + position: 4 + line: 14 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + author_association: COLLABORATOR + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + commit-comment-2: + value: + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e#commitcomment-1 + url: https://api.github.com/repos/octocat/Hello-World/comments/1 + id: 1 + node_id: MDEzOkNvbW1pdENvbW1lbnQx + body: Nice change + path: file1.txt + position: 4 + line: 14 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + author_association: COLLABORATOR + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + reaction-items: + value: + - id: 1 + node_id: MDg6UmVhY3Rpb24x + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + content: heart + created_at: '2016-05-20T20:09:31Z' + reaction: + value: + id: 1 + node_id: MDg6UmVhY3Rpb24x + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + content: heart + created_at: '2016-05-20T20:09:31Z' + commit-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + node_id: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + commit: + url: https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + author: + name: Monalisa Octocat + email: support@github.com + date: '2011-04-14T16:00:49Z' + committer: + name: Monalisa Octocat + email: support@github.com + date: '2011-04-14T16:00:49Z' + message: Fix all the bugs + tree: + url: https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + comment_count: 0 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + committer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + parents: + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + branch-short-items: + value: + - name: branch_5 + commit: + sha: c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc + url: https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc + protected: false + pull-request-simple-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + id: 1 + node_id: MDExOlB1bGxSZXF1ZXN0MQ== + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + commits_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + review_comments_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment_url: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + number: 1347 + state: open + locked: true + title: Amazing new feature + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Please pull these awesome changes in! + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + active_lock_reason: too heated + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:01:12Z' + closed_at: '2011-01-26T19:01:12Z' + merged_at: '2011-01-26T19:01:12Z' + merge_commit_sha: e5bd3914e2e596debea16f433f57875b5b90bcd6 + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - login: hubot + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/hubot_happy.gif + gravatar_id: '' + url: https://api.github.com/users/hubot + html_url: https://github.com/hubot + followers_url: https://api.github.com/users/hubot/followers + following_url: https://api.github.com/users/hubot/following{/other_user} + gists_url: https://api.github.com/users/hubot/gists{/gist_id} + starred_url: https://api.github.com/users/hubot/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/hubot/subscriptions + organizations_url: https://api.github.com/users/hubot/orgs + repos_url: https://api.github.com/users/hubot/repos + events_url: https://api.github.com/users/hubot/events{/privacy} + received_events_url: https://api.github.com/users/hubot/received_events + type: User + site_admin: true + requested_reviewers: + - login: other_user + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/other_user_happy.gif + gravatar_id: '' + url: https://api.github.com/users/other_user + html_url: https://github.com/other_user + followers_url: https://api.github.com/users/other_user/followers + following_url: https://api.github.com/users/other_user/following{/other_user} + gists_url: https://api.github.com/users/other_user/gists{/gist_id} + starred_url: https://api.github.com/users/other_user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/other_user/subscriptions + organizations_url: https://api.github.com/users/other_user/orgs + repos_url: https://api.github.com/users/other_user/repos + events_url: https://api.github.com/users/other_user/events{/privacy} + received_events_url: https://api.github.com/users/other_user/received_events + type: User + site_admin: false + requested_teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + permission: admin + notification_setting: notifications_enabled + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + head: + label: octocat:new-topic + ref: new-topic + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + base: + label: octocat:master + ref: master + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html: + href: https://github.com/octocat/Hello-World/pull/1347 + issue: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347 + comments: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + review_comments: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + commits: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + statuses: + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + author_association: OWNER + auto_merge: + draft: false + commit: + value: + url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + node_id: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + commit: + url: https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + author: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + committer: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + message: Fix all the bugs + tree: + url: https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + comment_count: 0 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + committer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + parents: + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + stats: + additions: 104 + deletions: 4 + total: 108 + files: + - filename: file1.txt + additions: 10 + deletions: 2 + changes: 12 + status: modified + raw_url: https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt + blob_url: https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt + patch: |- + @@ -29,7 +29,7 @@ + ..... + check-suite-paginated: + value: + total_count: 1 + check_suites: + - id: 5 + node_id: MDEwOkNoZWNrU3VpdGU1 + head_branch: master + head_sha: d6fde92930d4715a2b49857d24b940956b26d2d3 + status: completed + conclusion: neutral + url: https://api.github.com/repos/github/hello-world/check-suites/5 + before: 146e867f55c26428e5f9fade55a9bbf5e95a7912 + after: d6fde92930d4715a2b49857d24b940956b26d2d3 + pull_requests: [] + app: + id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + single_file: write + events: + - push + - pull_request + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + delete_branch_on_merge: true + subscribers_count: 42 + network_count: 0 + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + head_commit: + id: 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + tree_id: 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d + message: |- + Merge pull request #6 from Spaceghost/patch-1 + + New line at end of file. + timestamp: '2016-10-10T00:00:00Z' + author: + name: The Octocat + email: octocat@nowhere.com + committer: + name: The Octocat + email: octocat@nowhere.com + latest_check_runs_count: 1 + check_runs_url: https://api.github.com/repos/octocat/Hello-World/check-suites/5/check-runs + combined-commit-status: + value: + state: success + statuses: + - url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + avatar_url: https://github.com/images/error/hubot_happy.gif + id: 1 + node_id: MDY6U3RhdHVzMQ== + state: success + description: Build has completed successfully + target_url: https://ci.example.com/1000/output + context: continuous-integration/jenkins + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + - url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + avatar_url: https://github.com/images/error/other_user_happy.gif + id: 2 + node_id: MDY6U3RhdHVzMg== + state: success + description: Testing has completed successfully + target_url: https://ci.example.com/2000/output + context: security/brakeman + created_at: '2012-08-20T01:19:13Z' + updated_at: '2012-08-20T01:19:13Z' + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + total_count: 2 + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + commit_url: https://api.github.com/repos/octocat/Hello-World/6dcb09b5b57875f334f61aebed695e2e4193db5e + url: https://api.github.com/repos/octocat/Hello-World/6dcb09b5b57875f334f61aebed695e2e4193db5e/status + status-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + avatar_url: https://github.com/images/error/hubot_happy.gif + id: 1 + node_id: MDY6U3RhdHVzMQ== + state: success + description: Build has completed successfully + target_url: https://ci.example.com/1000/output + context: continuous-integration/jenkins + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + community-profile: + value: + health_percentage: 100 + description: My first repository on GitHub! + documentation: + files: + code_of_conduct: + name: Contributor Covenant + key: contributor_covenant + url: https://api.github.com/codes_of_conduct/contributor_covenant + html_url: https://github.com/octocat/Hello-World/blob/master/CODE_OF_CONDUCT.md + code_of_conduct_file: + url: https://api.github.com/repos/octocat/Hello-World/contents/CODE_OF_CONDUCT.md + html_url: https://github.com/octocat/Hello-World/blob/master/CODE_OF_CONDUCT.md + contributing: + url: https://api.github.com/repos/octocat/Hello-World/contents/CONTRIBUTING + html_url: https://github.com/octocat/Hello-World/blob/master/CONTRIBUTING + issue_template: + url: https://api.github.com/repos/octocat/Hello-World/contents/ISSUE_TEMPLATE + html_url: https://github.com/octocat/Hello-World/blob/master/ISSUE_TEMPLATE + pull_request_template: + url: https://api.github.com/repos/octocat/Hello-World/contents/PULL_REQUEST_TEMPLATE + html_url: https://github.com/octocat/Hello-World/blob/master/PULL_REQUEST_TEMPLATE + license: + name: MIT License + key: mit + spdx_id: MIT + url: https://api.github.com/licenses/mit + html_url: https://github.com/octocat/Hello-World/blob/master/LICENSE + node_id: MDc6TGljZW5zZW1pdA== + readme: + url: https://api.github.com/repos/octocat/Hello-World/contents/README.md + html_url: https://github.com/octocat/Hello-World/blob/master/README.md + updated_at: '2017-02-28T19:09:29Z' + content_reports_enabled: true + commit-comparison: + value: + url: https://api.github.com/repos/octocat/Hello-World/compare/master...topic + html_url: https://github.com/octocat/Hello-World/compare/master...topic + permalink_url: https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17 + diff_url: https://github.com/octocat/Hello-World/compare/master...topic.diff + patch_url: https://github.com/octocat/Hello-World/compare/master...topic.patch + base_commit: + url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + node_id: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + commit: + url: https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + author: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + committer: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + message: Fix all the bugs + tree: + url: https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + comment_count: 0 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + committer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + parents: + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + merge_base_commit: + url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + node_id: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + commit: + url: https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + author: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + committer: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + message: Fix all the bugs + tree: + url: https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + comment_count: 0 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + committer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + parents: + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + status: behind + ahead_by: 1 + behind_by: 2 + total_commits: 1 + commits: + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + node_id: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + commit: + url: https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + author: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + committer: + name: Monalisa Octocat + email: mona@github.com + date: '2011-04-14T16:00:49Z' + message: Fix all the bugs + tree: + url: https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + comment_count: 0 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + committer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + parents: + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + files: + - sha: bbcd538c8e72b8c175046e27cc8f907076331401 + filename: file1.txt + status: added + additions: 103 + deletions: 21 + changes: 124 + blob_url: https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + raw_url: https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + patch: "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + content-file-response-if-content-is-a-file: + summary: Response if content is a file + value: + type: file + encoding: base64 + size: 5362 + name: README.md + path: README.md + content: IyBZb2dhIEJvmsgaW4gcHJvZ3Jlc3MhIEZlZWwgdAoKOndhcm5pbmc6IFdvc\nZnJlZSBmUgdG8gY0byBjaGVjayBvdXQgdGhlIGFwcCwgYnV0IGJlIHN1c29t\nZSBiYWNrIG9uY2UgaXQgaXMgY29tcGxldGUuCgpBIHdlYiBhcHAgdGhhdCBs\nZWFkcyB5b3UgdGhyb3VnaCBhIHlvZ2Egc2Vzc2lvbi4KCltXb3Jrb3V0IG5v\ndyFdKGh0dHBzOi8vc2tlZHdhcmRzODguZ2l0aHViLmlvL3lvZ2EvKQoKPGlt\nZyBzcmM9InNyYy9pbWFnZXMvbWFza2FibGVfaWNvbl81MTIucG5nIiBhbHQ9\nImJvdCBsaWZ0aW5nIHdlaWdodHMiIHdpZHRoPSIxMDAiLz4KCkRvIHlvdSBo\nYXZlIGZlZWRiYWNrIG9yIGlkZWFzIGZvciBpbXByb3ZlbWVudD8gW09wZW4g\nYW4gaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9za2Vkd2FyZHM4OC95b2dh\nL2lzc3Vlcy9uZXcpLgoKV2FudCBtb3JlIGdhbWVzPyBWaXNpdCBbQ25TIEdh\nbWVzXShodHRwczovL3NrZWR3YXJkczg4LmdpdGh1Yi5pby9wb3J0Zm9saW8v\nKS4KCiMjIERldmVsb3BtZW50CgpUbyBhZGQgYSBuZXcgcG9zZSwgYWRkIGFu\nIGVudHJ5IHRvIHRoZSByZWxldmFudCBmaWxlIGluIGBzcmMvYXNhbmFzYC4K\nClRvIGJ1aWxkLCBydW4gYG5wbSBydW4gYnVpbGRgLgoKVG8gcnVuIGxvY2Fs\nbHkgd2l0aCBsaXZlIHJlbG9hZGluZyBhbmQgbm8gc2VydmljZSB3b3JrZXIs\nIHJ1biBgbnBtIHJ1biBkZXZgLiAoSWYgYSBzZXJ2aWNlIHdvcmtlciB3YXMg\ncHJldmlvdXNseSByZWdpc3RlcmVkLCB5b3UgY2FuIHVucmVnaXN0ZXIgaXQg\naW4gY2hyb21lIGRldmVsb3BlciB0b29sczogYEFwcGxpY2F0aW9uYCA+IGBT\nZXJ2aWNlIHdvcmtlcnNgID4gYFVucmVnaXN0ZXJgLikKClRvIHJ1biBsb2Nh\nbGx5IGFuZCByZWdpc3RlciB0aGUgc2VydmljZSB3b3JrZXIsIHJ1biBgbnBt\nIHN0YXJ0YC4KClRvIGRlcGxveSwgcHVzaCB0byBgbWFpbmAgb3IgbWFudWFs\nbHkgdHJpZ2dlciB0aGUgYC5naXRodWIvd29ya2Zsb3dzL2RlcGxveS55bWxg\nIHdvcmtmbG93Lgo=\n + sha: 3d21ec53a331a6f037a91c368710b99387d012c1 + url: https://api.github.com/repos/octokit/octokit.rb/contents/README.md + git_url: https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1 + html_url: https://github.com/octokit/octokit.rb/blob/master/README.md + download_url: https://raw.githubusercontent.com/octokit/octokit.rb/master/README.md + _links: + git: https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1 + self: https://api.github.com/repos/octokit/octokit.rb/contents/README.md + html: https://github.com/octokit/octokit.rb/blob/master/README.md + content-file-response-if-content-is-a-directory-object: + summary: Response if content is a directory and the application/vnd.github.v3.object + media type is requested + value: + type: dir + size: 0 + name: src + path: src + sha: 2962be1c94eaae9794b3080790ec9d74b2fa8358 + url: https://api.github.com/repos/octocat/octorepo/contents/src?ref=main + git_url: https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + html_url: https://github.com/octocat/octorepo/blob/main/src + download_url: https://raw.githubusercontent.com/octocat/octorepo/main/src + _links: + self: https://api.github.com/repos/octocat/octorepo/contents/src + git: https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + html: https://github.com/octocat/octorepo/blob/main/src + entries: + - type: file + size: 625 + name: app.js + path: src/app.js + sha: fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + url: https://api.github.com/repos/octocat/octorepo/contents/src/app.js + git_url: https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + html_url: https://github.com/octocat/octorepo/blob/main/src/app.js + download_url: https://raw.githubusercontent.com/octocat/octorepo/main/src/app.js + _links: + self: https://api.github.com/repos/octocat/octorepo/contents/src/app.js + git: https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + html: https://github.com/octocat/octorepo/blob/main/src/app.js + - type: dir + size: 0 + name: images + path: src/images + sha: a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + url: https://api.github.com/repos/octocat/octorepo/contents/src/images + git_url: https://api.github.com/repos/octocat/octorepo/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + html_url: https://github.com/octocat/octorepo/tree/main/src/images + download_url: + _links: + self: https://api.github.com/repos/octocat/octorepo/contents/src/images + git: https://api.github.com/repos/octocat/octorepo/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + html: https://github.com/octocat/octorepo/tree/main/src/images + content-file-response-if-content-is-a-directory: + summary: Response if content is a directory and the application/json media type + is requested + value: + - type: file + size: 625 + name: octokit.rb + path: lib/octokit.rb + sha: fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + url: https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit.rb + git_url: https://api.github.com/repos/octokit/octokit.rb/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + html_url: https://github.com/octokit/octokit.rb/blob/master/lib/octokit.rb + download_url: https://raw.githubusercontent.com/octokit/octokit.rb/master/lib/octokit.rb + _links: + self: https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit.rb + git: https://api.github.com/repos/octokit/octokit.rb/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b + html: https://github.com/octokit/octokit.rb/blob/master/lib/octokit.rb + - type: dir + size: 0 + name: octokit + path: lib/octokit + sha: a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + url: https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit + git_url: https://api.github.com/repos/octokit/octokit.rb/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + html_url: https://github.com/octokit/octokit.rb/tree/master/lib/octokit + download_url: + _links: + self: https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit + git: https://api.github.com/repos/octokit/octokit.rb/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + html: https://github.com/octokit/octokit.rb/tree/master/lib/octokit + content-file-response-if-content-is-a-symlink: + summary: Response if content is a symlink and the application/json media type + is requested + value: + type: symlink + target: "/path/to/symlink/target" + size: 23 + name: some-symlink + path: bin/some-symlink + sha: 452a98979c88e093d682cab404a3ec82babebb48 + url: https://api.github.com/repos/octokit/octokit.rb/contents/bin/some-symlink + git_url: https://api.github.com/repos/octokit/octokit.rb/git/blobs/452a98979c88e093d682cab404a3ec82babebb48 + html_url: https://github.com/octokit/octokit.rb/blob/master/bin/some-symlink + download_url: https://raw.githubusercontent.com/octokit/octokit.rb/master/bin/some-symlink + _links: + git: https://api.github.com/repos/octokit/octokit.rb/git/blobs/452a98979c88e093d682cab404a3ec82babebb48 + self: https://api.github.com/repos/octokit/octokit.rb/contents/bin/some-symlink + html: https://github.com/octokit/octokit.rb/blob/master/bin/some-symlink + content-file-response-if-content-is-a-submodule: + summary: Response if content is a submodule and the application/json media type + is requested + value: + type: submodule + submodule_git_url: git://github.com/jquery/qunit.git + size: 0 + name: qunit + path: test/qunit + sha: 6ca3721222109997540bd6d9ccd396902e0ad2f9 + url: https://api.github.com/repos/jquery/jquery/contents/test/qunit?ref=master + git_url: https://api.github.com/repos/jquery/qunit/git/trees/6ca3721222109997540bd6d9ccd396902e0ad2f9 + html_url: https://github.com/jquery/qunit/tree/6ca3721222109997540bd6d9ccd396902e0ad2f9 + download_url: + _links: + git: https://api.github.com/repos/jquery/qunit/git/trees/6ca3721222109997540bd6d9ccd396902e0ad2f9 + self: https://api.github.com/repos/jquery/jquery/contents/test/qunit?ref=master + html: https://github.com/jquery/qunit/tree/6ca3721222109997540bd6d9ccd396902e0ad2f9 + file-commit-example-for-updating-a-file: + value: + content: + name: hello.txt + path: notes/hello.txt + sha: a56507ed892d05a37c6d6128c260937ea4d287bd + size: 9 + url: https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt + html_url: https://github.com/octocat/Hello-World/blob/master/notes/hello.txt + git_url: https://api.github.com/repos/octocat/Hello-World/git/blobs/a56507ed892d05a37c6d6128c260937ea4d287bd + download_url: https://raw.githubusercontent.com/octocat/HelloWorld/master/notes/hello.txt + type: file + _links: + self: https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt + git: https://api.github.com/repos/octocat/Hello-World/git/blobs/a56507ed892d05a37c6d6128c260937ea4d287bd + html: https://github.com/octocat/Hello-World/blob/master/notes/hello.txt + commit: + sha: 18a43cd8e1e3a79c786e3d808a73d23b6d212b16 + node_id: MDY6Q29tbWl0MThhNDNjZDhlMWUzYTc5Yzc4NmUzZDgwOGE3M2QyM2I2ZDIxMmIxNg== + url: https://api.github.com/repos/octocat/Hello-World/git/commits/18a43cd8e1e3a79c786e3d808a73d23b6d212b16 + html_url: https://github.com/octocat/Hello-World/git/commit/18a43cd8e1e3a79c786e3d808a73d23b6d212b16 + author: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + committer: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + message: my commit message + tree: + url: https://api.github.com/repos/octocat/Hello-World/git/trees/9a21f8e2018f42ffcf369b24d2cd20bc25c9e66f + sha: 9a21f8e2018f42ffcf369b24d2cd20bc25c9e66f + parents: + - url: https://api.github.com/repos/octocat/Hello-World/git/commits/da5a433788da5c255edad7979b328b67d79f53f6 + html_url: https://github.com/octocat/Hello-World/git/commit/da5a433788da5c255edad7979b328b67d79f53f6 + sha: da5a433788da5c255edad7979b328b67d79f53f6 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + file-commit-example-for-creating-a-file: + value: + content: + name: hello.txt + path: notes/hello.txt + sha: 95b966ae1c166bd92f8ae7d1c313e738c731dfc3 + size: 9 + url: https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt + html_url: https://github.com/octocat/Hello-World/blob/master/notes/hello.txt + git_url: https://api.github.com/repos/octocat/Hello-World/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3 + download_url: https://raw.githubusercontent.com/octocat/HelloWorld/master/notes/hello.txt + type: file + _links: + self: https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt + git: https://api.github.com/repos/octocat/Hello-World/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3 + html: https://github.com/octocat/Hello-World/blob/master/notes/hello.txt + commit: + sha: 7638417db6d59f3c431d3e1f261cc637155684cd + node_id: MDY6Q29tbWl0NzYzODQxN2RiNmQ1OWYzYzQzMWQzZTFmMjYxY2M2MzcxNTU2ODRjZA== + url: https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd + html_url: https://github.com/octocat/Hello-World/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd + author: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + committer: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + message: my commit message + tree: + url: https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb + sha: 691272480426f78a0138979dd3ce63b77f706feb + parents: + - url: https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5 + html_url: https://github.com/octocat/Hello-World/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5 + sha: 1acc419d4d6a9ce985db7be48c6349a0475975b5 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + file-commit: + value: + content: + commit: + sha: 7638417db6d59f3c431d3e1f261cc637155684cd + node_id: MDY6Q29tbWl0NzYzODQxN2RiNmQ1OWYzYzQzMWQzZTFmMjYxY2M2MzcxNTU2ODRjZA== + url: https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd + html_url: https://github.com/octocat/Hello-World/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd + author: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + committer: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + message: my commit message + tree: + url: https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb + sha: 691272480426f78a0138979dd3ce63b77f706feb + parents: + - url: https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5 + html_url: https://github.com/octocat/Hello-World/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5 + sha: 1acc419d4d6a9ce985db7be48c6349a0475975b5 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + contributor-items-response-if-repository-contains-content: + value: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + contributions: 32 + dependabot-alerts-for-repository: + value: + - number: 2 + state: dismissed + dependency: + package: + ecosystem: pip + name: django + manifest_path: path/to/requirements.txt + scope: runtime + security_advisory: + ghsa_id: GHSA-rf4j-j272-fj86 + cve_id: CVE-2018-6188 + summary: Django allows remote attackers to obtain potentially sensitive + information by leveraging data exposure from the confirm_login_allowed() + method, as demonstrated by discovering whether a user account is inactive + description: django.contrib.auth.forms.AuthenticationForm in Django 2.0 + before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain + potentially sensitive information by leveraging data exposure from the + confirm_login_allowed() method, as demonstrated by discovering whether + a user account is inactive. + vulnerabilities: + - package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 2.0.0, < 2.0.2" + first_patched_version: + identifier: 2.0.2 + - package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 1.11.8, < 1.11.10" + first_patched_version: + identifier: 1.11.10 + severity: high + cvss: + vector_string: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N + score: 7.5 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N + score: 7.5 + cvss_v4: + vector_string: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N + score: 8.7 + epss: + - percentage: 0.00045 + percentile: 0.16001e0 + cwes: + - cwe_id: CWE-200 + name: Exposure of Sensitive Information to an Unauthorized Actor + identifiers: + - type: GHSA + value: GHSA-rf4j-j272-fj86 + - type: CVE + value: CVE-2018-6188 + references: + - url: https://nvd.nist.gov/vuln/detail/CVE-2018-6188 + - url: https://github.com/advisories/GHSA-rf4j-j272-fj86 + - url: https://usn.ubuntu.com/3559-1/ + - url: https://www.djangoproject.com/weblog/2018/feb/01/security-releases/ + - url: http://www.securitytracker.com/id/1040422 + published_at: '2018-10-03T21:13:54Z' + updated_at: '2022-04-26T18:35:37Z' + withdrawn_at: + security_vulnerability: + package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 2.0.0, < 2.0.2" + first_patched_version: + identifier: 2.0.2 + url: https://api.github.com/repos/octocat/hello-world/dependabot/alerts/2 + html_url: https://github.com/octocat/hello-world/security/dependabot/2 + created_at: '2022-06-15T07:43:03Z' + updated_at: '2022-08-23T14:29:47Z' + dismissed_at: '2022-08-23T14:29:47Z' + dismissed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + dismissed_reason: tolerable_risk + dismissed_comment: This alert is accurate but we use a sanitizer. + fixed_at: + - number: 1 + state: open + dependency: + package: + ecosystem: pip + name: ansible + manifest_path: path/to/requirements.txt + scope: runtime + security_advisory: + ghsa_id: GHSA-8f4m-hccc-8qph + cve_id: CVE-2021-20191 + summary: Insertion of Sensitive Information into Log File in ansible + description: A flaw was found in ansible. Credentials, such as secrets, + are being disclosed in console log by default and not protected by no_log + feature when using those modules. An attacker can take advantage of this + information to steal those credentials. The highest threat from this vulnerability + is to data confidentiality. + vulnerabilities: + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: ">= 2.9.0, < 2.9.18" + first_patched_version: + identifier: 2.9.18 + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: "< 2.8.19" + first_patched_version: + identifier: 2.8.19 + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: ">= 2.10.0, < 2.10.7" + first_patched_version: + identifier: 2.10.7 + severity: medium + cvss: + vector_string: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N + score: 5.5 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N + score: 5.5 + cvss_v4: + vector_string: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 8.5 + cwes: + - cwe_id: CWE-532 + name: Insertion of Sensitive Information into Log File + identifiers: + - type: GHSA + value: GHSA-8f4m-hccc-8qph + - type: CVE + value: CVE-2021-20191 + references: + - url: https://nvd.nist.gov/vuln/detail/CVE-2021-20191 + - url: https://access.redhat.com/security/cve/cve-2021-20191 + - url: https://bugzilla.redhat.com/show_bug.cgi?id=1916813 + published_at: '2021-06-01T17:38:00Z' + updated_at: '2021-08-12T23:06:00Z' + withdrawn_at: + security_vulnerability: + package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: "< 2.8.19" + first_patched_version: + identifier: 2.8.19 + url: https://api.github.com/repos/octocat/hello-world/dependabot/alerts/1 + html_url: https://github.com/octocat/hello-world/security/dependabot/1 + created_at: '2022-06-14T15:21:52Z' + updated_at: '2022-06-14T15:21:52Z' + dismissed_at: + dismissed_by: + dismissed_reason: + dismissed_comment: + fixed_at: + dependabot-alert-open: + value: + number: 1 + state: open + dependency: + package: + ecosystem: pip + name: ansible + manifest_path: path/to/requirements.txt + scope: runtime + security_advisory: + ghsa_id: GHSA-8f4m-hccc-8qph + cve_id: CVE-2021-20191 + summary: Insertion of Sensitive Information into Log File in ansible + description: A flaw was found in ansible. Credentials, such as secrets, + are being disclosed in console log by default and not protected by no_log + feature when using those modules. An attacker can take advantage of this + information to steal those credentials. The highest threat from this vulnerability + is to data confidentiality. + vulnerabilities: + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: ">= 2.9.0, < 2.9.18" + first_patched_version: + identifier: 2.9.18 + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: "< 2.8.19" + first_patched_version: + identifier: 2.8.19 + - package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: ">= 2.10.0, < 2.10.7" + first_patched_version: + identifier: 2.10.7 + severity: medium + cvss: + vector_string: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N + score: 5.5 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N + score: 5.5 + cvss_v4: + vector_string: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 8.5 + epss: + - percentage: 0.00045 + percentile: 0.16001e0 + cwes: + - cwe_id: CWE-532 + name: Insertion of Sensitive Information into Log File + identifiers: + - type: GHSA + value: GHSA-8f4m-hccc-8qph + - type: CVE + value: CVE-2021-20191 + references: + - url: https://nvd.nist.gov/vuln/detail/CVE-2021-20191 + - url: https://access.redhat.com/security/cve/cve-2021-20191 + - url: https://bugzilla.redhat.com/show_bug.cgi?id=1916813 + published_at: '2021-06-01T17:38:00Z' + updated_at: '2021-08-12T23:06:00Z' + withdrawn_at: + security_vulnerability: + package: + ecosystem: pip + name: ansible + severity: medium + vulnerable_version_range: "< 2.8.19" + first_patched_version: + identifier: 2.8.19 + url: https://api.github.com/repos/octocat/hello-world/dependabot/alerts/1 + html_url: https://github.com/octocat/hello-world/security/dependabot/1 + created_at: '2022-06-14T15:21:52Z' + updated_at: '2022-06-14T15:21:52Z' + dismissed_at: + dismissed_by: + dismissed_reason: + dismissed_comment: + fixed_at: + dependabot-alert-dismissed: + value: + number: 2 + state: dismissed + dependency: + package: + ecosystem: pip + name: django + manifest_path: path/to/requirements.txt + scope: runtime + security_advisory: + ghsa_id: GHSA-rf4j-j272-fj86 + cve_id: CVE-2018-6188 + summary: Django allows remote attackers to obtain potentially sensitive + information by leveraging data exposure from the confirm_login_allowed() + method, as demonstrated by discovering whether a user account is inactive + description: django.contrib.auth.forms.AuthenticationForm in Django 2.0 + before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain + potentially sensitive information by leveraging data exposure from the + confirm_login_allowed() method, as demonstrated by discovering whether + a user account is inactive. + vulnerabilities: + - package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 2.0.0, < 2.0.2" + first_patched_version: + identifier: 2.0.2 + - package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 1.11.8, < 1.11.10" + first_patched_version: + identifier: 1.11.10 + severity: high + cvss: + vector_string: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N + score: 7.5 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N + score: 7.5 + cvss_v4: + vector_string: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N + score: 8.7 + cwes: + - cwe_id: CWE-200 + name: Exposure of Sensitive Information to an Unauthorized Actor + identifiers: + - type: GHSA + value: GHSA-rf4j-j272-fj86 + - type: CVE + value: CVE-2018-6188 + references: + - url: https://nvd.nist.gov/vuln/detail/CVE-2018-6188 + - url: https://github.com/advisories/GHSA-rf4j-j272-fj86 + - url: https://usn.ubuntu.com/3559-1/ + - url: https://www.djangoproject.com/weblog/2018/feb/01/security-releases/ + - url: http://www.securitytracker.com/id/1040422 + published_at: '2018-10-03T21:13:54Z' + updated_at: '2022-04-26T18:35:37Z' + withdrawn_at: + security_vulnerability: + package: + ecosystem: pip + name: django + severity: high + vulnerable_version_range: ">= 2.0.0, < 2.0.2" + first_patched_version: + identifier: 2.0.2 + url: https://api.github.com/repos/octocat/hello-world/dependabot/alerts/2 + html_url: https://github.com/octocat/hello-world/security/dependabot/2 + created_at: '2022-06-15T07:43:03Z' + updated_at: '2022-08-23T14:29:47Z' + dismissed_at: '2022-08-23T14:29:47Z' + dismissed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + dismissed_reason: tolerable_risk + dismissed_comment: This alert is accurate but we use a sanitizer. + fixed_at: + dependabot-secret-paginated: + value: + total_count: 2 + secrets: + - name: AZURE_DEVOPS_PAT + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + - name: MY_ARTIFACTORY_PASSWORD + created_at: '2020-01-10T10:59:22Z' + updated_at: '2020-01-11T11:59:22Z' + dependabot-secret: + value: + name: MY_ARTIFACTORY_PASSWORD + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + diff-range-response: + value: + - change_type: removed + manifest: package.json + ecosystem: npm + name: helmet + version: 4.6.0 + package_url: pkg:npm/helmet@4.6.0 + license: MIT + source_repository_url: https://github.com/helmetjs/helmet + vulnerabilities: [] + - change_type: added + manifest: package.json + ecosystem: npm + name: helmet + version: 5.0.0 + package_url: pkg:npm/helmet@5.0.0 + license: MIT + source_repository_url: https://github.com/helmetjs/helmet + vulnerabilities: [] + - change_type: added + manifest: Gemfile + ecosystem: rubygems + name: ruby-openid + version: 2.7.0 + package_url: pkg:gem/ruby-openid@2.7.0 + license: + source_repository_url: https://github.com/openid/ruby-openid + vulnerabilities: + - severity: critical + advisory_ghsa_id: GHSA-fqfj-cmh6-hj49 + advisory_summary: Ruby OpenID + advisory_url: https://github.com/advisories/GHSA-fqfj-cmh6-hj49 + dependency-graph-export-sbom-response: + value: + sbom: + SPDXID: SPDXRef-DOCUMENT + spdxVersion: SPDX-2.3 + creationInfo: + created: '2021-09-01T00:00:00Z' + creators: + - 'Tool: GitHub.com-Dependency-Graph' + name: github/example + dataLicense: CC0-1.0 + documentNamespace: https://spdx.org/spdxdocs/protobom/15e41dd2-f961-4f4d-b8dc-f8f57ad70d57 + packages: + - name: rails + SPDXID: SPDXRef-Package + versionInfo: 1.0.0 + downloadLocation: NOASSERTION + filesAnalyzed: false + licenseConcluded: MIT + licenseDeclared: MIT + copyrightText: Copyright (c) 1985 GitHub.com + externalRefs: + - referenceCategory: PACKAGE-MANAGER + referenceType: purl + referenceLocator: pkg:gem/rails@1.0.0 + - name: github/example + SPDXID: SPDXRef-Repository + versionInfo: main + downloadLocation: NOASSERTION + filesAnalyzed: false + externalRefs: + - referenceCategory: PACKAGE-MANAGER + referenceType: purl + referenceLocator: pkg:github/example@main + relationships: + - relationshipType: DEPENDS_ON + spdxElementId: SPDXRef-Repository + relatedSpdxElement: SPDXRef-Package + - relationshipType: DESCRIBES + spdxElementId: SPDXRef-DOCUMENT + relatedSpdxElement: SPDXRef-Repository + dependency-graph-create-snapshot-request: + value: + version: 0 + sha: ce587453ced02b1526dfb4cb910479d431683101 + ref: refs/heads/main + job: + correlator: yourworkflowname_youractionname + id: yourrunid + detector: + name: octo-detector + version: 0.0.1 + url: https://github.com/octo-org/octo-repo + scanned: '2022-06-14T20:25:00Z' + manifests: + package-lock.json: + name: package-lock.json + file: + source_location: src/package-lock.json + resolved: + "@actions/core": + package_url: pkg:/npm/%40actions/core@1.1.9 + dependencies: + - "@actions/http-client" + "@actions/http-client": + package_url: pkg:/npm/%40actions/http-client@1.0.7 + dependencies: + - tunnel + tunnel: + package_url: pkg:/npm/tunnel@0.0.6 + dependency-graph-create-snapshot-success: + value: + id: 12345 + created_at: '2018-05-04T01:14:52Z' + message: Dependency results for the repo have been successfully updated. + result: SUCCESS + deployment-simple-example: + summary: Simple example + value: + url: https://api.github.com/repos/octocat/example/deployments/1 + id: 1 + node_id: MDEwOkRlcGxveW1lbnQx + sha: a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + ref: topic-branch + task: deploy + payload: {} + original_environment: staging + environment: production + description: Deploy request from hubot + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + statuses_url: https://api.github.com/repos/octocat/example/deployments/1/statuses + repository_url: https://api.github.com/repos/octocat/example + transient_environment: false + production_environment: true + deployment: + value: + url: https://api.github.com/repos/octocat/example/deployments/1 + id: 1 + node_id: MDEwOkRlcGxveW1lbnQx + sha: a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d + ref: topic-branch + task: deploy + payload: {} + original_environment: staging + environment: production + description: Deploy request from hubot + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + statuses_url: https://api.github.com/repos/octocat/example/deployments/1/statuses + repository_url: https://api.github.com/repos/octocat/example + transient_environment: false + production_environment: true + deployment-status-items: + value: + - url: https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + id: 1 + node_id: MDE2OkRlcGxveW1lbnRTdGF0dXMx + state: success + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + description: Deployment finished successfully. + environment: production + target_url: https://example.com/deployment/42/output + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + deployment_url: https://api.github.com/repos/octocat/example/deployments/42 + repository_url: https://api.github.com/repos/octocat/example + environment_url: https://test-branch.lab.acme.com + log_url: https://example.com/deployment/42/output + deployment-status: + value: + url: https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + id: 1 + node_id: MDE2OkRlcGxveW1lbnRTdGF0dXMx + state: success + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + description: Deployment finished successfully. + environment: production + target_url: https://example.com/deployment/42/output + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + deployment_url: https://api.github.com/repos/octocat/example/deployments/42 + repository_url: https://api.github.com/repos/octocat/example + environment_url: https://test-branch.lab.acme.com + log_url: https://example.com/deployment/42/output + environments: + value: + total_count: 1 + environments: + - id: 161088068 + node_id: MDExOkVudmlyb25tZW50MTYxMDg4MDY4 + name: staging + url: https://api.github.com/repos/github/hello-world/environments/staging + html_url: https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging + created_at: '2020-11-23T22:00:40Z' + updated_at: '2020-11-23T22:00:40Z' + protection_rules: + - id: 3736 + node_id: MDQ6R2F0ZTM3MzY= + type: wait_timer + wait_timer: 30 + - id: 3755 + node_id: MDQ6R2F0ZTM3NTU= + prevent_self_review: false + type: required_reviewers + reviewers: + - type: User + reviewer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - type: Team + reviewer: + id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + - id: 3756 + node_id: MDQ6R2F0ZTM3NTY= + type: branch_policy + deployment_branch_policy: + protected_branches: false + custom_branch_policies: true + environment: + value: + id: 161088068 + node_id: MDExOkVudmlyb25tZW50MTYxMDg4MDY4 + name: staging + url: https://api.github.com/repos/github/hello-world/environments/staging + html_url: https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging + created_at: '2020-11-23T22:00:40Z' + updated_at: '2020-11-23T22:00:40Z' + protection_rules: + - id: 3736 + node_id: MDQ6R2F0ZTM3MzY= + type: wait_timer + wait_timer: 30 + - id: 3755 + node_id: MDQ6R2F0ZTM3NTU= + prevent_self_review: false + type: required_reviewers + reviewers: + - type: User + reviewer: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - type: Team + reviewer: + id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + - id: 3756 + node_id: MDQ6R2F0ZTM3NTY= + type: branch_policy + deployment_branch_policy: + protected_branches: false + custom_branch_policies: true + deployment-branch-policies-list: + value: + total_count: 2 + branch_policies: + - id: 361471 + node_id: MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE= + name: release/* + - id: 361472 + node_id: MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzI= + name: main + deployment-branch-policy-wildcard: + value: + id: 364662 + node_id: MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjI= + name: release/* + deployment-branch-policy-single-branch: + value: + id: 364663 + node_id: MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjM= + name: main + deployment-branch-policy-single-tag: + value: + id: 364663 + node_id: MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjM= + name: v1 + type: tag + deployment-protection-rules: + value: + - total_count: 2 + - custom_deployment_protection_rules: + - id: 3 + node_id: IEH37kRlcGxveW1lbnRTdGF0ddiv + enabled: true + app: + id: 1 + node_id: GHT58kRlcGxveW1lbnRTdTY!bbcy + slug: a-custom-app + integration_url: https://api.github.com/apps/a-custom-app + - id: 4 + node_id: MDE2OkRlcGxveW1lbnRTdHJ41128 + enabled: true + app: + id: 1 + node_id: UHVE67RlcGxveW1lbnRTdTY!jfeuy + slug: another-custom-app + integration_url: https://api.github.com/apps/another-custom-app + deployment-protection-rule: + value: + id: 3 + node_id: IEH37kRlcGxveW1lbnRTdGF0ddiv + enabled: true + app: + id: 1 + node_id: GHT58kRlcGxveW1lbnRTdTY!bbcy + slug: a-custom-app + integration_url: https://api.github.com/apps/a-custom-app + custom-deployment-protection-rule-apps: + value: + - total_count: 2 + - available_custom_deployment_protection_rule_integrations: + - id: 1 + node_id: GHT58kRlcGxveW1lbnRTdTY!bbcy + slug: a-custom-app + integration_url: https://api.github.com/apps/a-custom-app + - id: 2 + node_id: UHVE67RlcGxveW1lbnRTdTY!jfeuy + slug: another-custom-app + integration_url: https://api.github.com/apps/another-custom-app + repo-events-items: + value: + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: true + created_at: '2022-06-09T12:47:28Z' + - id: '22237752260' + type: WatchEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + action: started + public: true + created_at: '2022-06-08T23:29:25Z' + minimal-repository-items-2: + value: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: true + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + delete_branch_on_merge: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + spdx_id: MIT + url: https://api.github.com/licenses/mit + node_id: MDc6TGljZW5zZW1pdA== + short-blob: + value: + url: https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 + sha: 3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 + blob: + value: + content: Q29udGVudCBvZiB0aGUgYmxvYg== + encoding: base64 + url: https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 + sha: 3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 + size: 19 + node_id: Q29udGVudCBvZiB0aGUgYmxvYg== + git-commit: + value: + sha: 7638417db6d59f3c431d3e1f261cc637155684cd + node_id: MDY6Q29tbWl0NzYzODQxN2RiNmQ1OWYzYzQzMWQzZTFmMjYxY2M2MzcxNTU2ODRjZA== + url: https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd + author: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + committer: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + message: my commit message + tree: + url: https://api.github.com/repos/octocat/Hello-World/git/trees/827efc6d56897b048c772eb4087f854f46256132 + sha: 827efc6d56897b048c772eb4087f854f46256132 + parents: + - url: https://api.github.com/repos/octocat/Hello-World/git/commits/7d1b31e74ee336d15cbd21741bc88a537ed063a0 + sha: 7d1b31e74ee336d15cbd21741bc88a537ed063a0 + html_url: https://github.com/octocat/Hello-World/commit/7d1b31e74ee336d15cbd21741bc88a537ed063a0 + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + html_url: https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + git-commit-2: + value: + sha: 7638417db6d59f3c431d3e1f261cc637155684cd + node_id: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== + url: https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd + html_url: https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + author: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + committer: + date: '2014-11-07T22:01:45Z' + name: Monalisa Octocat + email: octocat@github.com + message: added readme, because im a good github citizen + tree: + url: https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb + sha: 691272480426f78a0138979dd3ce63b77f706feb + parents: + - url: https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5 + sha: 1acc419d4d6a9ce985db7be48c6349a0475975b5 + html_url: https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + git-ref-items: + value: + - ref: refs/heads/feature-a + node_id: MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlLWE= + url: https://api.github.com/repos/octocat/Hello-World/git/refs/heads/feature-a + object: + type: commit + sha: aa218f56b14c9653891f9e74264a383fa43fefbd + url: https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd + - ref: refs/heads/feature-b + node_id: MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlLWI= + url: https://api.github.com/repos/octocat/Hello-World/git/refs/heads/feature-b + object: + type: commit + sha: 612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac + url: https://api.github.com/repos/octocat/Hello-World/git/commits/612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac + git-ref: + value: + ref: refs/heads/featureA + node_id: MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlQQ== + url: https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA + object: + type: commit + sha: aa218f56b14c9653891f9e74264a383fa43fefbd + url: https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd + git-tag: + value: + node_id: MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw== + tag: v0.0.1 + sha: 940bd336248efae0f9ee5bc7b2d5c985887b16ac + url: https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac + message: initial version + tagger: + name: Monalisa Octocat + email: octocat@github.com + date: '2014-11-07T22:01:45Z' + object: + type: commit + sha: c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c + url: https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c + verification: + verified: false + reason: unsigned + signature: + payload: + verified_at: + git-tree: + value: + sha: cd8274d15fa3ae2ab983129fb037999f264ba9a7 + url: https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7 + tree: + - path: file.rb + mode: '100644' + type: blob + size: 132 + sha: 7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b + url: https://api.github.com/repos/octocat/Hello-World/git/blobs/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b + truncated: true + git-tree-default-response: + summary: Default response + value: + sha: 9fb037999f264ba9a7fc6274d15fa3ae2ab98312 + url: https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312 + tree: + - path: file.rb + mode: '100644' + type: blob + size: 30 + sha: 44b4fc6d56897b048c772eb4087f854f46256132 + url: https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132 + - path: subdir + mode: '040000' + type: tree + sha: f484d249c660418515fb01c2b9662073663c242e + url: https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e + - path: exec_file + mode: '100755' + type: blob + size: 75 + sha: 45b983be36b73c0788dc9cbcb76cbb80fc7bb057 + url: https://api.github.com/repos/octocat/Hello-World/git/blobs/45b983be36b73c0788dc9cbcb76cbb80fc7bb057 + truncated: false + git-tree-response-recursively-retrieving-a-tree: + summary: Response recursively retrieving a tree + value: + sha: fc6274d15fa3ae2ab983129fb037999f264ba9a7 + url: https://api.github.com/repos/octocat/Hello-World/trees/fc6274d15fa3ae2ab983129fb037999f264ba9a7 + tree: + - path: subdir/file.txt + mode: '100644' + type: blob + size: 132 + sha: 7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b + url: https://api.github.com/repos/octocat/Hello-World/git/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b + truncated: false + hook-items: + value: + - type: Repository + id: 12345678 + name: web + active: true + events: + - push + - pull_request + config: + content_type: json + insecure_ssl: '0' + url: https://example.com/webhook + updated_at: '2019-06-03T00:57:16Z' + created_at: '2019-06-03T00:57:16Z' + url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678 + test_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/test + ping_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/pings + deliveries_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/deliveries + last_response: + code: + status: unused + message: + hook: + value: + type: Repository + id: 12345678 + name: web + active: true + events: + - push + - pull_request + config: + content_type: json + insecure_ssl: '0' + url: https://example.com/webhook + updated_at: '2019-06-03T00:57:16Z' + created_at: '2019-06-03T00:57:16Z' + url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678 + test_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/test + ping_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/pings + deliveries_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/deliveries + last_response: + code: + status: unused + message: + import: + value: + vcs: subversion + use_lfs: true + vcs_url: http://svn.mycompany.com/svn/myproject + status: complete + status_text: Done + has_large_files: true + large_files_size: 132331036 + large_files_count: 1 + authors_count: 4 + url: https://api.github.com/repos/octocat/socm/import + html_url: https://import.github.com/octocat/socm/import + authors_url: https://api.github.com/repos/octocat/socm/import/authors + repository_url: https://api.github.com/repos/octocat/socm + import-2: + value: + vcs: subversion + use_lfs: true + vcs_url: http://svn.mycompany.com/svn/myproject + status: importing + status_text: Importing... + has_large_files: false + large_files_size: 0 + large_files_count: 0 + authors_count: 0 + commit_count: 1042 + url: https://api.github.com/repos/octocat/socm/import + html_url: https://import.github.com/octocat/socm/import + authors_url: https://api.github.com/repos/octocat/socm/import/authors + repository_url: https://api.github.com/repos/octocat/socm + import-example-1: + summary: Example 1 + value: + vcs: subversion + use_lfs: true + vcs_url: http://svn.mycompany.com/svn/myproject + status: detecting + url: https://api.github.com/repos/octocat/socm/import + html_url: https://import.github.com/octocat/socm/import + authors_url: https://api.github.com/repos/octocat/socm/import/authors + repository_url: https://api.github.com/repos/octocat/socm + import-example-2: + summary: Example 2 + value: + vcs: tfvc + use_lfs: true + vcs_url: http://tfs.mycompany.com/tfs/myproject + tfvc_project: project1 + status: importing + status_text: Importing... + has_large_files: false + large_files_size: 0 + large_files_count: 0 + authors_count: 0 + commit_count: 1042 + url: https://api.github.com/repos/octocat/socm/import + html_url: https://import.github.com/octocat/socm/import + authors_url: https://api.github.com/repos/octocat/socm/import/authors + repository_url: https://api.github.com/repos/octocat/socm + import-response: + summary: Response + value: + vcs: subversion + use_lfs: true + vcs_url: http://svn.mycompany.com/svn/myproject + status: importing + status_text: Importing... + has_large_files: false + large_files_size: 0 + large_files_count: 0 + authors_count: 0 + commit_count: 1042 + url: https://api.github.com/repos/octocat/socm/import + html_url: https://import.github.com/octocat/socm/import + authors_url: https://api.github.com/repos/octocat/socm/import/authors + repository_url: https://api.github.com/repos/octocat/socm + porter-author-items: + value: + - id: 2268557 + remote_id: nobody@fc7da526-431c-80fe-3c8c-c148ff18d7ef + remote_name: nobody + email: hubot@github.com + name: Hubot + url: https://api.github.com/repos/octocat/socm/import/authors/2268557 + import_url: https://api.github.com/repos/octocat/socm/import + - id: 2268558 + remote_id: svner@fc7da526-431c-80fe-3c8c-c148ff18d7ef + remote_name: svner + email: svner@fc7da526-431c-80fe-3c8c-c148ff18d7ef + name: svner + url: https://api.github.com/repos/octocat/socm/import/authors/2268558 + import_url: https://api.github.com/repos/octocat/socm/import + - id: 2268559 + remote_id: svner@example.com@fc7da526-431c-80fe-3c8c-c148ff18d7ef + remote_name: svner@example.com + email: svner@example.com@fc7da526-431c-80fe-3c8c-c148ff18d7ef + name: svner@example.com + url: https://api.github.com/repos/octocat/socm/import/authors/2268559 + import_url: https://api.github.com/repos/octocat/socm/import + porter-author: + value: + id: 2268557 + remote_id: nobody@fc7da526-431c-80fe-3c8c-c148ff18d7ef + remote_name: nobody + email: hubot@github.com + name: Hubot + url: https://api.github.com/repos/octocat/socm/import/authors/2268557 + import_url: https://api.github.com/repos/octocat/socm/import + porter-large-file-items: + value: + - ref_name: refs/heads/master + path: foo/bar/1 + oid: d3d9446802a44259755d38e6d163e820 + size: 10485760 + - ref_name: refs/heads/master + path: foo/bar/2 + oid: 6512bd43d9caa6e02c990b0a82652dca + size: 11534336 + - ref_name: refs/heads/master + path: foo/bar/3 + oid: c20ad4d76fe97759aa27a0c99bff6710 + size: 12582912 + interaction-limit-2: + value: + limit: collaborators_only + origin: repository + expires_at: '2018-08-17T04:18:39Z' + repository-invitation-items: + value: + - id: 1 + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + invitee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + inviter: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + permissions: write + created_at: '2016-06-13T14:52:50-05:00' + url: https://api.github.com/user/repository_invitations/1296269 + html_url: https://github.com/octocat/Hello-World/invitations + node_id: MDQ6VXNlcjE= + repository-invitation: + value: + id: 1 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + invitee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + inviter: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + permissions: write + created_at: '2016-06-13T14:52:50-05:00' + expired: false + url: https://api.github.com/user/repository_invitations/1296269 + html_url: https://github.com/octocat/Hello-World/invitations + issue-items: + value: + - id: 1 + node_id: MDU6SXNzdWUx + url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + repository_url: https://api.github.com/repos/octocat/Hello-World + labels_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + events_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/events + html_url: https://github.com/octocat/Hello-World/issues/1347 + number: 1347 + state: open + title: Found a bug + body: I'm having a problem with this. + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + locked: true + active_lock_reason: too heated + comments: 0 + pull_request: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + closed_at: + created_at: '2011-04-22T13:33:48Z' + updated_at: '2011-04-22T13:33:48Z' + closed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + author_association: COLLABORATOR + state_reason: completed + issue: + value: + id: 1 + node_id: MDU6SXNzdWUx + url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + repository_url: https://api.github.com/repos/octocat/Hello-World + labels_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + events_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/events + html_url: https://github.com/octocat/Hello-World/issues/1347 + number: 1347 + state: open + title: Found a bug + body: I'm having a problem with this. + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + locked: true + active_lock_reason: too heated + comments: 0 + pull_request: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + closed_at: + created_at: '2011-04-22T13:33:48Z' + updated_at: '2011-04-22T13:33:48Z' + closed_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + author_association: COLLABORATOR + state_reason: completed + issue-comment-items: + value: + - id: 1 + node_id: MDEyOklzc3VlQ29tbWVudDE= + url: https://api.github.com/repos/octocat/Hello-World/issues/comments/1 + html_url: https://github.com/octocat/Hello-World/issues/1347#issuecomment-1 + body: Me too + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + author_association: COLLABORATOR + issue-comment: + value: + id: 1 + node_id: MDEyOklzc3VlQ29tbWVudDE= + url: https://api.github.com/repos/octocat/Hello-World/issues/comments/1 + html_url: https://github.com/octocat/Hello-World/issues/1347#issuecomment-1 + body: Me too + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + author_association: COLLABORATOR + issue-event-items: + value: + - id: 1 + node_id: MDEwOklzc3VlRXZlbnQx + url: https://api.github.com/repos/octocat/Hello-World/issues/events/1 + actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + event: closed + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + commit_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + created_at: '2011-04-14T16:00:49Z' + issue: + id: 1 + node_id: MDU6SXNzdWUx + url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + repository_url: https://api.github.com/repos/octocat/Hello-World + labels_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + events_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/events + html_url: https://github.com/octocat/Hello-World/issues/1347 + number: 1347 + state: open + title: Found a bug + body: I'm having a problem with this. + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + locked: true + active_lock_reason: too heated + comments: 0 + pull_request: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + closed_at: + created_at: '2011-04-22T13:33:48Z' + updated_at: '2011-04-22T13:33:48Z' + author_association: COLLABORATOR + state_reason: completed + issue-event: + value: + id: 1 + node_id: MDEwOklzc3VlRXZlbnQx + url: https://api.github.com/repos/octocat/Hello-World/issues/events/1 + actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + event: closed + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + commit_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + created_at: '2011-04-14T16:00:49Z' + issue: + id: 1 + node_id: MDU6SXNzdWUx + url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + repository_url: https://api.github.com/repos/octocat/Hello-World + labels_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + events_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/events + html_url: https://github.com/octocat/Hello-World/issues/1347 + number: 1347 + state: open + title: Found a bug + body: I'm having a problem with this. + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + locked: true + performed_via_github_app: + id: 1 + slug: octoapp + node_id: MDExOkludGVncmF0aW9uMQ== + owner: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + name: Octocat App + description: '' + external_url: https://example.com + html_url: https://github.com/apps/octoapp + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + permissions: + metadata: read + contents: read + issues: write + events: + - push + - pull_request + comments: 0 + pull_request: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + closed_at: + created_at: '2011-04-22T13:33:48Z' + updated_at: '2011-04-22T13:33:48Z' + author_association: COLLABORATOR + state_reason: completed + issue-event-for-issue-items: + value: + - id: 1 + node_id: MDEwOklzc3VlRXZlbnQx + url: https://api.github.com/repos/octocat/Hello-World/issues/events/1 + actor: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + event: closed + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + commit_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + created_at: '2011-04-14T16:00:49Z' + performed_via_github_app: + label: + name: label + color: red + label-items: + value: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + - id: 208045947 + node_id: MDU6TGFiZWwyMDgwNDU5NDc= + url: https://api.github.com/repos/octocat/Hello-World/labels/enhancement + name: enhancement + description: New feature or request + color: a2eeef + default: false + label-items-2: + value: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + timeline-issue-events: + value: + - id: 6430295168 + node_id: LOE_lADODwFebM5HwC0kzwAAAAF_RoSA + url: https://api.github.com/repos/github/roadmap/issues/events/6430295168 + actor: + login: github + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/github + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: Organization + site_admin: false + event: locked + commit_id: + commit_url: + created_at: '2022-04-13T20:49:13Z' + lock_reason: + performed_via_github_app: + - id: 6430296748 + node_id: LE_lADODwFebM5HwC0kzwAAAAF_Roqs + url: https://api.github.com/repos/github/roadmap/issues/events/6430296748 + actor: + login: github-product-roadmap + id: 67656570 + node_id: MDQ6VXNlcjY3NjU2NTcw + avatar_url: https://avatars.githubusercontent.com/u/67656570?v=4 + gravatar_id: '' + url: https://api.github.com/users/github-product-roadmap + html_url: https://github.com/github-product-roadmap + followers_url: https://api.github.com/users/github-product-roadmap/followers + following_url: https://api.github.com/users/github-product-roadmap/following{/other_user} + gists_url: https://api.github.com/users/github-product-roadmap/gists{/gist_id} + starred_url: https://api.github.com/users/github-product-roadmap/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github-product-roadmap/subscriptions + organizations_url: https://api.github.com/users/github-product-roadmap/orgs + repos_url: https://api.github.com/users/github-product-roadmap/repos + events_url: https://api.github.com/users/github-product-roadmap/events{/privacy} + received_events_url: https://api.github.com/users/github-product-roadmap/received_events + type: User + site_admin: false + event: labeled + commit_id: + commit_url: + created_at: '2022-04-13T20:49:34Z' + label: + name: beta + color: 99dd88 + performed_via_github_app: + - id: 6635165802 + node_id: RTE_lADODwFebM5HwC0kzwAAAAGLfJhq + url: https://api.github.com/repos/github/roadmap/issues/events/6635165802 + actor: + login: github-product-roadmap + id: 67656570 + node_id: MDQ6VXNlcjY3NjU2NTcw + avatar_url: https://avatars.githubusercontent.com/u/67656570?v=4 + gravatar_id: '' + url: https://api.github.com/users/github-product-roadmap + html_url: https://github.com/github-product-roadmap + followers_url: https://api.github.com/users/github-product-roadmap/followers + following_url: https://api.github.com/users/github-product-roadmap/following{/other_user} + gists_url: https://api.github.com/users/github-product-roadmap/gists{/gist_id} + starred_url: https://api.github.com/users/github-product-roadmap/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github-product-roadmap/subscriptions + organizations_url: https://api.github.com/users/github-product-roadmap/orgs + repos_url: https://api.github.com/users/github-product-roadmap/repos + events_url: https://api.github.com/users/github-product-roadmap/events{/privacy} + received_events_url: https://api.github.com/users/github-product-roadmap/received_events + type: User + site_admin: false + event: renamed + commit_id: + commit_url: + created_at: '2022-05-18T19:29:01Z' + rename: + from: 'Secret scanning: dry-runs for enterprise-level custom patterns (cloud)' + to: 'Secret scanning: dry-runs for enterprise-level custom patterns' + performed_via_github_app: + - url: https://api.github.com/repos/github/roadmap/issues/comments/1130876857 + html_url: https://github.com/github/roadmap/issues/493#issuecomment-1130876857 + issue_url: https://api.github.com/repos/github/roadmap/issues/493 + id: 1130876857 + node_id: IC_kwDODwFebM5DZ8-5 + user: + login: octocat + id: 94867353 + node_id: U_kgDOBaePmQ + avatar_url: https://avatars.githubusercontent.com/u/94867353?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + created_at: '2022-05-19T00:52:15Z' + updated_at: '2022-05-19T00:52:15Z' + author_association: COLLABORATOR + body: "\U0001F6A2 Shipped to the cloud: https://github.blog/changelog/2022-05-12-secret-scanning-dry-runs-for-enterprise-level-custom-patterns/" + reactions: + url: https://api.github.com/repos/github/roadmap/issues/comments/1130876857/reactions + total_count: 0 + "+1": 0 + "-1": 0 + laugh: 0 + hooray: 0 + confused: 0 + heart: 0 + rocket: 0 + eyes: 0 + performed_via_github_app: + event: commented + actor: + login: octocat + id: 94867353 + node_id: U_kgDOBaePmQ + avatar_url: https://avatars.githubusercontent.com/u/94867353?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + deploy-key-items: + value: + - id: 1 + key: ssh-rsa AAA... + url: https://api.github.com/repos/octocat/Hello-World/keys/1 + title: octocat@octomac + verified: true + created_at: '2014-12-10T15:53:42Z' + read_only: true + added_by: octocat + last_used: '2022-01-10T15:53:42Z' + enabled: true + deploy-key: + value: + id: 1 + key: ssh-rsa AAA... + url: https://api.github.com/repos/octocat/Hello-World/keys/1 + title: octocat@octomac + verified: true + created_at: '2014-12-10T15:53:42Z' + read_only: true + added_by: octocat + last_used: '2022-01-10T15:53:42Z' + enabled: true + label: + value: + id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + label-2: + value: + id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: 'https://api.github.com/repos/octocat/Hello-World/labels/bug%20:bug:' + name: 'bug :bug:' + description: Small bug fix required + color: b01f26 + default: true + language: + value: + C: 78769 + Python: 7769 + license-content: + value: + name: LICENSE + path: LICENSE + sha: 401c59dcc4570b954dd6d345e76199e1f4e76266 + size: 1077 + url: https://api.github.com/repos/benbalter/gman/contents/LICENSE?ref=master + html_url: https://github.com/benbalter/gman/blob/master/LICENSE + git_url: https://api.github.com/repos/benbalter/gman/git/blobs/401c59dcc4570b954dd6d345e76199e1f4e76266 + download_url: https://raw.githubusercontent.com/benbalter/gman/master/LICENSE?lab=true + type: file + content: | + VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTMgQmVu + IEJhbHRlcgoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv + ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgp0 + aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls + ZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbgp0aGUgU29mdHdhcmUg + d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh + dGlvbiB0aGUgcmlnaHRzIHRvCnVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg + cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg + Y29waWVzIG9mCnRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z + IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywK + c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJv + dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj + ZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50 + aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJ + UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL + SU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ + TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBG + SVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO + R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUgpDT1BZ + UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF + UyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIKSU4gQU4gQUNUSU9OIE9G + IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP + VVQgT0YgT1IgSU4KQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU + SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K + encoding: base64 + _links: + self: https://api.github.com/repos/benbalter/gman/contents/LICENSE?ref=master + git: https://api.github.com/repos/benbalter/gman/git/blobs/401c59dcc4570b954dd6d345e76199e1f4e76266 + html: https://github.com/benbalter/gman/blob/master/LICENSE + license: + key: mit + name: MIT License + spdx_id: MIT + url: https://api.github.com/licenses/mit + node_id: MDc6TGljZW5zZW1pdA== + merged-upstream: + value: + message: Successfully fetched and fast-forwarded from upstream defunkt:main + merge_type: fast-forward + base_branch: defunkt:main + milestone-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + milestone: + value: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + page: + value: + url: https://api.github.com/repos/github/developer.github.com/pages + status: built + cname: developer.github.com + custom_404: false + html_url: https://developer.github.com + source: + branch: master + path: "/" + public: true + pending_domain_unverified_at: '2024-04-30T19:33:31Z' + protected_domain_state: verified + https_certificate: + state: approved + description: Certificate is approved + domains: + - developer.github.com + expires_at: '2021-05-22' + https_enforced: true + page-build-items: + value: + - url: https://api.github.com/repos/github/developer.github.com/pages/builds/5472601 + status: built + error: + message: + pusher: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + commit: 351391cdcb88ffae71ec3028c91f375a8036a26b + duration: 2104 + created_at: '2014-02-10T19:00:49Z' + updated_at: '2014-02-10T19:00:51Z' + page-build-status: + value: + url: https://api.github.com/repos/github/developer.github.com/pages/builds/latest + status: queued + page-build: + value: + url: https://api.github.com/repos/github/developer.github.com/pages/builds/5472601 + status: built + error: + message: + pusher: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + commit: 351391cdcb88ffae71ec3028c91f375a8036a26b + duration: 2104 + created_at: '2014-02-10T19:00:49Z' + updated_at: '2014-02-10T19:00:51Z' + page-deployment: + value: + id: 4fd754f7e594640989b406850d0bc8f06a121251 + status_url: https://api.github.com/repos/github/developer.github.com/pages/deployments/4fd754f7e594640989b406850d0bc8f06a121251/status + page_url: developer.github.com + pages-deployment-status: + value: + status: succeed + pages-health-check: + value: + domain: + host: example.com + uri: http://example.com/ + nameservers: default + dns_resolves: true + is_proxied: false + is_cloudflare_ip: false + is_fastly_ip: false + is_old_ip_address: false + is_a_record: true + has_cname_record: false + has_mx_records_present: false + is_valid_domain: true + is_apex_domain: true + should_be_a_record: true + is_cname_to_github_user_domain: false + is_cname_to_pages_dot_github_dot_com: false + is_cname_to_fastly: false + is_pointed_to_github_pages_ip: true + is_non_github_pages_ip_present: false + is_pages_domain: false + is_served_by_pages: true + is_valid: true + reason: + responds_to_https: true + enforces_https: true + https_error: + is_https_eligible: true + caa_error: + alt_domain: + host: www.example.com + uri: http://www.example.com/ + nameservers: default + dns_resolves: true + is_proxied: false + is_cloudflare_ip: false + is_fastly_ip: false + is_old_ip_address: false + is_a_record: true + has_cname_record: false + has_mx_records_present: false + is_valid_domain: true + is_apex_domain: true + should_be_a_record: true + is_cname_to_github_user_domain: false + is_cname_to_pages_dot_github_dot_com: false + is_cname_to_fastly: false + is_pointed_to_github_pages_ip: true + is_non_github_pages_ip_present: false + is_pages_domain: false + is_served_by_pages: true + is_valid: true + reason: + responds_to_https: true + enforces_https: true + https_error: + is_https_eligible: true + caa_error: + custom-property-values: + value: + - property_name: environment + value: production + - property_name: service + value: web + - property_name: team + value: octocat + create-or-update-custom-properties-values: + value: + properties: + - property_name: environment + value: production + - property_name: service + value: web + - property_name: team + value: octocat + pull-request: + value: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + id: 1 + node_id: MDExOlB1bGxSZXF1ZXN0MQ== + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + commits_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + review_comments_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment_url: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + number: 1347 + state: open + locked: true + title: Amazing new feature + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Please pull these awesome changes in! + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + active_lock_reason: too heated + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:01:12Z' + closed_at: '2011-01-26T19:01:12Z' + merged_at: '2011-01-26T19:01:12Z' + merge_commit_sha: e5bd3914e2e596debea16f433f57875b5b90bcd6 + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - login: hubot + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/hubot_happy.gif + gravatar_id: '' + url: https://api.github.com/users/hubot + html_url: https://github.com/hubot + followers_url: https://api.github.com/users/hubot/followers + following_url: https://api.github.com/users/hubot/following{/other_user} + gists_url: https://api.github.com/users/hubot/gists{/gist_id} + starred_url: https://api.github.com/users/hubot/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/hubot/subscriptions + organizations_url: https://api.github.com/users/hubot/orgs + repos_url: https://api.github.com/users/hubot/repos + events_url: https://api.github.com/users/hubot/events{/privacy} + received_events_url: https://api.github.com/users/hubot/received_events + type: User + site_admin: true + requested_reviewers: + - login: other_user + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/other_user_happy.gif + gravatar_id: '' + url: https://api.github.com/users/other_user + html_url: https://github.com/other_user + followers_url: https://api.github.com/users/other_user/followers + following_url: https://api.github.com/users/other_user/following{/other_user} + gists_url: https://api.github.com/users/other_user/gists{/gist_id} + starred_url: https://api.github.com/users/other_user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/other_user/subscriptions + organizations_url: https://api.github.com/users/other_user/orgs + repos_url: https://api.github.com/users/other_user/repos + events_url: https://api.github.com/users/other_user/events{/privacy} + received_events_url: https://api.github.com/users/other_user/received_events + type: User + site_admin: false + requested_teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + head: + label: octocat:new-topic + ref: new-topic + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + has_discussions: false + archived: false + disabled: false + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_merge_commit: true + allow_forking: true + forks: 123 + open_issues: 123 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + watchers: 123 + base: + label: octocat:master + ref: master + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + has_discussions: false + archived: false + disabled: false + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_merge_commit: true + forks: 123 + open_issues: 123 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + watchers: 123 + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html: + href: https://github.com/octocat/Hello-World/pull/1347 + issue: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347 + comments: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + review_comments: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + commits: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + statuses: + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + author_association: OWNER + auto_merge: + draft: false + merged: false + mergeable: true + rebaseable: true + mergeable_state: clean + merged_by: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + comments: 10 + review_comments: 0 + maintainer_can_modify: true + commits: 3 + additions: 100 + deletions: 3 + changed_files: 5 + pull-request-review-comment-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + pull_request_review_id: 42 + id: 10 + node_id: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + diff_hunk: "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + path: file1.txt + position: 1 + original_position: 4 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + original_commit_id: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + in_reply_to_id: 8 + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Great stuff! + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + html_url: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/1 + author_association: NONE + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + html: + href: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1 + start_line: 1 + original_start_line: 1 + start_side: RIGHT + line: 2 + original_line: 2 + side: RIGHT + pull-request-review-comment-2: + value: + url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + pull_request_review_id: 42 + id: 10 + node_id: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + diff_hunk: "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + path: file1.txt + position: 1 + original_position: 4 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + original_commit_id: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + in_reply_to_id: 8 + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Great stuff! + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + html_url: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/1 + author_association: NONE + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + html: + href: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1 + start_line: 1 + original_start_line: 1 + start_side: RIGHT + line: 2 + original_line: 2 + side: RIGHT + pull-request-review-comment-example-for-a-multi-line-comment: + value: + url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + pull_request_review_id: 42 + id: 10 + node_id: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + diff_hunk: "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + path: file1.txt + position: 1 + original_position: 4 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + original_commit_id: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + in_reply_to_id: 8 + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Great stuff! + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + html_url: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/1 + author_association: NONE + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + html: + href: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1 + start_line: 1 + original_start_line: 1 + start_side: RIGHT + line: 2 + original_line: 2 + side: RIGHT + pull-request-review-comment: + value: + url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + pull_request_review_id: 42 + id: 10 + node_id: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + diff_hunk: "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + path: file1.txt + position: 1 + original_position: 4 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + original_commit_id: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + in_reply_to_id: 426899381 + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Great stuff! + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + html_url: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/1 + author_association: NONE + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + html: + href: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1 + start_line: 1 + original_start_line: 1 + start_side: RIGHT + line: 2 + original_line: 2 + side: RIGHT + diff-entry-items: + value: + - sha: bbcd538c8e72b8c175046e27cc8f907076331401 + filename: file1.txt + status: added + additions: 103 + deletions: 21 + changes: 124 + blob_url: https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + raw_url: https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + patch: "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + pull-request-merge-result-response-if-merge-was-successful: + value: + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + merged: true + message: Pull Request successfully merged + simple-pull-request-review-request: + value: + users: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + pull-request-review-request: + value: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + id: 1 + node_id: MDExOlB1bGxSZXF1ZXN0MQ== + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + commits_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + review_comments_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment_url: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + number: 1347 + state: open + locked: true + title: Amazing new feature + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Please pull these awesome changes in! + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + active_lock_reason: too heated + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:01:12Z' + closed_at: '2011-01-26T19:01:12Z' + merged_at: '2011-01-26T19:01:12Z' + merge_commit_sha: e5bd3914e2e596debea16f433f57875b5b90bcd6 + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - login: hubot + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/hubot_happy.gif + gravatar_id: '' + url: https://api.github.com/users/hubot + html_url: https://github.com/hubot + followers_url: https://api.github.com/users/hubot/followers + following_url: https://api.github.com/users/hubot/following{/other_user} + gists_url: https://api.github.com/users/hubot/gists{/gist_id} + starred_url: https://api.github.com/users/hubot/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/hubot/subscriptions + organizations_url: https://api.github.com/users/hubot/orgs + repos_url: https://api.github.com/users/hubot/repos + events_url: https://api.github.com/users/hubot/events{/privacy} + received_events_url: https://api.github.com/users/hubot/received_events + type: User + site_admin: true + requested_reviewers: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - login: hubot + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/hubot_happy.gif + gravatar_id: '' + url: https://api.github.com/users/hubot + html_url: https://github.com/hubot + followers_url: https://api.github.com/users/hubot/followers + following_url: https://api.github.com/users/hubot/following{/other_user} + gists_url: https://api.github.com/users/hubot/gists{/gist_id} + starred_url: https://api.github.com/users/hubot/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/hubot/subscriptions + organizations_url: https://api.github.com/users/hubot/orgs + repos_url: https://api.github.com/users/hubot/repos + events_url: https://api.github.com/users/hubot/events{/privacy} + received_events_url: https://api.github.com/users/hubot/received_events + type: User + site_admin: true + - login: other_user + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/other_user_happy.gif + gravatar_id: '' + url: https://api.github.com/users/other_user + html_url: https://github.com/other_user + followers_url: https://api.github.com/users/other_user/followers + following_url: https://api.github.com/users/other_user/following{/other_user} + gists_url: https://api.github.com/users/other_user/gists{/gist_id} + starred_url: https://api.github.com/users/other_user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/other_user/subscriptions + organizations_url: https://api.github.com/users/other_user/orgs + repos_url: https://api.github.com/users/other_user/repos + events_url: https://api.github.com/users/other_user/events{/privacy} + received_events_url: https://api.github.com/users/other_user/received_events + type: User + site_admin: false + requested_teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + head: + label: octocat:new-topic + ref: new-topic + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + base: + label: octocat:master + ref: master + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html: + href: https://github.com/octocat/Hello-World/pull/1347 + issue: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347 + comments: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + review_comments: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + commits: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + statuses: + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + author_association: OWNER + auto_merge: + draft: false + pull-request-simple: + value: + url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + id: 1 + node_id: MDExOlB1bGxSZXF1ZXN0MQ== + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://github.com/octocat/Hello-World/pull/1347.patch + issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + commits_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + review_comments_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment_url: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + comments_url: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + number: 1347 + state: open + locked: true + title: Amazing new feature + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Please pull these awesome changes in! + labels: + - id: 208045946 + node_id: MDU6TGFiZWwyMDgwNDU5NDY= + url: https://api.github.com/repos/octocat/Hello-World/labels/bug + name: bug + description: Something isn't working + color: f29513 + default: true + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + active_lock_reason: too heated + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:01:12Z' + closed_at: '2011-01-26T19:01:12Z' + merged_at: '2011-01-26T19:01:12Z' + merge_commit_sha: e5bd3914e2e596debea16f433f57875b5b90bcd6 + assignee: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assignees: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - login: hubot + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/hubot_happy.gif + gravatar_id: '' + url: https://api.github.com/users/hubot + html_url: https://github.com/hubot + followers_url: https://api.github.com/users/hubot/followers + following_url: https://api.github.com/users/hubot/following{/other_user} + gists_url: https://api.github.com/users/hubot/gists{/gist_id} + starred_url: https://api.github.com/users/hubot/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/hubot/subscriptions + organizations_url: https://api.github.com/users/hubot/orgs + repos_url: https://api.github.com/users/hubot/repos + events_url: https://api.github.com/users/hubot/events{/privacy} + received_events_url: https://api.github.com/users/hubot/received_events + type: User + site_admin: true + requested_reviewers: + - login: other_user + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/other_user_happy.gif + gravatar_id: '' + url: https://api.github.com/users/other_user + html_url: https://github.com/other_user + followers_url: https://api.github.com/users/other_user/followers + following_url: https://api.github.com/users/other_user/following{/other_user} + gists_url: https://api.github.com/users/other_user/gists{/gist_id} + starred_url: https://api.github.com/users/other_user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/other_user/subscriptions + organizations_url: https://api.github.com/users/other_user/orgs + repos_url: https://api.github.com/users/other_user/repos + events_url: https://api.github.com/users/other_user/events{/privacy} + received_events_url: https://api.github.com/users/other_user/received_events + type: User + site_admin: false + requested_teams: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + head: + label: octocat:new-topic + ref: new-topic + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + base: + label: octocat:master + ref: master + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + html: + href: https://github.com/octocat/Hello-World/pull/1347 + issue: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347 + comments: + href: https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + review_comments: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + review_comment: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} + commits: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + statuses: + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + author_association: OWNER + auto_merge: + draft: false + pull-request-review-items: + value: + - id: 80 + node_id: MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Here is the body for the review. + state: APPROVED + html_url: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 + _links: + html: + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/12 + submitted_at: '2019-11-17T17:43:43Z' + commit_id: ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091 + author_association: COLLABORATOR + pull-request-review: + value: + id: 80 + node_id: MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: This is close to perfect! Please address the suggested inline change. + state: CHANGES_REQUESTED + html_url: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 + _links: + html: + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/12 + submitted_at: '2019-11-17T17:43:43Z' + commit_id: ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091 + author_association: COLLABORATOR + pull-request-review-4: + value: + id: 80 + node_id: MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Here is the body for the review. + state: APPROVED + html_url: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 + _links: + html: + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/12 + submitted_at: '2019-11-17T17:43:43Z' + commit_id: ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091 + author_association: COLLABORATOR + pull-request-review-5: + value: + id: 80 + node_id: MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: This is close to perfect! Please address the suggested inline change. + And add more about this. + state: CHANGES_REQUESTED + html_url: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 + _links: + html: + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/12 + submitted_at: '2019-11-17T17:43:43Z' + commit_id: ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091 + author_association: COLLABORATOR + review-comment-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + pull_request_review_id: 42 + id: 10 + node_id: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + diff_hunk: "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + path: file1.txt + position: 1 + original_position: 4 + commit_id: 6dcb09b5b57875f334f61aebed695e2e4193db5e + original_commit_id: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + in_reply_to_id: 8 + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Great stuff! + created_at: '2011-04-14T16:00:49Z' + updated_at: '2011-04-14T16:00:49Z' + html_url: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/1 + author_association: NONE + _links: + self: + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + html: + href: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/1 + pull-request-review-3: + value: + id: 80 + node_id: MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + body: Here is the body for the review. + state: DISMISSED + html_url: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 + _links: + html: + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + pull_request: + href: https://api.github.com/repos/octocat/Hello-World/pulls/12 + submitted_at: '2019-11-17T17:43:43Z' + commit_id: ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091 + author_association: COLLABORATOR + content-file: + value: + type: file + encoding: base64 + size: 5362 + name: README.md + path: README.md + content: encoded content ... + sha: 3d21ec53a331a6f037a91c368710b99387d012c1 + url: https://api.github.com/repos/octokit/octokit.rb/contents/README.md + git_url: https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1 + html_url: https://github.com/octokit/octokit.rb/blob/master/README.md + download_url: https://raw.githubusercontent.com/octokit/octokit.rb/master/README.md + _links: + git: https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1 + self: https://api.github.com/repos/octokit/octokit.rb/contents/README.md + html: https://github.com/octokit/octokit.rb/blob/master/README.md + release-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/releases/1 + html_url: https://github.com/octocat/Hello-World/releases/v1.0.0 + assets_url: https://api.github.com/repos/octocat/Hello-World/releases/1/assets + upload_url: https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label} + tarball_url: https://api.github.com/repos/octocat/Hello-World/tarball/v1.0.0 + zipball_url: https://api.github.com/repos/octocat/Hello-World/zipball/v1.0.0 + id: 1 + node_id: MDc6UmVsZWFzZTE= + tag_name: v1.0.0 + target_commitish: master + name: v1.0.0 + body: Description of the release + draft: false + prerelease: false + immutable: false + created_at: '2013-02-27T19:35:32Z' + published_at: '2013-02-27T19:35:32Z' + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assets: + - url: https://api.github.com/repos/octocat/Hello-World/releases/assets/1 + browser_download_url: https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip + id: 1 + node_id: MDEyOlJlbGVhc2VBc3NldDE= + name: example.zip + label: short description + state: uploaded + content_type: application/zip + size: 1024 + digest: sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255 + download_count: 42 + created_at: '2013-02-27T19:35:32Z' + updated_at: '2013-02-27T19:35:32Z' + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + release: + value: + url: https://api.github.com/repos/octocat/Hello-World/releases/1 + html_url: https://github.com/octocat/Hello-World/releases/v1.0.0 + assets_url: https://api.github.com/repos/octocat/Hello-World/releases/1/assets + upload_url: https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label} + tarball_url: https://api.github.com/repos/octocat/Hello-World/tarball/v1.0.0 + zipball_url: https://api.github.com/repos/octocat/Hello-World/zipball/v1.0.0 + discussion_url: https://github.com/octocat/Hello-World/discussions/90 + id: 1 + node_id: MDc6UmVsZWFzZTE= + tag_name: v1.0.0 + target_commitish: master + name: v1.0.0 + body: Description of the release + draft: false + prerelease: false + immutable: false + created_at: '2013-02-27T19:35:32Z' + published_at: '2013-02-27T19:35:32Z' + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + assets: + - url: https://api.github.com/repos/octocat/Hello-World/releases/assets/1 + browser_download_url: https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip + id: 1 + node_id: MDEyOlJlbGVhc2VBc3NldDE= + name: example.zip + label: short description + state: uploaded + content_type: application/zip + size: 1024 + digest: sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255 + download_count: 42 + created_at: '2013-02-27T19:35:32Z' + updated_at: '2013-02-27T19:35:32Z' + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + release-asset: + value: + url: https://api.github.com/repos/octocat/Hello-World/releases/assets/1 + browser_download_url: https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip + id: 1 + node_id: MDEyOlJlbGVhc2VBc3NldDE= + name: example.zip + label: short description + state: uploaded + content_type: application/zip + size: 1024 + digest: sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255 + download_count: 42 + created_at: '2013-02-27T19:35:32Z' + updated_at: '2013-02-27T19:35:32Z' + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + release-notes-content: + value: + name: Release v1.0.0 is now available! + body: "##Changes in Release v1.0.0 ... ##Contributors @monalisa" + release-asset-items: + value: + - url: https://api.github.com/repos/octocat/Hello-World/releases/assets/1 + browser_download_url: https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip + id: 1 + node_id: MDEyOlJlbGVhc2VBc3NldDE= + name: example.zip + label: short description + state: uploaded + content_type: application/zip + size: 1024 + digest: sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255 + download_count: 42 + created_at: '2013-02-27T19:35:32Z' + updated_at: '2013-02-27T19:35:32Z' + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + release-asset-response-for-successful-upload: + value: + url: https://api.github.com/repos/octocat/Hello-World/releases/assets/1 + browser_download_url: https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip + id: 1 + node_id: MDEyOlJlbGVhc2VBc3NldDE= + name: example.zip + label: short description + state: uploaded + content_type: application/zip + size: 1024 + digest: sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255 + download_count: 42 + created_at: '2013-02-27T19:35:32Z' + updated_at: '2013-02-27T19:35:32Z' + uploader: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository-rule-items: + value: + - type: commit_message_pattern + ruleset_source_type: Repository + ruleset_source: monalisa/my-repo + ruleset_id: 42 + parameters: + operator: starts_with + pattern: issue + - type: commit_author_email_pattern + ruleset_source_type: Organization + ruleset_source: my-org + ruleset_id: 73 + parameters: + operator: contains + pattern: github + repository-ruleset-items: + value: + - id: 42 + name: super cool ruleset + source_type: Repository + source: monalisa/my-repo + enforcement: enabled + node_id: RRS_lACkVXNlcgQB + _links: + self: + href: https://api.github.com/repos/monalisa/my-repo/rulesets/42 + html: + href: https://github.com/monalisa/my-repo/rules/42 + created_at: '2023-07-15T08:43:03Z' + updated_at: '2023-08-23T16:29:47Z' + - id: 314 + name: Another ruleset + source_type: Repository + source: monalisa/my-repo + enforcement: enabled + node_id: RRS_lACkVXNlcgQQ + _links: + self: + href: https://api.github.com/repos/monalisa/my-repo/rulesets/314 + html: + href: https://github.com/monalisa/my-repo/rules/314 + created_at: '2023-08-15T08:43:03Z' + updated_at: '2023-09-23T16:29:47Z' + repository-ruleset: + value: + id: 42 + name: super cool ruleset + target: branch + source_type: Repository + source: monalisa/my-repo + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + node_id: RRS_lACkVXNlcgQB + _links: + self: + href: https://api.github.com/repos/monalisa/my-repo/rulesets/42 + html: + href: https://github.com/monalisa/my-repo/rules/42 + created_at: '2023-07-15T08:43:03Z' + updated_at: '2023-08-23T16:29:47Z' + repository-ruleset-version-with-state: + value: + - version_id: 3 + actor: + id: 1 + type: User + updated_at: 2024-010-23T16:29:47Z + state: + id: 42 + name: super cool ruleset + target: branch + source_type: Repository + source: monalisa/my-repo + enforcement: active + bypass_actors: + - actor_id: 234 + actor_type: Team + bypass_mode: always + conditions: + ref_name: + include: + - refs/heads/main + - refs/heads/master + exclude: + - refs/heads/dev* + rules: + - type: commit_author_email_pattern + parameters: + operator: contains + pattern: github + secret-scanning-alert-list: + value: + - number: 2 + created_at: '2020-11-06T18:48:51Z' + url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2 + html_url: https://github.com/owner/private-repo/security/secret-scanning/2 + locations_url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2/locations + state: resolved + resolution: false_positive + resolved_at: '2020-11-07T02:47:13Z' + resolved_by: + login: monalisa + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://alambic.github.com/avatars/u/2? + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + secret_type: adafruit_io_key + secret_type_display_name: Adafruit IO Key + secret: aio_XXXXXXXXXXXXXXXXXXXXXXXXXXXX + push_protection_bypassed_by: + login: monalisa + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://alambic.github.com/avatars/u/2? + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + push_protection_bypassed: true + push_protection_bypassed_at: '2020-11-06T21:48:51Z' + push_protection_bypass_request_reviewer: + login: octocat + id: 3 + node_id: MDQ6VXNlcjI= + avatar_url: https://alambic.github.com/avatars/u/3? + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + push_protection_bypass_request_reviewer_comment: Example response + push_protection_bypass_request_comment: Example comment + push_protection_bypass_request_html_url: https://github.com/owner/repo/secret_scanning_exemptions/1 + resolution_comment: Example comment + validity: inactive + publicly_leaked: false + multi_repo: false + is_base64_encoded: false + first_location_detected: + path: "/example/secrets.txt" + start_line: 1 + end_line: 1 + start_column: 1 + end_column: 64 + blob_sha: af5626b4a114abcb82d63db7c8082c3c4756e51b + blob_url: https://api.github.com/repos/octocat/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b + commit_sha: f14d7debf9775f957cf4f1e8176da0786431f72b + commit_url: https://api.github.com/repos/octocat/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b + has_more_locations: true + assigned_to: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + secret-scanning-alert-open: + value: + number: 42 + created_at: '2020-11-06T18:18:30Z' + url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42 + html_url: https://github.com/owner/private-repo/security/secret-scanning/42 + locations_url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42/locations + state: open + resolution: + resolved_at: + resolved_by: + secret_type: mailchimp_api_key + secret_type_display_name: Mailchimp API Key + secret: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2 + push_protection_bypassed_by: + push_protection_bypassed: false + push_protection_bypassed_at: + push_protection_bypass_request_reviewer: + push_protection_bypass_request_reviewer_comment: + push_protection_bypass_request_comment: + push_protection_bypass_request_html_url: + resolution_comment: + validity: unknown + publicly_leaked: false + multi_repo: false + secret-scanning-alert-resolved: + value: + number: 42 + created_at: '2020-11-06T18:18:30Z' + url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42 + html_url: https://github.com/owner/private-repo/security/secret-scanning/42 + locations_url: https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42/locations + state: resolved + resolution: used_in_tests + resolved_at: '2020-11-16T22:42:07Z' + resolved_by: + login: monalisa + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://alambic.github.com/avatars/u/2? + gravatar_id: '' + url: https://api.github.com/users/monalisa + html_url: https://github.com/monalisa + followers_url: https://api.github.com/users/monalisa/followers + following_url: https://api.github.com/users/monalisa/following{/other_user} + gists_url: https://api.github.com/users/monalisa/gists{/gist_id} + starred_url: https://api.github.com/users/monalisa/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/monalisa/subscriptions + organizations_url: https://api.github.com/users/monalisa/orgs + repos_url: https://api.github.com/users/monalisa/repos + events_url: https://api.github.com/users/monalisa/events{/privacy} + received_events_url: https://api.github.com/users/monalisa/received_events + type: User + site_admin: true + secret_type: mailchimp_api_key + secret_type_display_name: Mailchimp API Key + secret: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2 + push_protection_bypassed: false + push_protection_bypassed_by: + push_protection_bypassed_at: + push_protection_bypass_request_reviewer: + push_protection_bypass_request_reviewer_comment: + push_protection_bypass_request_comment: + push_protection_bypass_request_html_url: + resolution_comment: Example comment + validity: unknown + publicly_leaked: false + multi_repo: false + assigned_to: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://alambic.github.com/avatars/u/1? + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + secret-scanning-location-list: + value: + - type: commit + details: + path: "/example/secrets.txt" + start_line: 1 + end_line: 1 + start_column: 1 + end_column: 64 + blob_sha: af5626b4a114abcb82d63db7c8082c3c4756e51b + blob_url: https://api.github.com/repos/octocat/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b + commit_sha: f14d7debf9775f957cf4f1e8176da0786431f72b + commit_url: https://api.github.com/repos/octocat/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b + - type: wiki_commit + details: + path: "/example/Home.md" + start_line: 1 + end_line: 1 + start_column: 1 + end_column: 64 + blob_sha: af5626b4a114abcb82d63db7c8082c3c4756e51b + page_url: https://github.com/octocat/Hello-World/wiki/Home/302c0b7e200761c9dd9b57e57db540ee0b4293a5 + commit_sha: 302c0b7e200761c9dd9b57e57db540ee0b4293a5 + commit_url: https://github.com/octocat/Hello-World/wiki/_compare/302c0b7e200761c9dd9b57e57db540ee0b4293a5 + - type: issue_title + details: + issue_title_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + - type: issue_body + details: + issue_body_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 + - type: issue_comment + details: + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + - type: discussion_title + details: + discussion_title_url: https://github.com/community/community/discussions/39082 + - type: discussion_body + details: + discussion_body_url: https://github.com/community/community/discussions/39082#discussion-4566270 + - type: discussion_comment + details: + discussion_comment_url: https://github.com/community/community/discussions/39082#discussioncomment-4158232 + - type: pull_request_title + details: + pull_request_title_url: https://api.github.com/repos/octocat/Hello-World/pulls/2846 + - type: pull_request_body + details: + pull_request_body_url: https://api.github.com/repos/octocat/Hello-World/pulls/2846 + - type: pull_request_comment + details: + pull_request_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments/1825855898 + - type: pull_request_review + details: + pull_request_review_url: https://api.github.com/repos/octocat/Hello-World/pulls/2846/reviews/80 + - type: pull_request_review_comment + details: + pull_request_review_comment_url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/12 + secret-scanning-push-protection-bypass: + value: + reason: will_fix_later + expire_at: '2020-11-06T18:18:30Z' + token_type: mailchimp_api_key + secret-scanning-scan-history: + value: + incremental_scans: + - type: git + status: completed + completed_at: '2024-10-07T02:47:00Z' + backfill_scans: + - type: git + status: completed + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:50:00Z' + - type: issue + status: completed + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:49:00Z' + - type: discussion + status: completed + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:48:00Z' + pattern_update_scans: + - type: discussion + status: in_progress + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:51:00Z' + custom_pattern_backfill_scans: + - type: git + status: completed + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:55:00Z' + pattern_slug: my-custom-pattern + pattern_scope: enterprise + - type: git + status: completed + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:55:00Z' + pattern_slug: my-custom-pattern + pattern_scope: organization + repository-advisory: + value: + ghsa_id: GHSA-abcd-1234-efgh + cve_id: CVE-2050-00000 + url: https://api.github.com/repos/repo/a-package/security-advisories/GHSA-abcd-1234-efgh + html_url: https://github.com/repo/a-package/security/advisories/GHSA-abcd-1234-efgh + summary: A short summary of the advisory. + description: A detailed description of what the advisory entails. + severity: critical + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + publisher: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + identifiers: + - type: GHSA + value: GHSA-abcd-1234-efgh + - type: CVE + value: CVE-2050-00000 + state: published + created_at: '2020-01-01T00:00:00Z' + updated_at: '2020-01-02T00:00:00Z' + published_at: '2020-01-03T00:00:00Z' + closed_at: + withdrawn_at: + submission: + vulnerabilities: + - package: + ecosystem: pip + name: a-package + vulnerable_version_range: ">= 1.0.0, < 1.0.1" + patched_versions: 1.0.1 + vulnerable_functions: + - function1 + - package: + ecosystem: pip + name: another-package + vulnerable_version_range: ">= 1.0.0, < 1.0.2" + patched_versions: 1.0.2 + vulnerable_functions: + - function2 + cvss: + vector_string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H + score: 9.8 + cvss_severities: + cvss_v3: + vector_string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H + score: 9.8 + cvss_v4: + vector_string: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N + score: 9.3 + cwes: + - cwe_id: CWE-123 + name: A CWE + cwe_ids: + - CWE-123 + credits: + - login: octocat + type: analyst + credits_detailed: + - user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + type: analyst + state: accepted + collaborating_users: + - login: octokitten + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octokitten_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octokitten + html_url: https://github.com/octokitten + followers_url: https://api.github.com/users/octokitten/followers + following_url: https://api.github.com/users/octokitten/following{/other_user} + gists_url: https://api.github.com/users/octokitten/gists{/gist_id} + starred_url: https://api.github.com/users/octokitten/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octokitten/subscriptions + organizations_url: https://api.github.com/users/octokitten/orgs + repos_url: https://api.github.com/users/octokitten/repos + events_url: https://api.github.com/users/octokitten/events{/privacy} + received_events_url: https://api.github.com/users/octokitten/received_events + type: User + site_admin: false + collaborating_teams: + - name: Justice League + id: 1 + node_id: MDQ6VGVhbTE= + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + permission: admin + parent: + private_fork: + id: 217723378 + node_id: MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg= + name: octo-repo-ghsa-abcd-1234-efgh + full_name: octo-org/octo-repo-ghsa-abcd-1234-efgh + owner: + login: octo-org + id: 6811672 + node_id: MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI= + avatar_url: https://avatars3.githubusercontent.com/u/6811672?v=4 + gravatar_id: '' + url: https://api.github.com/users/octo-org + html_url: https://github.com/octo-org + followers_url: https://api.github.com/users/octo-org/followers + following_url: https://api.github.com/users/octo-org/following{/other_user} + gists_url: https://api.github.com/users/octo-org/gists{/gist_id} + starred_url: https://api.github.com/users/octo-org/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octo-org/subscriptions + organizations_url: https://api.github.com/users/octo-org/orgs + repos_url: https://api.github.com/users/octo-org/repos + events_url: https://api.github.com/users/octo-org/events{/privacy} + received_events_url: https://api.github.com/users/octo-org/received_events + type: Organization + site_admin: false + private: true + html_url: https://github.com/octo-org/octo-repo-ghsa-abcd-1234-efgh + description: + fork: false + url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh + archive_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/assignees{/user} + blobs_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/blobs{/sha} + branches_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/branches{/branch} + collaborators_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/comments{/number} + commits_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/commits{/sha} + compare_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/compare/{base}...{head} + contents_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/contents/{+path} + contributors_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/contributors + deployments_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/deployments + downloads_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/downloads + events_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/events + forks_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/forks + git_commits_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/tags{/sha} + hooks_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/hooks + issue_comment_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/issues/events{/number} + issues_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/issues{/number} + keys_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/keys{/key_id} + labels_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/labels{/name} + languages_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/languages + merges_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/merges + milestones_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/milestones{/number} + notifications_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/pulls{/number} + releases_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/releases{/id} + stargazers_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/stargazers + statuses_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/statuses/{sha} + subscribers_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/subscribers + subscription_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/subscription + tags_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/tags + teams_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/teams + trees_url: https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/trees{/sha} + repository-advisory-pvr: + value: + ghsa_id: GHSA-abcd-1234-efgh + cve_id: CVE-2050-00000 + url: https://api.github.com/repos/repo/a-package/security-advisories/GHSA-abcd-1234-efgh + html_url: https://github.com/repo/a-package/security/advisories/GHSA-abcd-1234-efgh + summary: A newly discovered vulnerability + description: A more in-depth description of what the problem is. + severity: high + author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + publisher: + identifiers: + - type: GHSA + value: GHSA-abcd-1234-efgh + - type: CVE + value: + state: triage + created_at: '2020-01-01T00:00:00Z' + updated_at: '2020-01-02T00:00:00Z' + published_at: + closed_at: + withdrawn_at: + submission: + accepted: false + vulnerabilities: + - package: + ecosystem: npm + name: a-package + vulnerable_version_range: "< 1.0.0" + patched_versions: 1.0.0 + vulnerable_functions: + - important_function + cvss: + cvss_severities: + cvss_v3: + cvss_v4: + cwes: + - cwe_id: CWE-123 + name: A CWE + cwe_ids: + - CWE-123 + credits: + - login: octocat + type: finder + credits_detailed: + - user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + type: finder + state: accepted + collaborating_users: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + collaborating_teams: + - name: Justice League + id: 1 + node_id: MDQ6VGVhbTE= + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + permission: admin + parent: + private_fork: + simple-user-items-default-response: + summary: Default response + value: + - login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + stargazer-items-alternative-response-with-star-creation-timestamps: + summary: Alternative response with star creation timestamps + value: + - starred_at: '2011-01-16T19:06:43Z' + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + code-frequency-stat-items: + value: + - - 1302998400 + - 1124 + - -435 + commit-activity-items: + value: + - days: + - 0 + - 3 + - 26 + - 20 + - 39 + - 1 + - 0 + total: 89 + week: 1336280400 + contributor-activity-items: + value: + - author: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + total: 135 + weeks: + - w: 1367712000 + a: 6898 + d: 77 + c: 10 + participation-stats: + value: + all: + - 11 + - 21 + - 15 + - 2 + - 8 + - 1 + - 8 + - 23 + - 17 + - 21 + - 11 + - 10 + - 33 + - 91 + - 38 + - 34 + - 22 + - 23 + - 32 + - 3 + - 43 + - 87 + - 71 + - 18 + - 13 + - 5 + - 13 + - 16 + - 66 + - 27 + - 12 + - 45 + - 110 + - 117 + - 13 + - 8 + - 18 + - 9 + - 19 + - 26 + - 39 + - 12 + - 20 + - 31 + - 46 + - 91 + - 45 + - 10 + - 24 + - 9 + - 29 + - 7 + owner: + - 3 + - 2 + - 3 + - 0 + - 2 + - 0 + - 5 + - 14 + - 7 + - 9 + - 1 + - 5 + - 0 + - 48 + - 19 + - 2 + - 0 + - 1 + - 10 + - 2 + - 23 + - 40 + - 35 + - 8 + - 8 + - 2 + - 10 + - 6 + - 30 + - 0 + - 2 + - 9 + - 53 + - 104 + - 3 + - 3 + - 10 + - 4 + - 7 + - 11 + - 21 + - 4 + - 4 + - 22 + - 26 + - 63 + - 11 + - 2 + - 14 + - 1 + - 10 + - 3 + code-frequency-stat-items-2: + value: + - - 0 + - 0 + - 5 + - - 0 + - 1 + - 43 + - - 0 + - 2 + - 21 + status: + value: + url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + avatar_url: https://github.com/images/error/hubot_happy.gif + id: 1 + node_id: MDY6U3RhdHVzMQ== + state: success + description: Build has completed successfully + target_url: https://ci.example.com/1000/output + context: continuous-integration/jenkins + created_at: '2012-07-20T01:19:13Z' + updated_at: '2012-07-20T01:19:13Z' + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository-subscription-response-if-you-subscribe-to-the-repository: + value: + subscribed: true + ignored: false + reason: + created_at: '2012-10-06T21:34:12Z' + url: https://api.github.com/repos/octocat/example/subscription + repository_url: https://api.github.com/repos/octocat/example + repository-subscription: + value: + subscribed: true + ignored: false + reason: + created_at: '2012-10-06T21:34:12Z' + url: https://api.github.com/repos/octocat/example/subscription + repository_url: https://api.github.com/repos/octocat/example + tag-items: + value: + - name: v0.1 + commit: + sha: c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc + url: https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc + zipball_url: https://github.com/octocat/Hello-World/zipball/v0.1 + tarball_url: https://github.com/octocat/Hello-World/tarball/v0.1 + node_id: MDQ6VXNlcjE= + tag-protection-items: + value: + - id: 2 + pattern: v1.* + tag-protection: + value: + enabled: true + topic: + value: + names: + - octocat + - atom + - electron + - api + clone-traffic: + value: + count: 173 + uniques: 128 + clones: + - timestamp: '2016-10-10T00:00:00Z' + count: 2 + uniques: 1 + - timestamp: '2016-10-11T00:00:00Z' + count: 17 + uniques: 16 + - timestamp: '2016-10-12T00:00:00Z' + count: 21 + uniques: 15 + - timestamp: '2016-10-13T00:00:00Z' + count: 8 + uniques: 7 + - timestamp: '2016-10-14T00:00:00Z' + count: 5 + uniques: 5 + - timestamp: '2016-10-15T00:00:00Z' + count: 2 + uniques: 2 + - timestamp: '2016-10-16T00:00:00Z' + count: 8 + uniques: 7 + - timestamp: '2016-10-17T00:00:00Z' + count: 26 + uniques: 15 + - timestamp: '2016-10-18T00:00:00Z' + count: 19 + uniques: 17 + - timestamp: '2016-10-19T00:00:00Z' + count: 19 + uniques: 14 + - timestamp: '2016-10-20T00:00:00Z' + count: 19 + uniques: 15 + - timestamp: '2016-10-21T00:00:00Z' + count: 9 + uniques: 7 + - timestamp: '2016-10-22T00:00:00Z' + count: 5 + uniques: 5 + - timestamp: '2016-10-23T00:00:00Z' + count: 6 + uniques: 5 + - timestamp: '2016-10-24T00:00:00Z' + count: 7 + uniques: 5 + content-traffic-items: + value: + - path: "/github/hubot" + title: 'github/hubot: A customizable life embetterment robot.' + count: 3542 + uniques: 2225 + - path: "/github/hubot/blob/master/docs/scripting.md" + title: hubot/scripting.md at master · github/hubot · GitHub + count: 1707 + uniques: 804 + - path: "/github/hubot/tree/master/docs" + title: hubot/docs at master · github/hubot · GitHub + count: 685 + uniques: 435 + - path: "/github/hubot/tree/master/src" + title: hubot/src at master · github/hubot · GitHub + count: 577 + uniques: 347 + - path: "/github/hubot/blob/master/docs/index.md" + title: hubot/index.md at master · github/hubot · GitHub + count: 379 + uniques: 259 + - path: "/github/hubot/blob/master/docs/adapters.md" + title: hubot/adapters.md at master · github/hubot · GitHub + count: 354 + uniques: 201 + - path: "/github/hubot/tree/master/examples" + title: hubot/examples at master · github/hubot · GitHub + count: 340 + uniques: 260 + - path: "/github/hubot/blob/master/docs/deploying/heroku.md" + title: hubot/heroku.md at master · github/hubot · GitHub + count: 324 + uniques: 217 + - path: "/github/hubot/blob/master/src/robot.coffee" + title: hubot/robot.coffee at master · github/hubot · GitHub + count: 293 + uniques: 191 + - path: "/github/hubot/blob/master/LICENSE.md" + title: hubot/LICENSE.md at master · github/hubot · GitHub + count: 281 + uniques: 222 + referrer-traffic-items: + value: + - referrer: Google + count: 4 + uniques: 3 + - referrer: stackoverflow.com + count: 2 + uniques: 2 + - referrer: eggsonbread.com + count: 1 + uniques: 1 + - referrer: yandex.ru + count: 1 + uniques: 1 + view-traffic: + value: + count: 14850 + uniques: 3782 + views: + - timestamp: '2016-10-10T00:00:00Z' + count: 440 + uniques: 143 + - timestamp: '2016-10-11T00:00:00Z' + count: 1308 + uniques: 414 + - timestamp: '2016-10-12T00:00:00Z' + count: 1486 + uniques: 452 + - timestamp: '2016-10-13T00:00:00Z' + count: 1170 + uniques: 401 + - timestamp: '2016-10-14T00:00:00Z' + count: 868 + uniques: 266 + - timestamp: '2016-10-15T00:00:00Z' + count: 495 + uniques: 157 + - timestamp: '2016-10-16T00:00:00Z' + count: 524 + uniques: 175 + - timestamp: '2016-10-17T00:00:00Z' + count: 1263 + uniques: 412 + - timestamp: '2016-10-18T00:00:00Z' + count: 1402 + uniques: 417 + - timestamp: '2016-10-19T00:00:00Z' + count: 1394 + uniques: 424 + - timestamp: '2016-10-20T00:00:00Z' + count: 1492 + uniques: 448 + - timestamp: '2016-10-21T00:00:00Z' + count: 1153 + uniques: 332 + - timestamp: '2016-10-22T00:00:00Z' + count: 566 + uniques: 168 + - timestamp: '2016-10-23T00:00:00Z' + count: 675 + uniques: 184 + - timestamp: '2016-10-24T00:00:00Z' + count: 614 + uniques: 237 + minimal-repository: + value: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + template_repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World-Template + full_name: octocat/Hello-World-Template + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World-Template + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World-Template + archive_url: https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World-Template/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World-Template/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World-Template/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World-Template/downloads + events_url: https://api.github.com/repos/octocat/Hello-World-Template/events + forks_url: https://api.github.com/repos/octocat/Hello-World-Template/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World-Template.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World-Template/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World-Template/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World-Template/languages + merges_url: https://api.github.com/repos/octocat/Hello-World-Template/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World-Template/releases{/id} + ssh_url: git@github.com:octocat/Hello-World-Template.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World-Template/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World-Template/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World-Template/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World-Template/tags + teams_url: https://api.github.com/repos/octocat/Hello-World-Template/teams + trees_url: https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World-Template.git + mirror_url: git:git.example.com/octocat/Hello-World-Template + hooks_url: https://api.github.com/repos/octocat/Hello-World-Template/hooks + svn_url: https://svn.github.com/octocat/Hello-World-Template + homepage: https://github.com + language: + forks: 9 + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues: 0 + open_issues_count: 0 + is_template: true + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + allow_forking: true + subscribers_count: 42 + network_count: 0 + public-repository-items: + value: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + hooks_url: http://api.github.com/repos/octocat/Hello-World/hooks + code-search-result-item-paginated: + value: + total_count: 7 + incomplete_results: false + items: + - name: classes.js + path: src/attributes/classes.js + sha: d7212f9dee2dcc18f084d7df8f417b80846ded5a + url: https://api.github.com/repositories/167174/contents/src/attributes/classes.js?ref=825ac3773694e0cd23ee74895fd5aeb535b27da4 + git_url: https://api.github.com/repositories/167174/git/blobs/d7212f9dee2dcc18f084d7df8f417b80846ded5a + html_url: https://github.com/jquery/jquery/blob/825ac3773694e0cd23ee74895fd5aeb535b27da4/src/attributes/classes.js + repository: + id: 167174 + node_id: MDEwOlJlcG9zaXRvcnkxNjcxNzQ= + name: jquery + full_name: jquery/jquery + owner: + login: jquery + id: 70142 + node_id: MDQ6VXNlcjcwMTQy + avatar_url: https://0.gravatar.com/avatar/6906f317a4733f4379b06c32229ef02f?d=https%3A%2F%2Fidenticons.github.com%2Ff426f04f2f9813718fb806b30e0093de.png + gravatar_id: '' + url: https://api.github.com/users/jquery + html_url: https://github.com/jquery + followers_url: https://api.github.com/users/jquery/followers + following_url: https://api.github.com/users/jquery/following{/other_user} + gists_url: https://api.github.com/users/jquery/gists{/gist_id} + starred_url: https://api.github.com/users/jquery/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/jquery/subscriptions + organizations_url: https://api.github.com/users/jquery/orgs + repos_url: https://api.github.com/users/jquery/repos + events_url: https://api.github.com/users/jquery/events{/privacy} + received_events_url: https://api.github.com/users/jquery/received_events + type: Organization + site_admin: false + private: false + html_url: https://github.com/jquery/jquery + description: jQuery JavaScript Library + fork: false + url: https://api.github.com/repos/jquery/jquery + forks_url: https://api.github.com/repos/jquery/jquery/forks + keys_url: https://api.github.com/repos/jquery/jquery/keys{/key_id} + collaborators_url: https://api.github.com/repos/jquery/jquery/collaborators{/collaborator} + teams_url: https://api.github.com/repos/jquery/jquery/teams + hooks_url: https://api.github.com/repos/jquery/jquery/hooks + issue_events_url: https://api.github.com/repos/jquery/jquery/issues/events{/number} + events_url: https://api.github.com/repos/jquery/jquery/events + assignees_url: https://api.github.com/repos/jquery/jquery/assignees{/user} + branches_url: https://api.github.com/repos/jquery/jquery/branches{/branch} + tags_url: https://api.github.com/repos/jquery/jquery/tags + blobs_url: https://api.github.com/repos/jquery/jquery/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/jquery/jquery/git/tags{/sha} + git_refs_url: https://api.github.com/repos/jquery/jquery/git/refs{/sha} + trees_url: https://api.github.com/repos/jquery/jquery/git/trees{/sha} + statuses_url: https://api.github.com/repos/jquery/jquery/statuses/{sha} + languages_url: https://api.github.com/repos/jquery/jquery/languages + stargazers_url: https://api.github.com/repos/jquery/jquery/stargazers + contributors_url: https://api.github.com/repos/jquery/jquery/contributors + subscribers_url: https://api.github.com/repos/jquery/jquery/subscribers + subscription_url: https://api.github.com/repos/jquery/jquery/subscription + commits_url: https://api.github.com/repos/jquery/jquery/commits{/sha} + git_commits_url: https://api.github.com/repos/jquery/jquery/git/commits{/sha} + comments_url: https://api.github.com/repos/jquery/jquery/comments{/number} + issue_comment_url: https://api.github.com/repos/jquery/jquery/issues/comments/{number} + contents_url: https://api.github.com/repos/jquery/jquery/contents/{+path} + compare_url: https://api.github.com/repos/jquery/jquery/compare/{base}...{head} + merges_url: https://api.github.com/repos/jquery/jquery/merges + archive_url: https://api.github.com/repos/jquery/jquery/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/jquery/jquery/downloads + issues_url: https://api.github.com/repos/jquery/jquery/issues{/number} + pulls_url: https://api.github.com/repos/jquery/jquery/pulls{/number} + milestones_url: https://api.github.com/repos/jquery/jquery/milestones{/number} + notifications_url: https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/jquery/jquery/labels{/name} + deployments_url: http://api.github.com/repos/octocat/Hello-World/deployments + releases_url: http://api.github.com/repos/octocat/Hello-World/releases{/id} + score: 1 + commit-search-result-item-paginated: + value: + total_count: 1 + incomplete_results: false + items: + - url: https://api.github.com/repos/octocat/Spoon-Knife/commits/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f + sha: bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f + html_url: https://github.com/octocat/Spoon-Knife/commit/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f + comments_url: https://api.github.com/repos/octocat/Spoon-Knife/commits/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f/comments + commit: + url: https://api.github.com/repos/octocat/Spoon-Knife/git/commits/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f + author: + date: '2014-02-04T14:38:36-08:00' + name: The Octocat + email: octocat@nowhere.com + committer: + date: '2014-02-12T15:18:55-08:00' + name: The Octocat + email: octocat@nowhere.com + message: Create styles.css and updated README + tree: + url: https://api.github.com/repos/octocat/Spoon-Knife/git/trees/a639e96f9038797fba6e0469f94a4b0cc459fa68 + sha: a639e96f9038797fba6e0469f94a4b0cc459fa68 + comment_count: 8 + author: + login: octocat + id: 583231 + node_id: MDQ6VXNlcjU4MzIzMQ== + avatar_url: https://avatars.githubusercontent.com/u/583231?v=3 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + committer: {} + parents: + - url: https://api.github.com/repos/octocat/Spoon-Knife/commits/a30c19e3f13765a3b48829788bc1cb8b4e95cee4 + html_url: https://github.com/octocat/Spoon-Knife/commit/a30c19e3f13765a3b48829788bc1cb8b4e95cee4 + sha: a30c19e3f13765a3b48829788bc1cb8b4e95cee4 + repository: + id: 1300192 + node_id: MDEwOlJlcG9zaXRvcnkxMzAwMTky + name: Spoon-Knife + full_name: octocat/Spoon-Knife + owner: + login: octocat + id: 583231 + node_id: MDQ6VXNlcjU4MzIzMQ== + avatar_url: https://avatars.githubusercontent.com/u/583231?v=3 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Spoon-Knife + description: This repo is for demonstration purposes only. + fork: false + url: https://api.github.com/repos/octocat/Spoon-Knife + forks_url: https://api.github.com/repos/octocat/Spoon-Knife/forks + keys_url: https://api.github.com/repos/octocat/Spoon-Knife/keys{/key_id} + collaborators_url: https://api.github.com/repos/octocat/Spoon-Knife/collaborators{/collaborator} + teams_url: https://api.github.com/repos/octocat/Spoon-Knife/teams + hooks_url: https://api.github.com/repos/octocat/Spoon-Knife/hooks + issue_events_url: https://api.github.com/repos/octocat/Spoon-Knife/issues/events{/number} + events_url: https://api.github.com/repos/octocat/Spoon-Knife/events + assignees_url: https://api.github.com/repos/octocat/Spoon-Knife/assignees{/user} + branches_url: https://api.github.com/repos/octocat/Spoon-Knife/branches{/branch} + tags_url: https://api.github.com/repos/octocat/Spoon-Knife/tags + blobs_url: https://api.github.com/repos/octocat/Spoon-Knife/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Spoon-Knife/git/tags{/sha} + git_refs_url: https://api.github.com/repos/octocat/Spoon-Knife/git/refs{/sha} + trees_url: https://api.github.com/repos/octocat/Spoon-Knife/git/trees{/sha} + statuses_url: https://api.github.com/repos/octocat/Spoon-Knife/statuses/{sha} + languages_url: https://api.github.com/repos/octocat/Spoon-Knife/languages + stargazers_url: https://api.github.com/repos/octocat/Spoon-Knife/stargazers + contributors_url: https://api.github.com/repos/octocat/Spoon-Knife/contributors + subscribers_url: https://api.github.com/repos/octocat/Spoon-Knife/subscribers + subscription_url: https://api.github.com/repos/octocat/Spoon-Knife/subscription + commits_url: https://api.github.com/repos/octocat/Spoon-Knife/commits{/sha} + git_commits_url: https://api.github.com/repos/octocat/Spoon-Knife/git/commits{/sha} + comments_url: https://api.github.com/repos/octocat/Spoon-Knife/comments{/number} + issue_comment_url: https://api.github.com/repos/octocat/Spoon-Knife/issues/comments{/number} + contents_url: https://api.github.com/repos/octocat/Spoon-Knife/contents/{+path} + compare_url: https://api.github.com/repos/octocat/Spoon-Knife/compare/{base}...{head} + merges_url: https://api.github.com/repos/octocat/Spoon-Knife/merges + archive_url: https://api.github.com/repos/octocat/Spoon-Knife/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/octocat/Spoon-Knife/downloads + issues_url: https://api.github.com/repos/octocat/Spoon-Knife/issues{/number} + pulls_url: https://api.github.com/repos/octocat/Spoon-Knife/pulls{/number} + milestones_url: https://api.github.com/repos/octocat/Spoon-Knife/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Spoon-Knife/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/octocat/Spoon-Knife/labels{/name} + releases_url: https://api.github.com/repos/octocat/Spoon-Knife/releases{/id} + deployments_url: https://api.github.com/repos/octocat/Spoon-Knife/deployments + score: 1 + node_id: MDQ6VXNlcjU4MzIzMQ== + issue-search-result-item-paginated: + value: + total_count: 280 + incomplete_results: false + items: + - url: https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132 + repository_url: https://api.github.com/repos/batterseapower/pinyin-toolkit + labels_url: https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132/labels{/name} + comments_url: https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132/comments + events_url: https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132/events + html_url: https://github.com/batterseapower/pinyin-toolkit/issues/132 + id: 35802 + node_id: MDU6SXNzdWUzNTgwMg== + number: 132 + title: Line Number Indexes Beyond 20 Not Displayed + user: + login: Nick3C + id: 90254 + node_id: MDQ6VXNlcjkwMjU0 + avatar_url: https://secure.gravatar.com/avatar/934442aadfe3b2f4630510de416c5718?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png + gravatar_id: '' + url: https://api.github.com/users/Nick3C + html_url: https://github.com/Nick3C + followers_url: https://api.github.com/users/Nick3C/followers + following_url: https://api.github.com/users/Nick3C/following{/other_user} + gists_url: https://api.github.com/users/Nick3C/gists{/gist_id} + starred_url: https://api.github.com/users/Nick3C/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Nick3C/subscriptions + organizations_url: https://api.github.com/users/Nick3C/orgs + repos_url: https://api.github.com/users/Nick3C/repos + events_url: https://api.github.com/users/Nick3C/events{/privacy} + received_events_url: https://api.github.com/users/Nick3C/received_events + type: User + site_admin: true + labels: + - id: 4 + node_id: MDU6TGFiZWw0 + url: https://api.github.com/repos/batterseapower/pinyin-toolkit/labels/bug + name: bug + color: ff0000 + state: open + assignee: + milestone: + url: https://api.github.com/repos/octocat/Hello-World/milestones/1 + html_url: https://github.com/octocat/Hello-World/milestones/v1.0 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + id: 1002604 + node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== + number: 1 + state: open + title: v1.0 + description: Tracking milestone for version 1.0 + creator: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + open_issues: 4 + closed_issues: 8 + created_at: '2011-04-10T20:09:31Z' + updated_at: '2014-03-03T18:58:10Z' + closed_at: '2013-02-12T13:22:01Z' + due_on: '2012-10-09T23:39:01Z' + comments: 15 + created_at: '2009-07-12T20:10:41Z' + updated_at: '2009-07-19T09:23:43Z' + closed_at: + pull_request: + url: https://api/github.com/repos/octocat/Hello-World/pull/1347 + html_url: https://github.com/octocat/Hello-World/pull/1347 + diff_url: https://github.com/octocat/Hello-World/pull/1347.diff + patch_url: https://api.github.com/repos/octocat/Hello-World/pulls/1347 + body: "..." + score: 1 + locked: true + author_association: COLLABORATOR + state_reason: completed + label-search-result-item-paginated: + value: + total_count: 2 + incomplete_results: false + items: + - id: 418327088 + node_id: MDU6TGFiZWw0MTgzMjcwODg= + url: https://api.github.com/repos/octocat/linguist/labels/enhancement + name: enhancement + color: 84b6eb + default: true + description: New feature or request. + score: 1 + - id: 418327086 + node_id: MDU6TGFiZWw0MTgzMjcwODY= + url: https://api.github.com/repos/octocat/linguist/labels/bug + name: bug + color: ee0701 + default: true + description: Something isn't working. + score: 1 + repo-search-result-item-paginated: + value: + total_count: 40 + incomplete_results: false + items: + - id: 3081286 + node_id: MDEwOlJlcG9zaXRvcnkzMDgxMjg2 + name: Tetris + full_name: dtrupenn/Tetris + owner: + login: dtrupenn + id: 872147 + node_id: MDQ6VXNlcjg3MjE0Nw== + avatar_url: https://secure.gravatar.com/avatar/e7956084e75f239de85d3a31bc172ace?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png + gravatar_id: '' + url: https://api.github.com/users/dtrupenn + received_events_url: https://api.github.com/users/dtrupenn/received_events + type: User + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + site_admin: true + private: false + html_url: https://github.com/dtrupenn/Tetris + description: A C implementation of Tetris using Pennsim through LC4 + fork: false + url: https://api.github.com/repos/dtrupenn/Tetris + created_at: '2012-01-01T00:31:50Z' + updated_at: '2013-01-05T17:58:47Z' + pushed_at: '2012-01-01T00:37:02Z' + homepage: https://github.com + size: 524 + stargazers_count: 1 + watchers_count: 1 + language: Assembly + forks_count: 0 + open_issues_count: 0 + master_branch: master + default_branch: master + score: 1 + archive_url: https://api.github.com/repos/dtrupenn/Tetris/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/dtrupenn/Tetris/assignees{/user} + blobs_url: https://api.github.com/repos/dtrupenn/Tetris/git/blobs{/sha} + branches_url: https://api.github.com/repos/dtrupenn/Tetris/branches{/branch} + collaborators_url: https://api.github.com/repos/dtrupenn/Tetris/collaborators{/collaborator} + comments_url: https://api.github.com/repos/dtrupenn/Tetris/comments{/number} + commits_url: https://api.github.com/repos/dtrupenn/Tetris/commits{/sha} + compare_url: https://api.github.com/repos/dtrupenn/Tetris/compare/{base}...{head} + contents_url: https://api.github.com/repos/dtrupenn/Tetris/contents/{+path} + contributors_url: https://api.github.com/repos/dtrupenn/Tetris/contributors + deployments_url: https://api.github.com/repos/dtrupenn/Tetris/deployments + downloads_url: https://api.github.com/repos/dtrupenn/Tetris/downloads + events_url: https://api.github.com/repos/dtrupenn/Tetris/events + forks_url: https://api.github.com/repos/dtrupenn/Tetris/forks + git_commits_url: https://api.github.com/repos/dtrupenn/Tetris/git/commits{/sha} + git_refs_url: https://api.github.com/repos/dtrupenn/Tetris/git/refs{/sha} + git_tags_url: https://api.github.com/repos/dtrupenn/Tetris/git/tags{/sha} + git_url: git:github.com/dtrupenn/Tetris.git + issue_comment_url: https://api.github.com/repos/dtrupenn/Tetris/issues/comments{/number} + issue_events_url: https://api.github.com/repos/dtrupenn/Tetris/issues/events{/number} + issues_url: https://api.github.com/repos/dtrupenn/Tetris/issues{/number} + keys_url: https://api.github.com/repos/dtrupenn/Tetris/keys{/key_id} + labels_url: https://api.github.com/repos/dtrupenn/Tetris/labels{/name} + languages_url: https://api.github.com/repos/dtrupenn/Tetris/languages + merges_url: https://api.github.com/repos/dtrupenn/Tetris/merges + milestones_url: https://api.github.com/repos/dtrupenn/Tetris/milestones{/number} + notifications_url: https://api.github.com/repos/dtrupenn/Tetris/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/dtrupenn/Tetris/pulls{/number} + releases_url: https://api.github.com/repos/dtrupenn/Tetris/releases{/id} + ssh_url: git@github.com:dtrupenn/Tetris.git + stargazers_url: https://api.github.com/repos/dtrupenn/Tetris/stargazers + statuses_url: https://api.github.com/repos/dtrupenn/Tetris/statuses/{sha} + subscribers_url: https://api.github.com/repos/dtrupenn/Tetris/subscribers + subscription_url: https://api.github.com/repos/dtrupenn/Tetris/subscription + tags_url: https://api.github.com/repos/dtrupenn/Tetris/tags + teams_url: https://api.github.com/repos/dtrupenn/Tetris/teams + trees_url: https://api.github.com/repos/dtrupenn/Tetris/git/trees{/sha} + clone_url: https://github.com/dtrupenn/Tetris.git + mirror_url: git:git.example.com/dtrupenn/Tetris + hooks_url: https://api.github.com/repos/dtrupenn/Tetris/hooks + svn_url: https://svn.github.com/dtrupenn/Tetris + forks: 1 + open_issues: 1 + watchers: 1 + has_issues: true + has_projects: true + has_pages: true + has_wiki: true + has_downloads: true + archived: true + disabled: true + visibility: private + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topic-search-result-item-paginated: + value: + total_count: 6 + incomplete_results: false + items: + - name: ruby + display_name: Ruby + short_description: Ruby is a scripting language designed for simplified + object-oriented programming. + description: Ruby was developed by Yukihiro "Matz" Matsumoto in 1995 with + the intent of having an easily readable programming language. It is integrated + with the Rails framework to create dynamic web-applications. Ruby's syntax + is similar to that of Perl and Python. + created_by: Yukihiro Matsumoto + released: December 21, 1995 + created_at: '2016-11-28T22:03:59Z' + updated_at: '2017-10-30T18:16:32Z' + featured: true + curated: true + score: 1 + - name: rails + display_name: Rails + short_description: Ruby on Rails (Rails) is a web application framework + written in Ruby. + description: Ruby on Rails (Rails) is a web application framework written + in Ruby. It is meant to help simplify the building of complex websites. + created_by: David Heinemeier Hansson + released: December 13 2005 + created_at: '2016-12-09T17:03:50Z' + updated_at: '2017-10-30T16:20:19Z' + featured: true + curated: true + score: 1 + - name: python + display_name: Python + short_description: Python is a dynamically typed programming language. + description: Python is a dynamically typed programming language designed + by Guido Van Rossum. Much like the programming language Ruby, Python was + designed to be easily read by programmers. Because of its large following + and many libraries, Python can be implemented and used to do anything + from webpages to scientific research. + created_by: Guido van Rossum + released: February 20, 1991 + created_at: '2016-12-07T00:07:02Z' + updated_at: '2017-10-27T22:45:43Z' + featured: true + curated: true + score: 1 + - name: jekyll + display_name: Jekyll + short_description: Jekyll is a simple, blog-aware static site generator. + description: Jekyll is a blog-aware, site generator written in Ruby. It + takes raw text files, runs it through a renderer and produces a publishable + static website. + created_by: Tom Preston-Werner + released: '2008' + created_at: '2016-12-16T21:53:08Z' + updated_at: '2017-10-27T19:00:24Z' + featured: true + curated: true + score: 1 + - name: sass + display_name: Sass + short_description: Sass is a stable extension to classic CSS. + description: Sass is a stylesheet language with a main implementation in + Ruby. It is an extension of CSS that makes improvements to the old stylesheet + format, such as being able to declare variables and using a cleaner nesting + syntax. + created_by: Hampton Catlin, Natalie Weizenbaum, Chris Eppstein + released: November 28, 2006 + created_at: '2016-12-16T21:53:45Z' + updated_at: '2018-01-16T16:30:40Z' + featured: true + curated: true + score: 1 + - name: homebrew + display_name: Homebrew + short_description: Homebrew is a package manager for macOS. + description: Homebrew is a package manager for Apple's macOS operating system. + It simplifies the installation of software and is popular in the Ruby + on Rails community. + created_by: Max Howell + released: '2009' + created_at: '2016-12-17T20:30:44Z' + updated_at: '2018-02-06T16:14:56Z' + featured: true + curated: true + score: 1 + user-search-result-item-paginated: + value: + total_count: 12 + incomplete_results: false + items: + - login: mojombo + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://secure.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png + gravatar_id: '' + url: https://api.github.com/users/mojombo + html_url: https://github.com/mojombo + followers_url: https://api.github.com/users/mojombo/followers + subscriptions_url: https://api.github.com/users/mojombo/subscriptions + organizations_url: https://api.github.com/users/mojombo/orgs + repos_url: https://api.github.com/users/mojombo/repos + received_events_url: https://api.github.com/users/mojombo/received_events + type: User + score: 1 + following_url: https://api.github.com/users/mojombo/following{/other_user} + gists_url: https://api.github.com/users/mojombo/gists{/gist_id} + starred_url: https://api.github.com/users/mojombo/starred{/owner}{/repo} + events_url: https://api.github.com/users/mojombo/events{/privacy} + site_admin: true + team-repository-alternative-response-with-extra-repository-information: + value: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + maintain: false + push: false + triage: false + pull: true + role_name: read + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + private-user-response-with-public-and-private-profile-information: + summary: Response with public and private profile information + value: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + name: monalisa octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: monatheoctocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + private_gists: 81 + total_private_repos: 100 + owned_private_repos: 100 + disk_usage: 10000 + collaborators: 8 + two_factor_authentication: true + plan: + name: Medium + space: 400 + private_repos: 20 + collaborators: 0 + private-user-response-with-public-profile-information: + summary: Response with public profile information + value: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + name: monalisa octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: monatheoctocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + private-user: + value: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + name: monalisa octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: monatheoctocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + private_gists: 81 + total_private_repos: 100 + owned_private_repos: 100 + disk_usage: 10000 + collaborators: 8 + two_factor_authentication: true + plan: + name: Medium + space: 400 + private_repos: 20 + collaborators: 0 + codespaces-user-public-key: + value: + key_id: '012345678912345678' + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + user-codespaces-secret: + value: + name: CODESPACE_GH_SECRET + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: selected + selected_repositories_url: https://api.github.com/user/codespaces/secrets/CODESPACE_GH_SECRET/repositories + user-export-details: + value: + state: succeeded + completed_at: '2022-01-01T14:59:22Z' + branch: codespace-monalisa-octocat-hello-world-g4wpq6h95q + sha: fd95a81ca01e48ede9f39c799ecbcef817b8a3b2 + id: latest + export_url: https://api.github.com/user/codespaces/:name/exports/latest + codespace-with-full-repository: + value: + id: 1 + name: monalisa-octocat-hello-world-g4wpq6h95q + environment_id: 26a7c758-7299-4a73-b978-5a92a7ae98a0 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + billable_owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + language: + forks_count: 9 + forks: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues_count: 0 + open_issues: 0 + is_template: false + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + pull: true + push: false + admin: false + allow_rebase_merge: true + template_repository: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World-Template + full_name: octocat/Hello-World-Template + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World-Template + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World-Template + archive_url: https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World-Template/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World-Template/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World-Template/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World-Template/downloads + events_url: https://api.github.com/repos/octocat/Hello-World-Template/events + forks_url: https://api.github.com/repos/octocat/Hello-World-Template/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World-Template.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World-Template/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World-Template/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World-Template/languages + merges_url: https://api.github.com/repos/octocat/Hello-World-Template/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World-Template/releases{/id} + ssh_url: git@github.com:octocat/Hello-World-Template.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World-Template/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World-Template/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World-Template/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World-Template/tags + teams_url: https://api.github.com/repos/octocat/Hello-World-Template/teams + trees_url: https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World-Template.git + mirror_url: git:git.example.com/octocat/Hello-World-Template + hooks_url: https://api.github.com/repos/octocat/Hello-World-Template/hooks + svn_url: https://svn.github.com/octocat/Hello-World-Template + homepage: https://github.com + language: + forks: 9 + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + watchers: 80 + size: 108 + default_branch: master + open_issues: 0 + open_issues_count: 0 + is_template: true + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + allow_forking: true + subscribers_count: 42 + network_count: 0 + organization: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: Organization + site_admin: false + parent: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + source: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + machine: + name: standardLinux + display_name: 4 cores, 16 GB RAM, 64 GB storage + operating_system: linux + storage_in_bytes: 68719476736 + memory_in_bytes: 17179869184 + cpus: 4 + prebuild: false + devcontainer_path: ".devcontainer/devcontainer.json" + created_at: '2021-10-14T00:53:30-06:00' + updated_at: '2021-10-14T00:53:32-06:00' + last_used_at: '2021-10-14T00:53:30-06:00' + state: Available + url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q + git_status: + ahead: 0 + behind: 0 + has_unpushed_changes: false + has_uncommitted_changes: false + ref: main + location: WestUs2 + idle_timeout_minutes: 60 + retention_period_minutes: 43200 + retention_expires_at: + web_url: https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev + machines_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines + start_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start + stop_url: https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls/1 + recent_folders: [] + template: + packages-for-user: + value: + - id: 197 + name: hello_docker + package_type: container + owner: + login: octocat + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.octocatusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: User + site_admin: false + version_count: 1 + visibility: private + url: https://api.github.com/orgs/github/packages/container/hello_docker + created_at: '2020-05-19T22:19:11Z' + updated_at: '2020-05-19T22:19:11Z' + html_url: https://github.com/orgs/github/packages/container/package/hello_docker + - id: 198 + name: goodbye_docker + package_type: container + owner: + login: github + id: 9919 + node_id: MDEyOk9yZ2FuaXphdGlvbjk5MTk= + avatar_url: https://avatars.githubusercontent.com/u/9919?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/github + followers_url: https://api.github.com/users/github/followers + following_url: https://api.github.com/users/github/following{/other_user} + gists_url: https://api.github.com/users/github/gists{/gist_id} + starred_url: https://api.github.com/users/github/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github/subscriptions + organizations_url: https://api.github.com/users/github/orgs + repos_url: https://api.github.com/users/github/repos + events_url: https://api.github.com/users/github/events{/privacy} + received_events_url: https://api.github.com/users/github/received_events + type: User + site_admin: false + version_count: 2 + visibility: private + url: https://api.github.com/user/octocat/packages/container/goodbye_docker + created_at: '2020-05-20T22:19:11Z' + updated_at: '2020-05-20T22:19:11Z' + html_url: https://github.com/user/octocat/packages/container/package/goodbye_docker + email-items-3: + value: + - email: octocat@github.com + primary: true + verified: true + visibility: private + email-items-2: + value: + - email: octocat@github.com + verified: true + primary: true + visibility: public + email-items: + value: + - email: octocat@octocat.org + primary: false + verified: false + visibility: public + - email: octocat@github.com + primary: false + verified: false + visibility: + - email: mona@github.com + primary: false + verified: false + visibility: + gpg-key-items: + value: + - id: 3 + name: Octocat's GPG Key + primary_key_id: 2 + key_id: 3262EFF25BA0D270 + public_key: xsBNBFayYZ... + emails: + - email: octocat@users.noreply.github.com + verified: true + subkeys: + - id: 4 + primary_key_id: 3 + key_id: 4A595D4C72EE49C7 + public_key: zsBNBFayYZ... + emails: [] + can_sign: false + can_encrypt_comms: true + can_encrypt_storage: true + can_certify: false + created_at: '2016-03-24T11:31:04-06:00' + expires_at: '2016-03-24T11:31:04-07:00' + revoked: false + can_sign: true + can_encrypt_comms: false + can_encrypt_storage: false + can_certify: true + created_at: '2016-03-24T11:31:04-06:00' + expires_at: '2016-03-24T11:31:04-07:00' + revoked: false + raw_key: string + gpg-key: + value: + id: 3 + name: Octocat's GPG Key + primary_key_id: 2 + key_id: 3262EFF25BA0D270 + public_key: xsBNBFayYZ... + emails: + - email: octocat@users.noreply.github.com + verified: true + subkeys: + - id: 4 + primary_key_id: 3 + key_id: 4A595D4C72EE49C7 + public_key: zsBNBFayYZ... + emails: [] + can_sign: false + can_encrypt_comms: true + can_encrypt_storage: true + can_certify: false + created_at: '2016-03-24T11:31:04-06:00' + expires_at: '2016-03-24T11:31:04-07:00' + revoked: false + can_sign: true + can_encrypt_comms: false + can_encrypt_storage: false + can_certify: true + created_at: '2016-03-24T11:31:04-06:00' + expires_at: '2016-03-24T11:31:04-07:00' + revoked: false + raw_key: '"-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v2\n\nmQENBFayYZ0BCAC4hScoJXXpyR+MXGcrBxElqw3FzCVvkViuyeko+Jp76QJhg8kr\nucRTxbnOoHfda/FmilEa/wxf9ch5/PSrrL26FxEoPHhJolp8fnIDLQeITn94NYdB\nZtnnEKslpPrG97qSUWIchvyqCPtvOb8+8fWvGx9K/ZWcEEdh1X8+WFR2jMENMeoX\nwxHWQoPnS7LpX/85/M7VUcJxvDVfv+eHsnQupmE5bGarKNih0oMe3LbdN3qA5PTz\nSCm6Iudar1VsQ+xTz08ymL7t4pnEtLguQ7EyatFHCjxNblv5RzxoL0tDgN3HqoDz\nc7TEA+q4RtDQl9amcvQ95emnXmZ974u7UkYdABEBAAG0HlNvbWUgVXNlciA8c29t\nZXVzZXJAZ21haWwuY29tPokBOAQTAQIAIgUCVrJhnQIbAwYLCQgHAwIGFQgCCQoL\nBBYCAwECHgECF4AACgkQMmLv8lug0nAViQgArWjI55+7p48URr2z9Jvak+yrBTx1\nzkufltQAnHTJkq+Kl9dySSmTnOop8o3rE4++IOpYV5Y36PkKf9EZMk4n1RQiDPKE\nAFtRVTkRaoWzOir9KQXJPfhKrl01j/QzY+utfiMvUoBJZ9ybq8Pa885SljW9lbaX\nIYw+hl8ZdJ2KStvGrEyfQvRyq3aN5c9TV//4BdGnwx7Qabq/U+G18lizG6f/yq15\ned7t0KELaCfeKPvytp4VE9/z/Ksah/h3+Qilx07/oG2Ae5kC1bEC9coD/ogPUhbv\nb2bsBIoY9E9YwsLoif2lU+o1t76zLgUktuNscRRUKobW028H1zuFS/XQhrkBDQRW\nsmGdAQgApnyyv3i144OLYy0O4UKQxd3e10Y3WpDwfnGIBefAI1m7RxnUxBag/DsU\n7gi9qLEC4VHSfq4eiNfr1LJOyCL2edTgCWFgBhVjbXjZe6YAOrAnhxwCErnN0Y7N\n6s8wVh9fObSOyf8ZE6G7JeKpcq9Q6gd/KxagfD48a1v+fyRHpyQc6J9pUEmtrDJ7\nBjmsd2VWzLBvNWdHyxDNtZweIaqIO9VUYYpr1mtTliNBOZLUelmgrt7HBRcJpWMA\nS8muVVbuP5MK0trLBq/JB8qUH3zRzB/PhMgzmkIfjEK1VYDWm4E8DYyTWEJcHqkb\neqFsNjrIlwPaA122BWC6gUOPwwH+oQARAQABiQEfBBgBAgAJBQJWsmGdAhsMAAoJ\nEDJi7/JboNJwAyAIALd4xcdmGbZD98gScJzqwzkOMcO8zFHqHNvJ42xIFvGny7c0\n1Rx7iyrdypOby5AxE+viQcjG4rpLZW/xKYBNGrCfDyQO7511I0v8x20EICMlMfD/\nNrWQCzesEPcUlKTP07d+sFyP8AyseOidbzY/92CpskTgdSBjY/ntLSaoknl/fjJE\nQM8OkPqU7IraO1Jzzdnm20d5PZL9+PIwIWdSTedU/vBMTJyNcoqvSfKf1wNC66XP\nhqfYgXJE564AdWZKA3C0IyCqiv+LHwxLnUHio1a4/r91C8KPzxs6tGxRDjXLd7ms\nuYFGWymiUGOE/giHlcxdYcHzwLnPDliMQOLiTkK5AQ0EVuxMygEIAOD+bW1cDTmE\nBxh5JECoqeHuwgl6DlLhnubWPkQ4ZeRzBRAsFcEJQlwlJjrzFDicL+lnm6Qq4tt0\n560TwHdf15/AKTZIZu7H25axvGNzgeaUkJEJdYAq9zTKWwX7wKyzBszi485nQg97\nMfAqwhMpDW0Qqf8+7Ug+WEmfBSGv9uL3aQC6WEeIsHfri0n0n8v4XgwhfShXguxO\nCsOztEsuW7WWKW9P4TngKKv4lCHdPlV6FwxeMzODBJvc2fkHVHnqc0PqszJ5xcF8\n6gZCpMM027SbpeYWCAD5zwJyYP9ntfO1p2HjnQ1dZaP9FeNcO7uIV1Lnd1eGCu6I\nsrVp5k1f3isAEQEAAYkCPgQYAQIACQUCVuxMygIbAgEpCRAyYu/yW6DScMBdIAQZ\nAQIABgUCVuxMygAKCRCKohN4dhq2b4tcCACHxmOHVXNpu47OvUGYQydLgMACUlXN\nlj+HfE0VReqShxdDmpasAY9IRpuMB2RsGK8GbNP+4SlOlAiPf5SMhS7nZNkNDgQQ\naZ3HFpgrFmFwmE10BKT4iQtoxELLM57z0qGOAfTsEjWFQa4sF+6IHAQR/ptkdkkI\nBUEXiMnAwVwBysLIJiLO8qdjB6qp52QkT074JVrwywT/P+DkMfC2k4r/AfEbf6eF\ndmPDuPk6KD87+hJZsSa5MaMUBQVvRO/mgEkhJRITVu58eWGaBOcQJ8gqurhCqM5P\nDfUA4TJ7wiqM6sS764vV1rOioTTXkszzhClQqET7hPVnVQjenYgv0EZHNyQH/1f1\n/CYqvV1vFjM9vJjMbxXsATCkZe6wvBVKD8vLsJAr8N+onKQz+4OPc3kmKq7aESu3\nCi/iuie5KKVwnuNhr9AzT61vEkKxwHcVFEvHB77F6ZAAInhRvjzmQbD2dlPLLQCC\nqDj71ODSSAPTEmUy6969bgD9PfWei7kNkBIx7s3eBv8yzytSc2EcuUgopqFazquw\nFs1+tqGHjBvQfTo6bqbJjp/9Ci2pvde3ElV2rAgUlb3lqXyXjRDqrXosh5GcRPQj\nK8Nhj1BNhnrCVskE4BP0LYbOHuzgm86uXwGCFsY+w2VOsSm16Jx5GHyG5S5WU3+D\nIts/HFYRLiFgDLmTlxo=\n=+OzK\n-----END + PGP PUBLIC KEY BLOCK-----"' + base-installation-for-auth-user-paginated: + value: + total_count: 2 + installations: + - id: 1 + account: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + access_tokens_url: https://api.github.com/app/installations/1/access_tokens + repositories_url: https://api.github.com/installation/repositories + html_url: https://github.com/organizations/github/settings/installations/1 + app_id: 1 + target_id: 1 + target_type: Organization + permissions: + checks: write + metadata: read + contents: read + events: + - push + - pull_request + single_file_name: config.yaml + has_multiple_single_files: true + single_file_paths: + - config.yml + - ".github/issue_TEMPLATE.md" + repository_selection: all + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + app_slug: github-actions + suspended_at: + suspended_by: + - id: 3 + account: + login: octocat + id: 2 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + access_tokens_url: https://api.github.com/app/installations/1/access_tokens + repositories_url: https://api.github.com/installation/repositories + html_url: https://github.com/organizations/github/settings/installations/1 + app_id: 1 + target_id: 1 + target_type: Organization + permissions: + checks: write + metadata: read + contents: read + events: + - push + - pull_request + single_file_name: config.yaml + has_multiple_single_files: true + single_file_paths: + - config.yml + - ".github/issue_TEMPLATE.md" + repository_selection: all + created_at: '2017-07-08T16:18:44-04:00' + updated_at: '2017-07-08T16:18:44-04:00' + app_slug: github-actions + suspended_at: + suspended_by: + interaction-limit-user: + value: + limit: collaborators_only + origin: user + expires_at: '2018-08-17T04:18:39Z' + key-items: + value: + - key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + id: 2 + url: https://api.github.com/user/keys/2 + title: ssh-rsa AAAAB3NzaC1yc2EAAA + created_at: '2020-06-11T21:31:57Z' + verified: false + read_only: false + - key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJy931234 + id: 3 + url: https://api.github.com/user/keys/3 + title: ssh-rsa AAAAB3NzaC1yc2EAAB + created_at: '2020-07-11T21:31:57Z' + verified: false + read_only: false + key: + value: + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + id: 2 + url: https://api.github.com/user/keys/2 + title: ssh-rsa AAAAB3NzaC1yc2EAAA + created_at: '2020-06-11T21:31:57Z' + verified: false + read_only: false + user-marketplace-purchase-items: + value: + - billing_cycle: monthly + next_billing_date: '2017-11-11T00:00:00Z' + unit_count: + on_free_trial: true + free_trial_ends_on: '2017-11-11T00:00:00Z' + updated_at: '2017-11-02T01:12:12Z' + account: + login: github + id: 4 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + email: + organization_billing_email: billing@github.com + type: Organization + plan: + url: https://api.github.com/marketplace_listing/plans/1313 + accounts_url: https://api.github.com/marketplace_listing/plans/1313/accounts + id: 1313 + number: 3 + name: Pro + description: A professional-grade CI solution + monthly_price_in_cents: 1099 + yearly_price_in_cents: 11870 + price_model: FLAT_RATE + has_free_trial: true + unit_name: + state: published + bullets: + - Up to 25 private repositories + - 11 concurrent builds + org-membership-items: + value: + - url: https://api.github.com/orgs/octocat/memberships/defunkt + state: active + role: admin + organization_url: https://api.github.com/orgs/octocat + direct_membership: true + enterprise_teams_providing_indirect_membership: [] + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + - url: https://api.github.com/orgs/invitocat/memberships/defunkt + state: pending + role: admin + organization_url: https://api.github.com/orgs/invitocat + direct_membership: false + enterprise_teams_providing_indirect_membership: + - ent:justice-league + - ent:security-managers + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + org-membership: + value: + url: https://api.github.com/orgs/invitocat/memberships/defunkt + state: pending + role: admin + organization_url: https://api.github.com/orgs/invitocat + direct_membership: true + enterprise_teams_providing_indirect_membership: + - ent:justice-league + - ent:security-managers + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + org-membership-2: + value: + url: https://api.github.com/orgs/octocat/memberships/defunkt + state: active + role: admin + organization_url: https://api.github.com/orgs/octocat + direct_membership: true + enterprise_teams_providing_indirect_membership: + - ent:justice-league + - ent:security-managers + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + user: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + migration-items: + value: + - id: 79 + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + state: pending + lock_repositories: true + exclude_attachments: false + exclude_releases: false + exclude_owner_projects: false + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + url: https://api.github.com/orgs/octo-org/migrations/79 + created_at: '2015-07-06T15:33:38-07:00' + updated_at: '2015-07-06T15:33:38-07:00' + node_id: MDQ6VXNlcjE= + migration-2: + value: + id: 79 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + state: pending + lock_repositories: true + exclude_attachments: false + exclude_releases: false + exclude_owner_projects: false + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + url: https://api.github.com/orgs/octo-org/migrations/79 + created_at: '2015-07-06T15:33:38-07:00' + updated_at: '2015-07-06T15:33:38-07:00' + migration: + value: + id: 79 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + guid: 0b989ba4-242f-11e5-81e1-c7b6966d2516 + state: exported + lock_repositories: true + exclude_attachments: false + exclude_releases: false + exclude_owner_projects: false + org_metadata_only: false + repositories: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://api.github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + url: https://api.github.com/orgs/octo-org/migrations/79 + created_at: '2015-07-06T15:33:38-07:00' + updated_at: '2015-07-06T15:33:38-07:00' + package-user: + value: + id: 40201 + name: octo-name + package_type: rubygems + owner: + login: octocat + id: 209477 + node_id: MDQ6VXNlcjIwOTQ3Nw== + avatar_url: https://avatars.githubusercontent.com/u/209477?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + version_count: 3 + visibility: public + url: https://api.github.com/users/octocat/packages/rubygems/octo-name + created_at: '2019-10-20T14:17:14Z' + updated_at: '2019-10-20T14:17:14Z' + repository: + id: 216219492 + node_id: MDEwOlJlcG9zaXRvcnkyMTYyMTk0OTI= + name: octo-name-repo + full_name: octocat/octo-name-repo + private: false + owner: + login: octocat + id: 209477 + node_id: MDQ6VXNlcjIwOTQ3Nw== + avatar_url: https://avatars.githubusercontent.com/u/209477?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: true + html_url: https://github.com/octocat/octo-name-repo + description: Project for octocats + fork: false + url: https://api.github.com/repos/octocat/octo-name-repo + forks_url: https://api.github.com/repos/octocat/octo-name-repo/forks + keys_url: https://api.github.com/repos/octocat/octo-name-repo/keys{/key_id} + collaborators_url: https://api.github.com/repos/octocat/octo-name-repo/collaborators{/collaborator} + teams_url: https://api.github.com/repos/octocat/octo-name-repo/teams + hooks_url: https://api.github.com/repos/octocat/octo-name-repo/hooks + issue_events_url: https://api.github.com/repos/octocat/octo-name-repo/issues/events{/number} + events_url: https://api.github.com/repos/octocat/octo-name-repo/events + assignees_url: https://api.github.com/repos/octocat/octo-name-repo/assignees{/user} + branches_url: https://api.github.com/repos/octocat/octo-name-repo/branches{/branch} + tags_url: https://api.github.com/repos/octocat/octo-name-repo/tags + blobs_url: https://api.github.com/repos/octocat/octo-name-repo/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/octocat/octo-name-repo/git/tags{/sha} + git_refs_url: https://api.github.com/repos/octocat/octo-name-repo/git/refs{/sha} + trees_url: https://api.github.com/repos/octocat/octo-name-repo/git/trees{/sha} + statuses_url: https://api.github.com/repos/octocat/octo-name-repo/statuses/{sha} + languages_url: https://api.github.com/repos/octocat/octo-name-repo/languages + stargazers_url: https://api.github.com/repos/octocat/octo-name-repo/stargazers + contributors_url: https://api.github.com/repos/octocat/octo-name-repo/contributors + subscribers_url: https://api.github.com/repos/octocat/octo-name-repo/subscribers + subscription_url: https://api.github.com/repos/octocat/octo-name-repo/subscription + commits_url: https://api.github.com/repos/octocat/octo-name-repo/commits{/sha} + git_commits_url: https://api.github.com/repos/octocat/octo-name-repo/git/commits{/sha} + comments_url: https://api.github.com/repos/octocat/octo-name-repo/comments{/number} + issue_comment_url: https://api.github.com/repos/octocat/octo-name-repo/issues/comments{/number} + contents_url: https://api.github.com/repos/octocat/octo-name-repo/contents/{+path} + compare_url: https://api.github.com/repos/octocat/octo-name-repo/compare/{base}...{head} + merges_url: https://api.github.com/repos/octocat/octo-name-repo/merges + archive_url: https://api.github.com/repos/octocat/octo-name-repo/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/octocat/octo-name-repo/downloads + issues_url: https://api.github.com/repos/octocat/octo-name-repo/issues{/number} + pulls_url: https://api.github.com/repos/octocat/octo-name-repo/pulls{/number} + milestones_url: https://api.github.com/repos/octocat/octo-name-repo/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/octo-name-repo/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/octocat/octo-name-repo/labels{/name} + releases_url: https://api.github.com/repos/octocat/octo-name-repo/releases{/id} + deployments_url: https://api.github.com/repos/octocat/octo-name-repo/deployments + html_url: https://github.com/octocat/octo-name-repo/packages/40201 + package-versions-for-authenticated-user: + value: + - id: 45763 + name: sha256:08a44bab0bddaddd8837a8b381aebc2e4b933768b981685a9e088360af0d3dd9 + url: https://api.github.com/users/octocat/packages/container/hello_docker/versions/45763 + package_html_url: https://github.com/users/octocat/packages/container/package/hello_docker + created_at: '2020-09-11T21:56:40Z' + updated_at: '2021-02-05T21:32:32Z' + html_url: https://github.com/users/octocat/packages/container/hello_docker/45763 + metadata: + package_type: container + container: + tags: + - latest + - id: 881 + name: sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344 + url: https://api.github.com/users/octocat/packages/container/hello_docker/versions/881 + package_html_url: https://github.com/users/octocat/packages/container/package/hello_docker + created_at: '2020-05-21T22:22:20Z' + updated_at: '2021-02-05T21:32:32Z' + html_url: https://github.com/users/octocat/packages/container/hello_docker/881 + metadata: + package_type: container + container: + tags: [] + package-version-authenticated-user: + value: + id: 214 + name: sha256:3561f0cff06caccddb99c93bd26e712fcc56a811de0f8ea7a17bb865f30b176a + url: https://api.github.com/users/octocat/packages/container/hello_docker/versions/214 + package_html_url: https://github.com/users/octocat/packages/container/package/hello_docker + created_at: '2020-05-15T03:46:45Z' + updated_at: '2020-05-15T03:46:45Z' + html_url: https://github.com/users/octocat/packages/container/hello_docker/214 + metadata: + package_type: container + container: + tags: + - 1.13.6 + repository-items-default-response: + summary: Default response + value: + - id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + social-account-items: + value: + - provider: twitter + url: https://twitter.com/github + ssh-signing-key-items: + value: + - id: 2 + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + title: ssh-rsa AAAAB3NzaC1yc2EAAA + created_at: '2020-06-11T21:31:57Z' + - id: 3 + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJy931234 + title: ssh-rsa AAAAB3NzaC1yc2EAAB + created_at: '2020-07-11T21:31:57Z' + ssh-signing-key: + value: + id: 2 + key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 + title: ssh-rsa AAAAB3NzaC1yc2EAAA + created_at: '2020-06-11T21:31:57Z' + starred-repository-items-alternative-response-with-star-creation-timestamps: + summary: Alternative response with star creation timestamps + value: + - starred_at: '2011-01-16T19:06:43Z' + repo: + id: 1296269 + node_id: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + name: Hello-World + full_name: octocat/Hello-World + owner: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + private: false + html_url: https://github.com/octocat/Hello-World + description: This your first repo! + fork: false + url: https://api.github.com/repos/octocat/Hello-World + archive_url: https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + assignees_url: https://api.github.com/repos/octocat/Hello-World/assignees{/user} + blobs_url: https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + branches_url: https://api.github.com/repos/octocat/Hello-World/branches{/branch} + collaborators_url: https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + comments_url: https://api.github.com/repos/octocat/Hello-World/comments{/number} + commits_url: https://api.github.com/repos/octocat/Hello-World/commits{/sha} + compare_url: https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/{+path} + contributors_url: https://api.github.com/repos/octocat/Hello-World/contributors + deployments_url: https://api.github.com/repos/octocat/Hello-World/deployments + downloads_url: https://api.github.com/repos/octocat/Hello-World/downloads + events_url: https://api.github.com/repos/octocat/Hello-World/events + forks_url: https://api.github.com/repos/octocat/Hello-World/forks + git_commits_url: https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + git_refs_url: https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + git_tags_url: https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + git_url: git:github.com/octocat/Hello-World.git + issue_comment_url: https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + issue_events_url: https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + issues_url: https://api.github.com/repos/octocat/Hello-World/issues{/number} + keys_url: https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + labels_url: https://api.github.com/repos/octocat/Hello-World/labels{/name} + languages_url: https://api.github.com/repos/octocat/Hello-World/languages + merges_url: https://api.github.com/repos/octocat/Hello-World/merges + milestones_url: https://api.github.com/repos/octocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + pulls_url: https://api.github.com/repos/octocat/Hello-World/pulls{/number} + releases_url: https://api.github.com/repos/octocat/Hello-World/releases{/id} + ssh_url: git@github.com:octocat/Hello-World.git + stargazers_url: https://api.github.com/repos/octocat/Hello-World/stargazers + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + subscribers_url: https://api.github.com/repos/octocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/octocat/Hello-World/subscription + tags_url: https://api.github.com/repos/octocat/Hello-World/tags + teams_url: https://api.github.com/repos/octocat/Hello-World/teams + trees_url: https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + clone_url: https://github.com/octocat/Hello-World.git + mirror_url: git:git.example.com/octocat/Hello-World + hooks_url: https://api.github.com/repos/octocat/Hello-World/hooks + svn_url: https://svn.github.com/octocat/Hello-World + homepage: https://github.com + language: + forks_count: 9 + stargazers_count: 80 + watchers_count: 80 + size: 108 + default_branch: master + open_issues_count: 0 + is_template: true + topics: + - octocat + - atom + - electron + - api + has_issues: true + has_projects: true + has_wiki: true + has_pages: false + has_downloads: true + archived: false + disabled: false + visibility: public + pushed_at: '2011-01-26T19:06:43Z' + created_at: '2011-01-26T19:01:12Z' + updated_at: '2011-01-26T19:14:43Z' + permissions: + admin: false + push: false + pull: true + allow_rebase_merge: true + template_repository: + temp_clone_token: ABTLWHOULUVAXGTRYU7OC2876QJ2O + allow_squash_merge: true + allow_auto_merge: false + delete_branch_on_merge: true + allow_merge_commit: true + subscribers_count: 42 + network_count: 0 + license: + key: mit + name: MIT License + url: https://api.github.com/licenses/mit + spdx_id: MIT + node_id: MDc6TGljZW5zZW1pdA== + html_url: https://github.com/licenses/mit + forks: 1 + open_issues: 1 + watchers: 1 + team-full-items: + value: + - id: 1 + node_id: MDQ6VGVhbTE= + url: https://api.github.com/teams/1 + html_url: https://github.com/orgs/github/teams/justice-league + name: Justice League + slug: justice-league + description: A great team. + privacy: closed + notification_setting: notifications_enabled + permission: admin + members_url: https://api.github.com/teams/1/members{/member} + repositories_url: https://api.github.com/teams/1/repos + parent: + members_count: 3 + repos_count: 10 + created_at: '2017-07-14T16:53:42Z' + updated_at: '2017-08-17T12:37:15Z' + organization: + login: github + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + url: https://api.github.com/orgs/github + repos_url: https://api.github.com/orgs/github/repos + events_url: https://api.github.com/orgs/github/events + hooks_url: https://api.github.com/orgs/github/hooks + issues_url: https://api.github.com/orgs/github/issues + members_url: https://api.github.com/orgs/github/members{/member} + public_members_url: https://api.github.com/orgs/github/public_members{/member} + avatar_url: https://github.com/images/error/octocat_happy.gif + description: A great organization + name: github + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + is_verified: true + has_organization_projects: true + has_repository_projects: true + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + html_url: https://github.com/octocat + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + public-user-default-response: + summary: Default response + value: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + name: monalisa octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: monatheoctocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + public-user-response-with-git-hub-plan-information: + summary: Response with GitHub plan information + value: + login: octocat + id: 1 + node_id: MDQ6VXNlcjE= + avatar_url: https://github.com/images/error/octocat_happy.gif + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + name: monalisa octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: monatheoctocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + plan: + name: pro + space: 976562499 + collaborators: 0 + private_repos: 9999 + user-events-items: + value: + - id: '22249084947' + type: WatchEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + action: started + public: true + created_at: '2022-06-09T12:47:28Z' + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: false + created_at: '2022-06-07T07:50:26Z' + user-org-events-items: + value: + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octo-org/octo-repo + url: https://api.github.com/repos/octo-org/octo-repo + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: false + created_at: '2022-06-09T12:47:28Z' + org: + id: 9919 + login: octo-org + gravatar_id: '' + url: https://api.github.com/orgs/octo-org + avatar_url: https://avatars.githubusercontent.com/u/9919? + - id: '22196946742' + type: CreateEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octo-org/octo-repo + url: https://api.github.com/repos/octo-org/octo-repo + payload: + ref: master + ref_type: repository + full_ref: refs/heads/master + master_branch: master + description: + pusher_type: user + public: false + created_at: '2022-06-07T07:50:26Z' + org: + id: 9919 + login: octo-org + gravatar_id: '' + url: https://api.github.com/orgs/octo-org + avatar_url: https://avatars.githubusercontent.com/u/9919? + user-public-events-items: + value: + - id: '22249084947' + type: WatchEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + action: started + public: true + created_at: '2022-06-09T12:47:28Z' + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: true + created_at: '2022-06-08T23:29:25Z' + hovercard: + value: + contexts: + - message: Owns this repository + octicon: repo + key-simple-items: + value: + - id: 1 + key: ssh-rsa AAA... + package-versions-for-user: + value: + - id: 3497268 + name: 0.3.0 + url: https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/3497268 + package_html_url: https://github.com/octocat/octo-name-repo/packages/40201 + license: MIT + created_at: '2020-08-31T15:22:11Z' + updated_at: '2020-08-31T15:22:12Z' + description: Project for octocats + html_url: https://github.com/octocat/octo-name-repo/packages/40201?version=0.3.0 + metadata: + package_type: rubygems + - id: 387039 + name: 0.2.0 + url: https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039 + package_html_url: https://github.com/octocat/octo-name-repo/packages/40201 + license: MIT + created_at: '2019-12-01T20:49:29Z' + updated_at: '2019-12-01T20:49:30Z' + description: Project for octocats + html_url: https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0 + metadata: + package_type: rubygems + - id: 169770 + name: 0.1.0 + url: https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/169770 + package_html_url: https://github.com/octocat/octo-name-repo/packages/40201 + license: MIT + created_at: '2019-10-20T14:17:14Z' + updated_at: '2019-10-20T14:17:15Z' + html_url: https://github.com/octocat/octo-name-repo/packages/40201?version=0.1.0 + metadata: + package_type: rubygems + package-version-user: + value: + id: 387039 + name: 0.2.0 + url: https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039 + package_html_url: https://github.com/octocat/octo-name-repo/packages/40201 + license: MIT + created_at: '2019-12-01T20:49:29Z' + updated_at: '2019-12-01T20:49:30Z' + description: Octo-name client for Ruby + html_url: https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0 + metadata: + package_type: rubygems + user-received-events-items: + value: + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: true + created_at: '2022-06-09T12:47:28Z' + - id: '22196946742' + type: CreateEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + ref: master + ref_type: repository + full_ref: refs/heads/master + master_branch: master + description: + pusher_type: user + public: false + created_at: '2022-06-07T07:50:26Z' + user-received-public-events-items: + value: + - id: '22249084964' + type: PushEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + repository_id: 1296269 + push_id: 10115855396 + ref: refs/heads/master + head: 7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300 + before: 883efe034920928c47fe18598c01249d1a9fdabd + public: true + created_at: '2022-06-09T12:47:28Z' + - id: '22196946742' + type: CreateEvent + actor: + id: 583231 + login: octocat + display_login: octocat + gravatar_id: '' + url: https://api.github.com/users/octocat + avatar_url: https://avatars.githubusercontent.com/u/583231?v=4 + repo: + id: 1296269 + name: octocat/Hello-World + url: https://api.github.com/repos/octocat/Hello-World + payload: + ref: master + ref_type: repository + full_ref: refs/heads/master + master_branch: master + description: + pusher_type: user + public: false + created_at: '2022-06-07T07:50:26Z' + billing-premium-request-usage-report-user: + value: + timePeriod: + year: 2025 + user: monalisa + usageItems: + - product: Copilot + sku: Copilot Premium Request + model: GPT-5 + unitType: requests + pricePerUnit: 0.04 + grossQuantity: 100 + grossAmount: 4.0 + discountQuantity: 0 + discountAmount: 0.0 + netQuantity: 100 + netAmount: 4.0 + billing-usage-report-user: + value: + usageItems: + - date: '2023-08-01' + product: Actions + sku: Actions Linux + quantity: 100 + unitType: minutes + pricePerUnit: 0.008 + grossAmount: 0.8 + discountAmount: 0 + netAmount: 0.8 + repositoryName: user/example + billing-usage-summary-report-user: + value: + timePeriod: + year: 2025 + user: monalisa + usageItems: + - product: Actions + sku: actions_linux + unitType: minutes + pricePerUnit: 0.008 + grossQuantity: 1000 + grossAmount: 8.0 + discountQuantity: 0 + discountAmount: 0.0 + netQuantity: 1000 + netAmount: 8.0 + check-run-completed: + value: + action: completed + check_run: + id: 128620228 + node_id: MDg6Q2hlY2tSdW4xMjg2MjAyMjg= + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + external_id: '' + url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228 + html_url: https://github.com/Codertocat/Hello-World/runs/128620228 + details_url: https://octocoders.github.io + status: completed + conclusion: success + started_at: '2019-05-15T15:21:12Z' + completed_at: '2019-05-15T15:21:45Z' + output: + title: + summary: + text: + annotations_count: 0 + annotations_url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations + name: Octocoders-linter + check_suite: + id: 118578147 + node_id: MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc= + head_branch: changes + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + status: completed + conclusion: + url: https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147 + before: 6113728f27ae82c7b1a177c8d03f9e96e0adf246 + after: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + deployment: + url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728 + id: 326191728 + node_id: MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg= + task: deploy + original_environment: lab + environment: lab + description: + created_at: '2021-02-18T08:22:48Z' + updated_at: '2021-02-18T09:47:16Z' + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses + repository_url: https://api.github.com/repos/Codertocat/Hello-World + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + created_at: '2019-05-15T15:20:31Z' + updated_at: '2019-05-15T15:20:31Z' + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + repository: + id: 186853002 + node_id: MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI= + name: Hello-World + full_name: Codertocat/Hello-World + private: false + owner: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + html_url: https://github.com/Codertocat/Hello-World + description: + fork: false + url: https://api.github.com/repos/Codertocat/Hello-World + forks_url: https://api.github.com/repos/Codertocat/Hello-World/forks + keys_url: https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/Codertocat/Hello-World/teams + hooks_url: https://api.github.com/repos/Codertocat/Hello-World/hooks + issue_events_url: https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/Codertocat/Hello-World/events + assignees_url: https://api.github.com/repos/Codertocat/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/Codertocat/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/Codertocat/Hello-World/tags + blobs_url: https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/Codertocat/Hello-World/languages + stargazers_url: https://api.github.com/repos/Codertocat/Hello-World/stargazers + contributors_url: https://api.github.com/repos/Codertocat/Hello-World/contributors + subscribers_url: https://api.github.com/repos/Codertocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/Codertocat/Hello-World/subscription + commits_url: https://api.github.com/repos/Codertocat/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/Codertocat/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/Codertocat/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/Codertocat/Hello-World/merges + archive_url: https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/Codertocat/Hello-World/downloads + issues_url: https://api.github.com/repos/Codertocat/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/Codertocat/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/Codertocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/Codertocat/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/Codertocat/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/Codertocat/Hello-World/deployments + created_at: '2019-05-15T15:19:25Z' + updated_at: '2019-05-15T15:21:03Z' + pushed_at: '2019-05-15T15:20:57Z' + git_url: git://github.com/Codertocat/Hello-World.git + ssh_url: git@github.com:Codertocat/Hello-World.git + clone_url: https://github.com/Codertocat/Hello-World.git + svn_url: https://github.com/Codertocat/Hello-World + homepage: + size: 0 + stargazers_count: 0 + watchers_count: 0 + language: Ruby + has_issues: true + has_projects: true + has_downloads: true + has_wiki: true + has_pages: true + forks_count: 1 + mirror_url: + archived: false + disabled: false + open_issues_count: 2 + license: + forks: 1 + open_issues: 2 + watchers: 0 + default_branch: master + is_template: false + sender: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + check-run-completed-form-encoded: + value: + payload: "%7B%22action%22%3A%22completed%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3A%22success%22%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3A%222019-05-15T15%3A21%3A45Z%22%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%2C%22is_template%22%3Afalse%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" + check-run-created: + value: + action: created + check_run: + id: 128620228 + node_id: MDg6Q2hlY2tSdW4xMjg2MjAyMjg= + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + external_id: '' + url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228 + html_url: https://github.com/Codertocat/Hello-World/runs/128620228 + details_url: https://octocoders.github.io + status: queued + conclusion: + started_at: '2019-05-15T15:21:12Z' + completed_at: + output: + title: + summary: + text: + annotations_count: 0 + annotations_url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations + name: Octocoders-linter + check_suite: + id: 118578147 + node_id: MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc= + head_branch: changes + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + status: queued + conclusion: + url: https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147 + before: 6113728f27ae82c7b1a177c8d03f9e96e0adf246 + after: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + deployment: + url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728 + id: 326191728 + node_id: MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg= + task: deploy + original_environment: lab + environment: lab + description: + created_at: '2021-02-18T08:22:48Z' + updated_at: '2021-02-18T09:47:16Z' + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses + repository_url: https://api.github.com/repos/Codertocat/Hello-World + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + created_at: '2019-05-15T15:20:31Z' + updated_at: '2019-05-15T15:20:31Z' + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + repository: + id: 186853002 + node_id: MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI= + name: Hello-World + full_name: Codertocat/Hello-World + private: false + owner: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + html_url: https://github.com/Codertocat/Hello-World + description: + fork: false + url: https://api.github.com/repos/Codertocat/Hello-World + forks_url: https://api.github.com/repos/Codertocat/Hello-World/forks + keys_url: https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/Codertocat/Hello-World/teams + hooks_url: https://api.github.com/repos/Codertocat/Hello-World/hooks + issue_events_url: https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/Codertocat/Hello-World/events + assignees_url: https://api.github.com/repos/Codertocat/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/Codertocat/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/Codertocat/Hello-World/tags + blobs_url: https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/Codertocat/Hello-World/languages + stargazers_url: https://api.github.com/repos/Codertocat/Hello-World/stargazers + contributors_url: https://api.github.com/repos/Codertocat/Hello-World/contributors + subscribers_url: https://api.github.com/repos/Codertocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/Codertocat/Hello-World/subscription + commits_url: https://api.github.com/repos/Codertocat/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/Codertocat/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/Codertocat/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/Codertocat/Hello-World/merges + archive_url: https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/Codertocat/Hello-World/downloads + issues_url: https://api.github.com/repos/Codertocat/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/Codertocat/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/Codertocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/Codertocat/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/Codertocat/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/Codertocat/Hello-World/deployments + created_at: '2019-05-15T15:19:25Z' + updated_at: '2019-05-15T15:21:03Z' + pushed_at: '2019-05-15T15:20:57Z' + git_url: git://github.com/Codertocat/Hello-World.git + ssh_url: git@github.com:Codertocat/Hello-World.git + clone_url: https://github.com/Codertocat/Hello-World.git + svn_url: https://github.com/Codertocat/Hello-World + homepage: + size: 0 + stargazers_count: 0 + watchers_count: 0 + language: Ruby + has_issues: true + has_projects: true + has_downloads: true + has_wiki: true + has_pages: true + forks_count: 1 + mirror_url: + archived: false + disabled: false + open_issues_count: 2 + license: + forks: 1 + open_issues: 2 + watchers: 0 + default_branch: master + is_template: false + sender: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + check-run-created-form-encoded: + value: + payload: "%7B%22action%22%3A%22created%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3Anull%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%2C%22is_template%22%3Afalse%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" + check-run-requested-action: + value: + action: requested_action + check_run: + id: 128620228 + node_id: MDg6Q2hlY2tSdW4xMjg2MjAyMjg= + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + external_id: '' + url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228 + html_url: https://github.com/Codertocat/Hello-World/runs/128620228 + details_url: https://octocoders.github.io + status: queued + conclusion: + started_at: '2019-05-15T15:21:12Z' + completed_at: + output: + title: + summary: + text: + annotations_count: 0 + annotations_url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations + name: Octocoders-linter + check_suite: + id: 118578147 + node_id: MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc= + head_branch: changes + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + status: queued + conclusion: + url: https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147 + before: 6113728f27ae82c7b1a177c8d03f9e96e0adf246 + after: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + created_at: '2019-05-15T15:20:31Z' + updated_at: '2019-05-15T15:20:31Z' + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + deployment: + url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728 + id: 326191728 + node_id: MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg= + task: deploy + original_environment: lab + environment: lab + description: + created_at: '2021-02-18T08:22:48Z' + updated_at: '2021-02-18T09:47:16Z' + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses + repository_url: https://api.github.com/repos/Codertocat/Hello-World + requested_action: + identifier: lgtm|1234 + repository: + id: 186853002 + node_id: MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI= + name: Hello-World + full_name: Codertocat/Hello-World + private: false + owner: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + html_url: https://github.com/Codertocat/Hello-World + description: + fork: false + url: https://api.github.com/repos/Codertocat/Hello-World + forks_url: https://api.github.com/repos/Codertocat/Hello-World/forks + keys_url: https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/Codertocat/Hello-World/teams + hooks_url: https://api.github.com/repos/Codertocat/Hello-World/hooks + issue_events_url: https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/Codertocat/Hello-World/events + assignees_url: https://api.github.com/repos/Codertocat/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/Codertocat/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/Codertocat/Hello-World/tags + blobs_url: https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/Codertocat/Hello-World/languages + stargazers_url: https://api.github.com/repos/Codertocat/Hello-World/stargazers + contributors_url: https://api.github.com/repos/Codertocat/Hello-World/contributors + subscribers_url: https://api.github.com/repos/Codertocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/Codertocat/Hello-World/subscription + commits_url: https://api.github.com/repos/Codertocat/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/Codertocat/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/Codertocat/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/Codertocat/Hello-World/merges + archive_url: https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/Codertocat/Hello-World/downloads + issues_url: https://api.github.com/repos/Codertocat/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/Codertocat/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/Codertocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/Codertocat/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/Codertocat/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/Codertocat/Hello-World/deployments + created_at: '2019-05-15T15:19:25Z' + updated_at: '2019-05-15T15:21:03Z' + pushed_at: '2019-05-15T15:20:57Z' + git_url: git://github.com/Codertocat/Hello-World.git + ssh_url: git@github.com:Codertocat/Hello-World.git + clone_url: https://github.com/Codertocat/Hello-World.git + svn_url: https://github.com/Codertocat/Hello-World + homepage: + size: 0 + stargazers_count: 0 + watchers_count: 0 + language: Ruby + has_issues: true + has_projects: true + has_downloads: true + has_wiki: true + has_pages: true + forks_count: 1 + mirror_url: + archived: false + disabled: false + open_issues_count: 2 + license: + forks: 1 + open_issues: 2 + watchers: 0 + default_branch: master + sender: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + check-run-requested-action-form-encoded: + value: + payload: "%7B%22action%22%3A%22requested_action%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3Anull%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%7D%2C%22requested_action%22%3A%7B%22identifier%22%3A%22lgtm%7C1234%22%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" + check-run-rerequested: + value: + action: rerequested + check_run: + id: 128620228 + node_id: MDg6Q2hlY2tSdW4xMjg2MjAyMjg= + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + external_id: '' + url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228 + html_url: https://github.com/Codertocat/Hello-World/runs/128620228 + details_url: https://octocoders.github.io + status: completed + conclusion: success + started_at: '2019-05-15T15:21:12Z' + completed_at: '2019-05-15T15:21:45Z' + output: + title: + summary: + text: + annotations_count: 0 + annotations_url: https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations + name: Octocoders-linter + check_suite: + id: 118578147 + node_id: MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc= + head_branch: changes + head_sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + status: completed + conclusion: + url: https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147 + before: 6113728f27ae82c7b1a177c8d03f9e96e0adf246 + after: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + deployment: + url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728 + id: 326191728 + node_id: MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg= + task: deploy + original_environment: lab + environment: lab + description: + created_at: '2021-02-18T08:22:48Z' + updated_at: '2021-02-18T09:47:16Z' + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses + repository_url: https://api.github.com/repos/Codertocat/Hello-World + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + created_at: '2019-05-15T15:20:31Z' + updated_at: '2019-05-15T15:20:31Z' + app: + id: 29310 + node_id: MDM6QXBwMjkzMTA= + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + name: octocoders-linter + description: '' + external_url: https://octocoders.github.io + html_url: https://github.com/apps/octocoders-linter + created_at: '2019-04-19T19:36:24Z' + updated_at: '2019-04-19T19:36:56Z' + permissions: + administration: write + checks: write + contents: write + deployments: write + issues: write + members: write + metadata: read + organization_administration: write + organization_hooks: write + organization_plan: read + organization_projects: write + organization_user_blocking: write + pages: write + pull_requests: write + repository_hooks: write + repository_projects: write + statuses: write + team_discussions: write + vulnerability_alerts: read + events: [] + pull_requests: + - url: https://api.github.com/repos/Codertocat/Hello-World/pulls/2 + id: 279147437 + number: 2 + head: + ref: changes + sha: ec26c3e57ca3a959ca5aad62de7213c562f8c821 + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + base: + ref: master + sha: f95f852bd8fca8fcc58a9a2d6c842781e32a215e + repo: + id: 186853002 + url: https://api.github.com/repos/Codertocat/Hello-World + name: Hello-World + repository: + id: 186853002 + node_id: MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI= + name: Hello-World + full_name: Codertocat/Hello-World + private: false + owner: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + html_url: https://github.com/Codertocat/Hello-World + description: + fork: false + url: https://api.github.com/repos/Codertocat/Hello-World + forks_url: https://api.github.com/repos/Codertocat/Hello-World/forks + keys_url: https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/Codertocat/Hello-World/teams + hooks_url: https://api.github.com/repos/Codertocat/Hello-World/hooks + issue_events_url: https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/Codertocat/Hello-World/events + assignees_url: https://api.github.com/repos/Codertocat/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/Codertocat/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/Codertocat/Hello-World/tags + blobs_url: https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/Codertocat/Hello-World/languages + stargazers_url: https://api.github.com/repos/Codertocat/Hello-World/stargazers + contributors_url: https://api.github.com/repos/Codertocat/Hello-World/contributors + subscribers_url: https://api.github.com/repos/Codertocat/Hello-World/subscribers + subscription_url: https://api.github.com/repos/Codertocat/Hello-World/subscription + commits_url: https://api.github.com/repos/Codertocat/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/Codertocat/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/Codertocat/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/Codertocat/Hello-World/merges + archive_url: https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/Codertocat/Hello-World/downloads + issues_url: https://api.github.com/repos/Codertocat/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/Codertocat/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/Codertocat/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/Codertocat/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/Codertocat/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/Codertocat/Hello-World/deployments + created_at: '2019-05-15T15:19:25Z' + updated_at: '2019-05-15T15:21:03Z' + pushed_at: '2019-05-15T15:20:57Z' + git_url: git://github.com/Codertocat/Hello-World.git + ssh_url: git@github.com:Codertocat/Hello-World.git + clone_url: https://github.com/Codertocat/Hello-World.git + svn_url: https://github.com/Codertocat/Hello-World + homepage: + size: 0 + stargazers_count: 0 + watchers_count: 0 + language: Ruby + has_issues: true + has_projects: true + has_downloads: true + has_wiki: true + has_pages: true + forks_count: 1 + mirror_url: + archived: false + disabled: false + open_issues_count: 2 + license: + forks: 1 + open_issues: 2 + watchers: 0 + default_branch: master + is_template: false + sender: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + check-run-rerequested-form-encoded: + value: + payload: "%7B%22action%22%3A%22rerequested%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3A%22success%22%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3A%222019-05-15T15%3A21%3A45Z%22%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%2C%22is_template%22%3Afalse%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" + ping: + value: + zen: Anything added dilutes everything else. + hook_id: 109948940 + hook: + type: Repository + id: 109948940 + name: web + active: true + events: + - "*" + config: + content_type: json + url: https://smee.io/**************** + insecure_ssl: '0' + updated_at: '2019-05-15T15:20:49Z' + created_at: '2019-05-15T15:20:49Z' + url: https://api.github.com/repos/Octocoders/Hello-World/hooks/109948940 + test_url: https://api.github.com/repos/Octocoders/Hello-World/hooks/109948940/test + ping_url: https://api.github.com/repos/Octocoders/Hello-World/hooks/109948940/pings + last_response: + code: + status: unused + message: + repository: + id: 186853261 + node_id: MDEwOlJlcG9zaXRvcnkxODY4NTMyNjE= + name: Hello-World + full_name: Octocoders/Hello-World + private: false + owner: + login: Octocoders + id: 38302899 + node_id: MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5 + avatar_url: https://avatars1.githubusercontent.com/u/38302899?v=4 + gravatar_id: '' + url: https://api.github.com/users/Octocoders + html_url: https://github.com/Octocoders + followers_url: https://api.github.com/users/Octocoders/followers + following_url: https://api.github.com/users/Octocoders/following{/other_user} + gists_url: https://api.github.com/users/Octocoders/gists{/gist_id} + starred_url: https://api.github.com/users/Octocoders/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Octocoders/subscriptions + organizations_url: https://api.github.com/users/Octocoders/orgs + repos_url: https://api.github.com/users/Octocoders/repos + events_url: https://api.github.com/users/Octocoders/events{/privacy} + received_events_url: https://api.github.com/users/Octocoders/received_events + type: Organization + site_admin: false + html_url: https://github.com/Octocoders/Hello-World + description: + fork: true + url: https://api.github.com/repos/Octocoders/Hello-World + forks_url: https://api.github.com/repos/Octocoders/Hello-World/forks + keys_url: https://api.github.com/repos/Octocoders/Hello-World/keys{/key_id} + collaborators_url: https://api.github.com/repos/Octocoders/Hello-World/collaborators{/collaborator} + teams_url: https://api.github.com/repos/Octocoders/Hello-World/teams + hooks_url: https://api.github.com/repos/Octocoders/Hello-World/hooks + issue_events_url: https://api.github.com/repos/Octocoders/Hello-World/issues/events{/number} + events_url: https://api.github.com/repos/Octocoders/Hello-World/events + assignees_url: https://api.github.com/repos/Octocoders/Hello-World/assignees{/user} + branches_url: https://api.github.com/repos/Octocoders/Hello-World/branches{/branch} + tags_url: https://api.github.com/repos/Octocoders/Hello-World/tags + blobs_url: https://api.github.com/repos/Octocoders/Hello-World/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/Octocoders/Hello-World/git/tags{/sha} + git_refs_url: https://api.github.com/repos/Octocoders/Hello-World/git/refs{/sha} + trees_url: https://api.github.com/repos/Octocoders/Hello-World/git/trees{/sha} + statuses_url: https://api.github.com/repos/Octocoders/Hello-World/statuses/{sha} + languages_url: https://api.github.com/repos/Octocoders/Hello-World/languages + stargazers_url: https://api.github.com/repos/Octocoders/Hello-World/stargazers + contributors_url: https://api.github.com/repos/Octocoders/Hello-World/contributors + subscribers_url: https://api.github.com/repos/Octocoders/Hello-World/subscribers + subscription_url: https://api.github.com/repos/Octocoders/Hello-World/subscription + commits_url: https://api.github.com/repos/Octocoders/Hello-World/commits{/sha} + git_commits_url: https://api.github.com/repos/Octocoders/Hello-World/git/commits{/sha} + comments_url: https://api.github.com/repos/Octocoders/Hello-World/comments{/number} + issue_comment_url: https://api.github.com/repos/Octocoders/Hello-World/issues/comments{/number} + contents_url: https://api.github.com/repos/Octocoders/Hello-World/contents/{+path} + compare_url: https://api.github.com/repos/Octocoders/Hello-World/compare/{base}...{head} + merges_url: https://api.github.com/repos/Octocoders/Hello-World/merges + archive_url: https://api.github.com/repos/Octocoders/Hello-World/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/Octocoders/Hello-World/downloads + issues_url: https://api.github.com/repos/Octocoders/Hello-World/issues{/number} + pulls_url: https://api.github.com/repos/Octocoders/Hello-World/pulls{/number} + milestones_url: https://api.github.com/repos/Octocoders/Hello-World/milestones{/number} + notifications_url: https://api.github.com/repos/Octocoders/Hello-World/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/Octocoders/Hello-World/labels{/name} + releases_url: https://api.github.com/repos/Octocoders/Hello-World/releases{/id} + deployments_url: https://api.github.com/repos/Octocoders/Hello-World/deployments + created_at: '2019-05-15T15:20:42Z' + updated_at: '2019-05-15T15:20:45Z' + pushed_at: '2019-05-15T15:20:33Z' + git_url: git://github.com/Octocoders/Hello-World.git + ssh_url: git@github.com:Octocoders/Hello-World.git + clone_url: https://github.com/Octocoders/Hello-World.git + svn_url: https://github.com/Octocoders/Hello-World + homepage: + size: 0 + stargazers_count: 0 + watchers_count: 0 + language: Ruby + has_issues: false + has_projects: true + has_downloads: true + has_wiki: true + has_pages: false + forks_count: 0 + mirror_url: + archived: false + disabled: false + open_issues_count: 0 + license: + forks: 0 + open_issues: 0 + watchers: 0 + default_branch: master + sender: + login: Codertocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/Codertocat + html_url: https://github.com/Codertocat + followers_url: https://api.github.com/users/Codertocat/followers + following_url: https://api.github.com/users/Codertocat/following{/other_user} + gists_url: https://api.github.com/users/Codertocat/gists{/gist_id} + starred_url: https://api.github.com/users/Codertocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/Codertocat/subscriptions + organizations_url: https://api.github.com/users/Codertocat/orgs + repos_url: https://api.github.com/users/Codertocat/repos + events_url: https://api.github.com/users/Codertocat/events{/privacy} + received_events_url: https://api.github.com/users/Codertocat/received_events + type: User + site_admin: false + ping-form-encoded: + value: + payload: "%7B%22hook%22%3A%7B%22active%22%3Atrue%2C%22config%22%3A%7B%22content_type%22%3A%22form%22%2C%22insecure_ssl%22%3A%220%22%2C%22url%22%3A%22https%3A%2F%2Ftest.io%2Fform%22%7D%2C%22created_at%22%3A%222021-10-20T16%3A01%3A58Z%22%2C%22deliveries_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%2Fdeliveries%22%2C%22events%22%3A%5B%22%2A%22%5D%2C%22id%22%3A1234%2C%22last_response%22%3A%7B%22code%22%3Anull%2C%22message%22%3Anull%2C%22status%22%3A%22unused%22%7D%2C%22name%22%3A%22web%22%2C%22ping_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%2Fpings%22%2C%22test_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%2Ftest%22%2C%22type%22%3A%22Repository%22%2C%22updated_at%22%3A%222021-10-20T16%3A01%3A58Z%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%22%7D%2C%22hook_id%22%3A1234%2C%22meta%22%3A%7B%22signed_at%22%3A%222021-10-25T19%3A05%3A13%2B00%3A00%22%2C%22event%22%3A%22ping%22%2C%22nonce%22%3A%221231%22%2C%22url%22%3A%22https%3A%2F%2Ftest.io%2Fform%22%7D%2C%22repository%22%3A%7B%22allow_forking%22%3Atrue%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22archived%22%3Afalse%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fassignees%7B%2Fuser%7D%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fbranches%7B%2Fbranch%7D%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo.git%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcomments%7B%2Fnumber%7D%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcommits%7B%2Fsha%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcontents%2F%7B%2Bpath%7D%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcontributors%22%2C%22created_at%22%3A%222016-12-07T19%3A17%3A19Z%22%2C%22default_branch%22%3A%22master%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fdeployments%22%2C%22description%22%3A%22A%2Btest%2Brepository%2Bfor%2Btest%2B.%22%2C%22disabled%22%3Afalse%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fdownloads%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fevents%22%2C%22fork%22%3Afalse%2C%22forks%22%3A0%2C%22forks_count%22%3A0%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fforks%22%2C%22full_name%22%3A%22testorg%2Ftestrepo%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo.git%22%2C%22has_downloads%22%3Atrue%2C%22has_issues%22%3Atrue%2C%22has_pages%22%3Afalse%2C%22has_projects%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22homepage%22%3A%22%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo%22%2C%22id%22%3A4567%2C%22is_template%22%3Afalse%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fissues%7B%2Fnumber%7D%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fkeys%7B%2Fkey_id%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Flabels%7B%2Fname%7D%22%2C%22language%22%3Anull%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Flanguages%22%2C%22license%22%3Anull%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fmerges%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fmilestones%7B%2Fnumber%7D%22%2C%22mirror_url%22%3Anull%2C%22name%22%3A%22testrepo%22%2C%22node_id%22%3A%22abcd%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22open_issues%22%3A27%2C%22open_issues_count%22%3A27%2C%22owner%22%3A%7B%22avatar_url%22%3A%22https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F1231%3Fv%3D4%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fevents%7B%2Fprivacy%7D%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fgists%7B%2Fgist_id%7D%22%2C%22gravatar_id%22%3A%22%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%22%2C%22id%22%3A4312013%2C%22login%22%3A%22testorg%22%2C%22node_id%22%3A%22abcd%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Forgs%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Freceived_events%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Frepos%22%2C%22site_admin%22%3Afalse%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fsubscriptions%22%2C%22type%22%3A%22Organization%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%22%7D%2C%22private%22%3Atrue%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fpulls%7B%2Fnumber%7D%22%2C%22pushed_at%22%3A%222021-10-08T17%3A33%3A23Z%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Freleases%7B%2Fid%7D%22%2C%22size%22%3A43%2C%22ssh_url%22%3A%22git%40github.com%3Atestorg%2Ftestrepo.git%22%2C%22stargazers_count%22%3A1%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fstargazers%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fstatuses%2F%7Bsha%7D%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fsubscription%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Ftags%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fteams%22%2C%22topics%22%3A%5B%5D%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22updated_at%22%3A%222021-10-08T17%3A33%3A26Z%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%22%2C%22visibility%22%3A%22private%22%2C%22watchers%22%3A1%2C%22watchers_count%22%3A1%7D%2C%22sender%22%3A%7B%22avatar_url%22%3A%22https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F1385175%3Fv%3D4%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fevents%7B%2Fprivacy%7D%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fgists%7B%2Fgist_id%7D%22%2C%22gravatar_id%22%3A%22%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestuser%22%2C%22id%22%3A1385175%2C%22login%22%3A%22testuser%22%2C%22node_id%22%3A%22abcd%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Forgs%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Freceived_events%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Frepos%22%2C%22site_admin%22%3Atrue%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fsubscriptions%22%2C%22type%22%3A%22User%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%22%7D%2C%22zen%22%3A%22Responsive%2Bis%2Bbetter%2Bthan%2Bfast.%22%7D" + secret-scanning-alert-location-created: + value: + action: created + alert: + number: 42 + created_at: '2020-11-06T18:18:30Z' + updated_at: '2020-11-06T18:18:30Z' + url: https://api.github.com/repos/octocat-repo/hello-world/secret-scanning/alerts/42 + html_url: https://github.com/octocat-repo/hello-world/security/secret-scanning/42 + locations_url: https://api.github.com/repos/octocat-repo/hello-world/secret-scanning/alerts/42/locations + state: open + resolution: + resolved_at: + resolved_by: + secret_type: mailchimp_api_key + secret: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2 + publicly_leaked: false + multi_repo: false + location: + type: commit + details: + path: "/example/secrets.txt" + start_line: 1 + end_line: 1 + start_column: 1 + end_column: 64 + blob_sha: af5626b4a114abcb82d63db7c8082c3c4756e51b + blob_url: https://api.github.com/repos/octocat-repo/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b + commit_sha: f14d7debf9775f957cf4f1e8176da0786431f72b + commit_url: https://api.github.com/repos/octocat-repo/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b + repository: + id: 186853002 + node_id: MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI= + name: hello-world + full_name: octocat-repo/hello-world + private: false + owner: + login: octocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + html_url: https://github.com/octocat-repo/hello-world + description: + fork: false + url: https://api.github.com/repos/octocat-repo/hello-world + forks_url: https://api.github.com/repos/octocat-repo/hello-world/forks + keys_url: https://api.github.com/repos/octocat-repo/hello-world/keys{/key_id} + collaborators_url: https://api.github.com/repos/octocat-repo/hello-world/collaborators{/collaborator} + teams_url: https://api.github.com/repos/octocat-repo/hello-world/teams + hooks_url: https://api.github.com/repos/octocat-repo/hello-world/hooks + issue_events_url: https://api.github.com/repos/octocat-repo/hello-world/issues/events{/number} + events_url: https://api.github.com/repos/octocat-repo/hello-world/events + assignees_url: https://api.github.com/repos/octocat-repo/hello-world/assignees{/user} + branches_url: https://api.github.com/repos/octocat-repo/hello-world/branches{/branch} + tags_url: https://api.github.com/repos/octocat-repo/hello-world/tags + blobs_url: https://api.github.com/repos/octocat-repo/hello-world/git/blobs{/sha} + git_tags_url: https://api.github.com/repos/octocat-repo/hello-world/git/tags{/sha} + git_refs_url: https://api.github.com/repos/octocat-repo/hello-world/git/refs{/sha} + trees_url: https://api.github.com/repos/octocat-repo/hello-world/git/trees{/sha} + statuses_url: https://api.github.com/repos/octocat-repo/hello-world/statuses/{sha} + languages_url: https://api.github.com/repos/octocat-repo/hello-world/languages + stargazers_url: https://api.github.com/repos/octocat-repo/hello-world/stargazers + contributors_url: https://api.github.com/repos/octocat-repo/hello-world/contributors + subscribers_url: https://api.github.com/repos/octocat-repo/hello-world/subscribers + subscription_url: https://api.github.com/repos/octocat-repo/hello-world/subscription + commits_url: https://api.github.com/repos/octocat-repo/hello-world/commits{/sha} + git_commits_url: https://api.github.com/repos/octocat-repo/hello-world/git/commits{/sha} + comments_url: https://api.github.com/repos/octocat-repo/hello-world/comments{/number} + issue_comment_url: https://api.github.com/repos/octocat-repo/hello-world/issues/comments{/number} + contents_url: https://api.github.com/repos/octocat-repo/hello-world/contents/{+path} + compare_url: https://api.github.com/repos/octocat-repo/hello-world/compare/{base}...{head} + merges_url: https://api.github.com/repos/octocat-repo/hello-world/merges + archive_url: https://api.github.com/repos/octocat-repo/hello-world/{archive_format}{/ref} + downloads_url: https://api.github.com/repos/octocat-repo/hello-world/downloads + issues_url: https://api.github.com/repos/octocat-repo/hello-world/issues{/number} + pulls_url: https://api.github.com/repos/octocat-repo/hello-world/pulls{/number} + milestones_url: https://api.github.com/repos/octocat-repo/hello-world/milestones{/number} + notifications_url: https://api.github.com/repos/octocat-repo/hello-world/notifications{?since,all,participating} + labels_url: https://api.github.com/repos/octocat-repo/hello-world/labels{/name} + releases_url: https://api.github.com/repos/octocat-repo/hello-world/releases{/id} + deployments_url: https://api.github.com/repos/octocat-repo/hello-world/deployments + created_at: '2019-05-15T15:19:25Z' + updated_at: '2019-05-15T15:21:03Z' + pushed_at: '2019-05-15T15:20:57Z' + git_url: git://github.com/octocat-repo/hello-world.git + ssh_url: git@github.com:octocat-repo/hello-world.git + clone_url: https://github.com/octocat-repo/hello-world.git + svn_url: https://github.com/octocat-repo/hello-world + homepage: + size: 0 + stargazers_count: 0 + watchers_count: 0 + language: Ruby + has_issues: true + has_projects: true + has_downloads: true + has_wiki: true + has_pages: true + forks_count: 1 + mirror_url: + archived: false + disabled: false + open_issues_count: 2 + license: + forks: 1 + open_issues: 2 + watchers: 0 + default_branch: master + is_template: false + sender: + login: octocat + id: 21031067 + node_id: MDQ6VXNlcjIxMDMxMDY3 + avatar_url: https://avatars1.githubusercontent.com/u/21031067?v=4 + gravatar_id: '' + url: https://api.github.com/users/octocat + html_url: https://github.com/octocat + followers_url: https://api.github.com/users/octocat/followers + following_url: https://api.github.com/users/octocat/following{/other_user} + gists_url: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/octocat/subscriptions + organizations_url: https://api.github.com/users/octocat/orgs + repos_url: https://api.github.com/users/octocat/repos + events_url: https://api.github.com/users/octocat/events{/privacy} + received_events_url: https://api.github.com/users/octocat/received_events + type: User + site_admin: false + secret-scanning-alert-location-created-form-encoded: + value: + payload: action%3A%20created%0A%20%20alert%3A%0A%20%20%20%20number%3A%2042%0A%20%20%20%20created_at%3A%20%272020-11-06T18%3A18%3A30Z%27%0A%20%20%20%20updated_at%3A%20%272020-11-06T18%3A18%3A30Z%27%0A%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsecret-scanning%2Falerts%2F42%0A%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world%2Fsecurity%2Fsecret-scanning%2F42%0A%20%20%20%20locations_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsecret-scanning%2Falerts%2F42%2Flocations%0A%20%20%20%20state%3A%20open%0A%20%20%20%20resolution%3A%20null%0A%20%20%20%20resolved_at%3A%20null%0A%20%20%20%20resolved_by%3A%20null%0A%20%20%20%20secret_type%3A%20mailchimp_api_key%0A%20%20%20%20secret%3A%20XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2%0A%20%20location%3A%0A%20%20%20%20type%3A%20commit%0A%20%20%20%20details%3A%0A%20%20%20%20%20%20path%3A%20%27%2Fexample%2Fsecrets.txt%27%0A%20%20%20%20%20%20start_line%3A%201%0A%20%20%20%20%20%20end_line%3A%201%0A%20%20%20%20%20%20start_column%3A%201%0A%20%20%20%20%20%20end_column%3A%2064%0A%20%20%20%20%20%20blob_sha%3A%20af5626b4a114abcb82d63db7c8082c3c4756e51b%0A%20%20%20%20%20%20blob_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fblobs%2Faf5626b4a114abcb82d63db7c8082c3c4756e51b%0A%20%20%20%20%20%20commit_sha%3A%20f14d7debf9775f957cf4f1e8176da0786431f72b%0A%20%20%20%20%20%20commit_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fcommits%2Ff14d7debf9775f957cf4f1e8176da0786431f72b%0A%20%20repository%3A%0A%20%20%20%20id%3A%20186853002%0A%20%20%20%20node_id%3A%20MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%0A%20%20%20%20name%3A%20hello-world%0A%20%20%20%20full_name%3A%20octocat-repo%2Fhello-world%0A%20%20%20%20private%3A%20false%0A%20%20%20%20owner%3A%0A%20%20%20%20%20%20login%3A%20octocat%0A%20%20%20%20%20%20id%3A%2021031067%0A%20%20%20%20%20%20node_id%3A%20MDQ6VXNlcjIxMDMxMDY3%0A%20%20%20%20%20%20avatar_url%3A%20https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%0A%20%20%20%20%20%20gravatar_id%3A%20%27%27%0A%20%20%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%0A%20%20%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat%0A%20%20%20%20%20%20followers_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowers%0A%20%20%20%20%20%20following_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowing%7B%2Fother_user%7D%0A%20%20%20%20%20%20gists_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fgists%7B%2Fgist_id%7D%0A%20%20%20%20%20%20starred_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%0A%20%20%20%20%20%20subscriptions_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fsubscriptions%0A%20%20%20%20%20%20organizations_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Forgs%0A%20%20%20%20%20%20repos_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Frepos%0A%20%20%20%20%20%20events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fevents%7B%2Fprivacy%7D%0A%20%20%20%20%20%20received_events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Freceived_events%0A%20%20%20%20%20%20type%3A%20User%0A%20%20%20%20%20%20site_admin%3A%20false%0A%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world%0A%20%20%20%20description%3A%0A%20%20%20%20fork%3A%20false%0A%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%0A%20%20%20%20forks_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fforks%0A%20%20%20%20keys_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fkeys%7B%2Fkey_id%7D%0A%20%20%20%20collaborators_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcollaborators%7B%2Fcollaborator%7D%0A%20%20%20%20teams_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fteams%0A%20%20%20%20hooks_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fhooks%0A%20%20%20%20issue_events_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fissues%2Fevents%7B%2Fnumber%7D%0A%20%20%20%20events_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fevents%0A%20%20%20%20assignees_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fassignees%7B%2Fuser%7D%0A%20%20%20%20branches_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fbranches%7B%2Fbranch%7D%0A%20%20%20%20tags_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Ftags%0A%20%20%20%20blobs_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fblobs%7B%2Fsha%7D%0A%20%20%20%20git_tags_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Ftags%7B%2Fsha%7D%0A%20%20%20%20git_refs_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Frefs%7B%2Fsha%7D%0A%20%20%20%20trees_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Ftrees%7B%2Fsha%7D%0A%20%20%20%20statuses_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fstatuses%2F%7Bsha%7D%0A%20%20%20%20languages_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Flanguages%0A%20%20%20%20stargazers_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fstargazers%0A%20%20%20%20contributors_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcontributors%0A%20%20%20%20subscribers_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsubscribers%0A%20%20%20%20subscription_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsubscription%0A%20%20%20%20commits_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcommits%7B%2Fsha%7D%0A%20%20%20%20git_commits_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fcommits%7B%2Fsha%7D%0A%20%20%20%20comments_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcomments%7B%2Fnumber%7D%0A%20%20%20%20issue_comment_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fissues%2Fcomments%7B%2Fnumber%7D%0A%20%20%20%20contents_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcontents%2F%7B%2Bpath%7D%0A%20%20%20%20compare_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%0A%20%20%20%20merges_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fmerges%0A%20%20%20%20archive_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2F%7Barchive_format%7D%7B%2Fref%7D%0A%20%20%20%20downloads_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fdownloads%0A%20%20%20%20issues_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fissues%7B%2Fnumber%7D%0A%20%20%20%20pulls_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fpulls%7B%2Fnumber%7D%0A%20%20%20%20milestones_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fmilestones%7B%2Fnumber%7D%0A%20%20%20%20notifications_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%0A%20%20%20%20labels_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Flabels%7B%2Fname%7D%0A%20%20%20%20releases_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Freleases%7B%2Fid%7D%0A%20%20%20%20deployments_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fdeployments%0A%20%20%20%20created_at%3A%20%272019-05-15T15%3A19%3A25Z%27%0A%20%20%20%20updated_at%3A%20%272019-05-15T15%3A21%3A03Z%27%0A%20%20%20%20pushed_at%3A%20%272019-05-15T15%3A20%3A57Z%27%0A%20%20%20%20git_url%3A%20git%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world.git%0A%20%20%20%20ssh_url%3A%20git%40github.com%3Aoctocat-repo%2Fhello-world.git%0A%20%20%20%20clone_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world.git%0A%20%20%20%20svn_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world%0A%20%20%20%20homepage%3A%0A%20%20%20%20size%3A%200%0A%20%20%20%20stargazers_count%3A%200%0A%20%20%20%20watchers_count%3A%200%0A%20%20%20%20language%3A%20Ruby%0A%20%20%20%20has_issues%3A%20true%0A%20%20%20%20has_projects%3A%20true%0A%20%20%20%20has_downloads%3A%20true%0A%20%20%20%20has_wiki%3A%20true%0A%20%20%20%20has_pages%3A%20true%0A%20%20%20%20forks_count%3A%201%0A%20%20%20%20mirror_url%3A%0A%20%20%20%20archived%3A%20false%0A%20%20%20%20disabled%3A%20false%0A%20%20%20%20open_issues_count%3A%202%0A%20%20%20%20license%3A%0A%20%20%20%20forks%3A%201%0A%20%20%20%20open_issues%3A%202%0A%20%20%20%20watchers%3A%200%0A%20%20%20%20default_branch%3A%20master%0A%20%20%20%20is_template%3A%20false%0A%20%20sender%3A%0A%20%20%20%20login%3A%20octocat%0A%20%20%20%20id%3A%2021031067%0A%20%20%20%20node_id%3A%20MDQ6VXNlcjIxMDMxMDY3%0A%20%20%20%20avatar_url%3A%20https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%0A%20%20%20%20gravatar_id%3A%20%27%27%0A%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%0A%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat%0A%20%20%20%20followers_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowers%0A%20%20%20%20following_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowing%7B%2Fother_user%7D%0A%20%20%20%20gists_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fgists%7B%2Fgist_id%7D%0A%20%20%20%20starred_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%0A%20%20%20%20subscriptions_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fsubscriptions%0A%20%20%20%20organizations_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Forgs%0A%20%20%20%20repos_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Frepos%0A%20%20%20%20events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fevents%7B%2Fprivacy%7D%0A%20%20%20%20received_events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Freceived_events%0A%20%20%20%20type%3A%20User%0A%20%20%20%20site_admin%3A%20false%0A + parameters: + pagination-before: + name: before + description: A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). + If specified, the query only searches for results before this cursor. For + more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + required: false + schema: + type: string + pagination-after: + name: after + description: A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). + If specified, the query only searches for results after this cursor. For more + information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + required: false + schema: + type: string + direction: + name: direction + description: The direction to sort the results by. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + ghsa_id: + name: ghsa_id + description: The GHSA (GitHub Security Advisory) identifier of the advisory. + in: path + required: true + schema: + type: string + per-page: + name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 30 + cursor: + name: cursor + description: 'Used for pagination: the starting delivery from which the page + of deliveries is fetched. Refer to the `link` header for the next and previous + page cursors.' + in: query + required: false + schema: + type: string + delivery-id: + name: delivery_id + in: path + required: true + schema: + type: integer + page: + name: page + description: The page number of the results to fetch. For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 1 + since: + name: since + description: 'Only show results that were last updated after the given time. + This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: false + schema: + type: string + format: date-time + installation-id: + name: installation_id + description: The unique identifier of the installation. + in: path + required: true + schema: + type: integer + examples: + default: + value: 1 + client-id: + name: client_id + in: path + required: true + description: The client ID of the GitHub app. + schema: + type: string + examples: + default: + value: Iv1.8a61f9b3a7aba766 + app-slug: + name: app_slug + in: path + required: true + schema: + type: string + assignment-id: + name: assignment_id + description: The unique identifier of the classroom assignment. + in: path + required: true + schema: + type: integer + classroom-id: + name: classroom_id + description: The unique identifier of the classroom. + in: path + required: true + schema: + type: integer + enterprise: + name: enterprise + description: The slug version of the enterprise name. + in: path + required: true + schema: + type: string + configuration-id: + name: configuration_id + description: The unique identifier of the code security configuration. + in: path + required: true + schema: + type: integer + dependabot-alert-comma-separated-states: + name: state + in: query + description: |- + A comma-separated list of states. If specified, only alerts with these states will be returned. + + Can be: `auto_dismissed`, `dismissed`, `fixed`, `open` + schema: + type: string + dependabot-alert-comma-separated-severities: + name: severity + in: query + description: |- + A comma-separated list of severities. If specified, only alerts with these severities will be returned. + + Can be: `low`, `medium`, `high`, `critical` + schema: + type: string + dependabot-alert-comma-separated-ecosystems: + name: ecosystem + in: query + description: |- + A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned. + + Can be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust` + schema: + type: string + dependabot-alert-comma-separated-packages: + name: package + in: query + description: A comma-separated list of package names. If specified, only alerts + for these packages will be returned. + schema: + type: string + dependabot-alert-comma-separated-epss: + name: epss_percentage + in: query + description: |- + CVE Exploit Prediction Scoring System (EPSS) percentage. Can be specified as: + - An exact number (`n`) + - Comparators such as `>n`, `=n`, `<=n` + - A range like `n..n`, where `n` is a number from 0.0 to 1.0 + + Filters the list of alerts based on EPSS percentages. If specified, only alerts with the provided EPSS percentages will be returned. + schema: + type: string + dependabot-alert-comma-separated-has: + name: has + in: query + description: |- + Filters the list of alerts based on whether the alert has the given value. If specified, only alerts meeting this criterion will be returned. + Multiple `has` filters can be passed to filter for alerts that have all of the values. Currently, only `patch` is supported. + schema: + oneOf: + - type: string + - type: array + items: + type: string + enum: + - patch + dependabot-alert-scope: + name: scope + in: query + description: The scope of the vulnerable dependency. If specified, only alerts + with this scope will be returned. + schema: + type: string + enum: + - development + - runtime + dependabot-alert-sort: + name: sort + in: query + description: |- + The property by which to sort the results. + `created` means when the alert was created. + `updated` means when the alert's state last changed. + `epss_percentage` sorts alerts by the Exploit Prediction Scoring System (EPSS) percentage. + schema: + type: string + enum: + - created + - updated + - epss_percentage + default: created + enterprise-team: + name: enterprise-team + description: The slug version of the enterprise team name. You can also substitute + this value with the enterprise team id. + in: path + required: true + schema: + type: string + username: + name: username + description: The handle for the GitHub user account. + in: path + required: true + schema: + type: string + org: + name: org + description: The organization name. The name is not case sensitive. + in: path + required: true + schema: + type: string + team-slug: + name: team_slug + description: The slug of the team name. + in: path + required: true + schema: + type: string + public-events-per-page: + name: per_page + description: The number of results per page (max 100). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 15 + gist-id: + name: gist_id + description: The unique identifier of the gist. + in: path + required: true + schema: + type: string + comment-id: + name: comment_id + description: The unique identifier of the comment. + in: path + required: true + schema: + type: integer + format: int64 + labels: + name: labels + description: 'A list of comma separated label names. Example: `bug,ui,@high`' + in: query + required: false + schema: + type: string + account-id: + name: account_id + description: account_id parameter + in: path + required: true + schema: + type: integer + plan-id: + name: plan_id + description: The unique identifier of the plan. + in: path + required: true + schema: + type: integer + sort: + name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + default: created + owner: + name: owner + description: The account owner of the repository. The name is not case sensitive. + in: path + required: true + schema: + type: string + repo: + name: repo + description: The name of the repository without the `.git` extension. The name + is not case sensitive. + in: path + required: true + schema: + type: string + all: + name: all + description: If `true`, show notifications marked as read. + in: query + required: false + schema: + type: boolean + default: false + participating: + name: participating + description: If `true`, only shows notifications in which the user is directly + participating or mentioned. + in: query + required: false + schema: + type: boolean + default: false + before: + name: before + description: 'Only show notifications updated before the given time. This is + a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: + `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: false + schema: + type: string + format: date-time + thread-id: + name: thread_id + description: The unique identifier of the notification thread. This corresponds + to the value returned in the `id` field when you retrieve notifications (for + example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). + in: path + required: true + schema: + type: integer + since-org: + name: since + description: An organization ID. Only return organizations with an ID greater + than this ID. + in: query + required: false + schema: + type: integer + budget: + name: budget_id + description: The ID corresponding to the budget. + in: path + required: true + schema: + type: string + billing-usage-report-year: + name: year + description: If specified, only return results for a single year. The value + of `year` is an integer with four digits representing a year. For example, + `2025`. Default value is the current year. + in: query + required: false + schema: + type: integer + billing-usage-report-month-default: + name: month + description: If specified, only return results for a single month. The value + of `month` is an integer between `1` and `12`. Default value is the current + month. If no year is specified the default `year` is used. + in: query + required: false + schema: + type: integer + billing-usage-report-day: + name: day + description: If specified, only return results for a single day. The value of + `day` is an integer between `1` and `31`. If no `year` or `month` is specified, + the default `year` and `month` are used. + in: query + required: false + schema: + type: integer + billing-usage-report-user: + name: user + description: The user name to query usage for. The name is not case sensitive. + in: query + required: false + schema: + type: string + billing-usage-report-model: + name: model + description: The model name to query usage for. The name is not case sensitive. + in: query + required: false + schema: + type: string + billing-usage-report-product: + name: product + description: The product name to query usage for. The name is not case sensitive. + in: query + required: false + schema: + type: string + billing-usage-report-month: + name: month + description: If specified, only return results for a single month. The value + of `month` is an integer between `1` and `12`. If no year is specified the + default `year` is used. + in: query + required: false + schema: + type: integer + billing-usage-report-repository: + name: repository + description: The repository name to query for usage in the format owner/repository. + in: query + required: false + schema: + type: string + billing-usage-report-sku: + name: sku + description: The SKU to query for usage. + in: query + required: false + schema: + type: string + actions-custom-image-definition-id: + name: image_definition_id + description: Image definition ID of custom image + in: path + required: true + schema: + type: integer + actions-custom-image-version: + name: version + description: Version of a custom image + in: path + required: true + schema: + type: string + pattern: "^\\d+\\.\\d+\\.\\d+$" + hosted-runner-id: + name: hosted_runner_id + description: Unique identifier of the GitHub-hosted runner. + in: path + required: true + schema: + type: integer + repository-id: + name: repository_id + description: The unique identifier of the repository. + in: path + required: true + schema: + type: integer + visible-to-repository: + name: visible_to_repository + description: Only return runner groups that are allowed to be used by this repository. + in: query + required: false + schema: + type: string + runner-group-id: + name: runner_group_id + description: Unique identifier of the self-hosted runner group. + in: path + required: true + schema: + type: integer + runner-id: + name: runner_id + description: Unique identifier of the self-hosted runner. + in: path + required: true + schema: + type: integer + runner-label-name: + name: name + description: The name of a self-hosted runner's custom label. + in: path + required: true + schema: + type: string + secret-name: + name: secret_name + description: The name of the secret. + in: path + required: true + schema: + type: string + variables-per-page: + name: per_page + description: The number of results per page (max 30). For more information, + see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + in: query + schema: + type: integer + default: 10 + variable-name: + name: name + description: The name of the variable. + in: path + required: true + schema: + type: string + subject-digest: + name: subject_digest + description: The SHA256 digest of the artifact, in the form `sha256:HEX_DIGEST`. + in: path + required: true + schema: + type: string + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + tool-name: + name: tool_name + description: The name of a code scanning tool. Only results by this tool will + be listed. You can specify the tool by using either `tool_name` or `tool_guid`, + but not both. + in: query + required: false + schema: + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + tool-guid: + name: tool_guid + description: The GUID of a code scanning tool. Only results by this tool will + be listed. Note that some code scanning tools may not include a GUID in their + analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, + but not both. + in: query + required: false + schema: + "$ref": "#/components/schemas/code-scanning-analysis-tool-guid" + dependabot-alert-comma-separated-artifact-registry-urls: + name: artifact_registry_url + in: query + description: A comma-separated list of artifact registry URLs. If specified, + only alerts for repositories with storage records matching these URLs will + be returned. + schema: + type: string + dependabot-alert-comma-separated-artifact-registry: + name: artifact_registry + in: query + description: |- + A comma-separated list of Artifact Registry name strings. If specified, only alerts for repositories with storage records matching these registries will be returned. + + Can be: `jfrog-artifactory` + schema: + type: string + dependabot-alert-org-scope-comma-separated-has: + name: has + in: query + description: |- + Filters the list of alerts based on whether the alert has the given value. If specified, only alerts meeting this criterion will be returned. + Multiple `has` filters can be passed to filter for alerts that have all of the values. + schema: + oneOf: + - type: string + - type: array + items: + type: string + enum: + - patch + - deployment + dependabot-alert-comma-separated-runtime-risk: + name: runtime_risk + in: query + description: |- + A comma-separated list of runtime risk strings. If specified, only alerts for repositories with deployment records matching these risks will be returned. + + Can be: `critical-resource`, `internet-exposed`, `sensitive-data`, `lateral-movement` + schema: + type: string + hook-id: + name: hook_id + description: The unique identifier of the hook. You can find this value in the + `X-GitHub-Hook-ID` header of a webhook delivery. + in: path + required: true + schema: + type: integer + api-insights-actor-type: + name: actor_type + in: path + description: The type of the actor + required: true + schema: + type: string + enum: + - installation + - classic_pat + - fine_grained_pat + - oauth_app + - github_app_user_to_server + api-insights-actor-id: + name: actor_id + in: path + description: The ID of the actor + required: true + schema: + type: integer + api-insights-min-timestamp: + name: min_timestamp + description: 'The minimum timestamp to query for stats. This is a timestamp + in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: true + schema: + type: string + api-insights-max-timestamp: + name: max_timestamp + description: 'The maximum timestamp to query for stats. Defaults to the time + 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: false + schema: + type: string + api-insights-route-stats-sort: + name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: array + items: + type: string + enum: + - last_rate_limited_timestamp + - last_request_timestamp + - rate_limited_request_count + - http_method + - api_route + - total_request_count + default: total_request_count + api-insights-api-route-substring: + name: api_route_substring + in: query + description: Providing a substring will filter results where the API route contains + the substring. This is a case-insensitive search. + required: false + schema: + type: string + api-insights-sort: + name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: array + items: + type: string + enum: + - last_rate_limited_timestamp + - last_request_timestamp + - rate_limited_request_count + - subject_name + - total_request_count + default: total_request_count + api-insights-subject-name-substring: + name: subject_name_substring + in: query + description: Providing a substring will filter results where the subject name + contains the substring. This is a case-insensitive search. + required: false + schema: + type: string + api-insights-user-id: + name: user_id + in: path + description: The ID of the user to query for stats + required: true + schema: + type: string + api-insights-timestamp-increment: + name: timestamp_increment + description: The increment of time used to breakdown the query results (5m, + 10m, 1h, etc.) + in: query + required: true + schema: + type: string + api-insights-actor-name-substring: + name: actor_name_substring + in: query + description: Providing a substring will filter results where the actor name + contains the substring. This is a case-insensitive search. + required: false + schema: + type: string + invitation-id: + name: invitation_id + description: The unique identifier of the invitation. + in: path + required: true + schema: + type: integer + issue-type-id: + name: issue_type_id + description: The unique identifier of the issue type. + in: path + required: true + schema: + type: integer + codespace-name: + name: codespace_name + in: path + required: true + description: The name of the codespace. + schema: + type: string + migration-id: + name: migration_id + description: The unique identifier of the migration. + in: path + required: true + schema: + type: integer + repo-name: + name: repo_name + description: repo_name parameter + in: path + required: true + schema: + type: string + role-id: + name: role_id + description: The unique identifier of the role. + in: path + required: true + schema: + type: integer + package-visibility: + name: visibility + description: |- + The selected visibility of the packages. This parameter is optional and only filters an existing result set. + + The `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`. + For the list of GitHub Packages registries that support granular permissions, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + in: query + required: false + schema: + type: string + enum: + - public + - private + - internal + package-type: + name: package_type + description: The type of supported package. Packages in GitHub's Gradle registry + have the type `maven`. Docker images pushed to GitHub's Container registry + (`ghcr.io`) have the type `container`. You can use the type `docker` to find + images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), + even if these have now been migrated to the Container registry. + in: path + required: true + schema: + type: string + enum: + - npm + - maven + - rubygems + - docker + - nuget + - container + package-name: + name: package_name + description: The name of the package. + in: path + required: true + schema: + type: string + package-version-id: + name: package_version_id + description: Unique identifier of the package version. + in: path + required: true + schema: + type: integer + personal-access-token-sort: + name: sort + description: The property by which to sort the results. + in: query + required: false + schema: + type: string + enum: + - created_at + default: created_at + personal-access-token-owner: + name: owner + description: A list of owner usernames to use to filter the results. + in: query + required: false + schema: + type: array + maxItems: 10 + items: + type: string + example: owner[]=octocat1,owner[]=octocat2 + personal-access-token-repository: + name: repository + description: The name of the repository to use to filter the results. + in: query + required: false + schema: + type: string + example: Hello-World + personal-access-token-permission: + name: permission + description: The permission to use to filter the results. + in: query + required: false + schema: + type: string + example: issues_read + personal-access-token-before: + name: last_used_before + description: 'Only show fine-grained personal access tokens used before the + given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: false + schema: + type: string + format: date-time + personal-access-token-after: + name: last_used_after + description: 'Only show fine-grained personal access tokens used after the given + time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format: `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: false + schema: + type: string + format: date-time + personal-access-token-token-id: + name: token_id + description: The ID of the token + in: query + required: false + schema: + type: array + maxItems: 50 + items: + type: string + example: token_id[]=1,token_id[]=2 + fine-grained-personal-access-token-id: + name: pat_id + description: The unique identifier of the fine-grained personal access token. + in: path + required: true + schema: + type: integer + project-number: + name: project_number + description: The project's number. + in: path + required: true + schema: + type: integer + field-id: + name: field_id + description: The unique identifier of the field. + in: path + required: true + schema: + type: integer + item-id: + name: item_id + description: The unique identifier of the project item. + in: path + required: true + schema: + type: integer + view-number: + name: view_number + description: The number that identifies the project view. + in: path + required: true + schema: + type: integer + custom-property-name: + name: custom_property_name + description: The custom property name + in: path + required: true + schema: + type: string + ruleset-targets: + name: targets + description: | + A comma-separated list of rule targets to filter by. + If provided, only rulesets that apply to the specified targets will be returned. + For example, `branch,tag,push`. + in: query + required: false + schema: + type: string + example: branch,tag,push + ref-in-query: + name: ref + description: The name of the ref. Cannot contain wildcard characters. Optionally + prefix with `refs/heads/` to limit to branches or `refs/tags/` to limit to + tags. Omit the prefix to search across all refs. When specified, only rule + evaluations triggered for this ref will be returned. + in: query + schema: + type: string + x-multi-segment: true + repository-name-in-query: + name: repository_name + description: The name of the repository to filter on. + in: query + schema: + type: string + time-period: + name: time_period + description: |- + The time period to filter by. + + For example, `day` will filter for rule suites that occurred in the past 24 hours, and `week` will filter for rule suites that occurred in the past 7 days (168 hours). + in: query + required: false + schema: + type: string + enum: + - hour + - day + - week + - month + default: day + actor-name-in-query: + name: actor_name + description: The handle for the GitHub user account to filter on. When specified, + only rule evaluations triggered by this actor will be returned. + in: query + schema: + type: string + rule-suite-result: + name: rule_suite_result + description: The rule suite results to filter on. When specified, only suites + with this result will be returned. + in: query + schema: + type: string + enum: + - pass + - fail + - bypass + - all + default: all + rule-suite-id: + name: rule_suite_id + description: |- + The unique identifier of the rule suite result. + To get this ID, you can use [GET /repos/{owner}/{repo}/rulesets/rule-suites](https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites) + for repositories and [GET /orgs/{org}/rulesets/rule-suites](https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites) + for organizations. + in: path + required: true + schema: + type: integer + secret-scanning-alert-state: + name: state + in: query + description: Set to `open` or `resolved` to only list secret scanning alerts + in a specific state. + required: false + schema: + type: string + enum: + - open + - resolved + secret-scanning-alert-secret-type: + name: secret_type + in: query + description: A comma-separated list of secret types to return. All default secret + patterns are returned. To return generic patterns, pass the token name(s) + in the parameter. See "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)" + for a complete list of secret types. + required: false + schema: + type: string + secret-scanning-alert-resolution: + name: resolution + in: query + description: A comma-separated list of resolutions. Only secret scanning alerts + with one of these resolutions are listed. Valid resolutions are `false_positive`, + `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. + required: false + schema: + type: string + secret-scanning-alert-assignee: + name: assignee + in: query + description: Filters alerts by assignee. Use `*` to get all assigned alerts, + `none` to get all unassigned alerts, or a GitHub username to get alerts assigned + to a specific user. + required: false + schema: + type: string + examples: + assigned-to-user: + value: octocat + summary: Filter for alerts assigned to the user "octocat" + all-assigned: + value: "*" + summary: Filter for all assigned alerts + all-unassigned: + value: none + summary: Filter for all unassigned alerts + secret-scanning-alert-sort: + name: sort + description: The property to sort the results by. `created` means when the alert + was created. `updated` means when the alert was updated or resolved. + in: query + required: false + schema: + type: string + enum: + - created + - updated + default: created + secret-scanning-pagination-before-org-repo: + name: before + description: A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). + If specified, the query only searches for events before this cursor. To receive + an initial cursor on your first request, include an empty "before" query string. + in: query + required: false + schema: + type: string + secret-scanning-pagination-after-org-repo: + name: after + description: A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). + If specified, the query only searches for events after this cursor. To receive + an initial cursor on your first request, include an empty "after" query string. + in: query + required: false + schema: + type: string + secret-scanning-alert-validity: + name: validity + in: query + description: A comma-separated list of validities that, when present, will return + alerts that match the validities in this list. Valid options are `active`, + `inactive`, and `unknown`. + required: false + schema: + type: string + secret-scanning-alert-publicly-leaked: + name: is_publicly_leaked + in: query + description: A boolean value representing whether or not to filter alerts by + the publicly-leaked tag being present. + required: false + schema: + type: boolean + default: false + secret-scanning-alert-multi-repo: + name: is_multi_repo + in: query + description: A boolean value representing whether or not to filter alerts by + the multi-repo tag being present. + required: false + schema: + type: boolean + default: false + secret-scanning-alert-hide-secret: + name: hide_secret + in: query + description: A boolean value representing whether or not to hide literal secrets + in the results. + required: false + schema: + type: boolean + default: false + network-configuration-id: + name: network_configuration_id + description: Unique identifier of the hosted compute network configuration. + in: path + required: true + schema: + type: string + network-settings-id: + name: network_settings_id + description: Unique identifier of the hosted compute network settings. + in: path + required: true + schema: + type: string + security-product: + name: security_product + in: path + description: The security feature to enable or disable. + required: true + schema: + type: string + enum: + - dependency_graph + - dependabot_alerts + - dependabot_security_updates + - advanced_security + - code_scanning_default_setup + - secret_scanning + - secret_scanning_push_protection + org-security-product-enablement: + name: enablement + in: path + description: |- + The action to take. + + `enable_all` means to enable the specified security feature for all repositories in the organization. + `disable_all` means to disable the specified security feature for all repositories in the organization. + required: true + schema: + type: string + enum: + - enable_all + - disable_all + artifact-name: + name: name + description: The name field of an artifact. When specified, only artifacts with + this name will be returned. + in: query + required: false + schema: + type: string + artifact-id: + name: artifact_id + description: The unique identifier of the artifact. + in: path + required: true + schema: + type: integer + actions-cache-git-ref-full: + name: ref + description: The full Git reference for narrowing down the cache. The `ref` + for a branch should be formatted as `refs/heads/`. To reference + a pull request use `refs/pull//merge`. + in: query + required: false + schema: + type: string + actions-cache-key: + name: key + description: An explicit key or prefix for identifying the cache + in: query + required: false + schema: + type: string + actions-cache-list-sort: + name: sort + description: The property to sort the results by. `created_at` means when the + cache was created. `last_accessed_at` means when the cache was last accessed. + `size_in_bytes` is the size of the cache in bytes. + in: query + required: false + schema: + type: string + enum: + - created_at + - last_accessed_at + - size_in_bytes + default: last_accessed_at + actions-cache-key-required: + name: key + description: A key for identifying the cache. + in: query + required: true + schema: + type: string + cache-id: + name: cache_id + description: The unique identifier of the GitHub Actions cache. + in: path + required: true + schema: + type: integer + job-id: + name: job_id + description: The unique identifier of the job. + in: path + required: true + schema: + type: integer + actor: + name: actor + description: Returns someone's workflow runs. Use the login for the user who + created the `push` associated with the check suite or workflow run. + in: query + required: false + schema: + type: string + workflow-run-branch: + name: branch + description: Returns workflow runs associated with a branch. Use the name of + the branch of the `push`. + in: query + required: false + schema: + type: string + event: + name: event + description: Returns workflow run triggered by the event you specify. For example, + `push`, `pull_request` or `issue`. For more information, see "[Events that + trigger workflows](https://docs.github.com/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." + in: query + required: false + schema: + type: string + workflow-run-status: + name: status + description: Returns workflow runs with the check run `status` or `conclusion` + that you specify. For example, a conclusion can be `success` or a status can + be `in_progress`. Only GitHub Actions can set a status of `waiting`, `pending`, + or `requested`. + in: query + required: false + schema: + type: string + enum: + - completed + - action_required + - cancelled + - failure + - neutral + - skipped + - stale + - success + - timed_out + - in_progress + - queued + - requested + - waiting + - pending + created: + name: created + description: Returns workflow runs created within the given date-time range. + For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + in: query + required: false + schema: + type: string + format: date-time + exclude-pull-requests: + name: exclude_pull_requests + description: If `true` pull requests are omitted from the response (empty array). + in: query + required: false + schema: + type: boolean + default: false + workflow-run-check-suite-id: + name: check_suite_id + description: Returns workflow runs with the `check_suite_id` that you specify. + in: query + schema: + type: integer + workflow-run-head-sha: + name: head_sha + description: Only returns workflow runs that are associated with the specified + `head_sha`. + in: query + required: false + schema: + type: string + run-id: + name: run_id + description: The unique identifier of the workflow run. + in: path + required: true + schema: + type: integer + attempt-number: + name: attempt_number + description: The attempt number of the workflow run. + in: path + required: true + schema: + type: integer + workflow-id: + name: workflow_id + in: path + description: The ID of the workflow. You can also pass the workflow file name + as a string. + required: true + schema: + oneOf: + - type: integer + - type: string + autolink-id: + name: autolink_id + description: The unique identifier of the autolink. + in: path + required: true + schema: + type: integer + branch: + name: branch + description: The name of the branch. Cannot contain wildcard characters. To + use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). + in: path + required: true + schema: + type: string + x-multi-segment: true + check-run-id: + name: check_run_id + description: The unique identifier of the check run. + in: path + required: true + schema: + type: integer + check-suite-id: + name: check_suite_id + description: The unique identifier of the check suite. + in: path + required: true + schema: + type: integer + check-name: + name: check_name + description: Returns check runs with the specified `name`. + in: query + required: false + schema: + type: string + status: + name: status + description: Returns check runs with the specified `status`. + in: query + required: false + schema: + type: string + enum: + - queued + - in_progress + - completed + git-ref: + name: ref + description: The Git reference for the results you want to list. The `ref` for + a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. + in: query + required: false + schema: + "$ref": "#/components/schemas/code-scanning-ref" + pr-alias: + name: pr + description: The number of the pull request for the results you want to list. + in: query + required: false + schema: + type: integer + alert-number: + name: alert_number + in: path + description: The number that identifies an alert. You can find this at the end + of the URL for a code scanning alert within GitHub, and in the `number` field + in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` + operation. + required: true + schema: + "$ref": "#/components/schemas/alert-number" + reaction-id: + name: reaction_id + description: The unique identifier of the reaction. + in: path + required: true + schema: + type: integer + commit-sha: + name: commit_sha + description: The SHA of the commit. + in: path + required: true + schema: + type: string + x-multi-segment: true + commit-ref: + name: ref + description: The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), + or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" + in the Git documentation. + in: path + required: true + schema: + type: string + x-multi-segment: true + dependabot-alert-comma-separated-manifests: + name: manifest + in: query + description: A comma-separated list of full manifest paths. If specified, only + alerts for these manifests will be returned. + schema: + type: string + dependabot-alert-number: + name: alert_number + in: path + description: |- + The number that identifies a Dependabot alert in its repository. + You can find this at the end of the URL for a Dependabot alert within GitHub, + or in `number` fields in the response from the + `GET /repos/{owner}/{repo}/dependabot/alerts` operation. + required: true + schema: + "$ref": "#/components/schemas/alert-number" + manifest-path: + name: name + description: The full path, relative to the repository root, of the dependency + manifest file. + in: query + required: false + schema: + type: string + deployment-id: + name: deployment_id + description: deployment_id parameter + in: path + required: true + schema: + type: integer + environment-name: + name: environment_name + in: path + required: true + description: The name of the environment. The name must be URL encoded. For + example, any slashes in the name must be replaced with `%2F`. + schema: + type: string + branch-policy-id: + name: branch_policy_id + in: path + required: true + description: The unique identifier of the branch policy. + schema: + type: integer + protection-rule-id: + name: protection_rule_id + description: The unique identifier of the protection rule. + in: path + required: true + schema: + type: integer + git-ref-only: + name: ref + description: The Git reference. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" + in the Git documentation. + in: path + required: true + example: heads/feature-a + schema: + type: string + x-multi-segment: true + since-user: + name: since + description: A user ID. Only return users with an ID greater than this ID. + in: query + required: false + schema: + type: integer + issue-number: + name: issue_number + description: The number that identifies the issue. + in: path + required: true + schema: + type: integer + key-id: + name: key_id + description: The unique identifier of the key. + in: path + required: true + schema: + type: integer + milestone-number: + name: milestone_number + description: The number that identifies the milestone. + in: path + required: true + schema: + type: integer + pages-deployment-id: + name: pages_deployment_id + description: The ID of the Pages deployment. You can also give the commit SHA + of the deployment. + in: path + required: true + schema: + oneOf: + - type: integer + - type: string + pull-number: + name: pull_number + description: The number that identifies the pull request. + in: path + required: true + schema: + type: integer + review-id: + name: review_id + description: The unique identifier of the review. + in: path + required: true + schema: + type: integer + asset-id: + name: asset_id + description: The unique identifier of the asset. + in: path + required: true + schema: + type: integer + release-id: + name: release_id + description: The unique identifier of the release. + in: path + required: true + schema: + type: integer + tag-protection-id: + name: tag_protection_id + description: The unique identifier of the tag protection. + in: path + required: true + schema: + type: integer + per: + name: per + description: The time frame to display results for. + in: query + required: false + schema: + type: string + enum: + - day + - week + default: day + since-repo: + name: since + description: A repository ID. Only return repositories with an ID greater than + this ID. + in: query + required: false + schema: + type: integer + order: + name: order + description: Determines whether the first search result returned is the highest + number of matches (`desc`) or lowest number of matches (`asc`). This parameter + is ignored unless you provide `sort`. + in: query + required: false + schema: + type: string + enum: + - desc + - asc + default: desc + issues-advanced-search: + name: advanced_search + description: |- + Set to `true` to use advanced search. + Example: `http://api.github.com/search/issues?q={query}&advanced_search=true` + in: query + required: false + schema: + type: string + team-id: + name: team_id + description: The unique identifier of the team. + in: path + required: true + schema: + type: integer + repository-id-in-query: + name: repository_id + description: ID of the Repository to filter on + in: query + schema: + type: integer + export-id: + name: export_id + in: path + required: true + description: The ID of the export operation, or `latest`. Currently only `latest` + is currently supported. + schema: + type: string + gpg-key-id: + name: gpg_key_id + description: The unique identifier of the GPG key. + in: path + required: true + schema: + type: integer + since-repo-date: + name: since + description: 'Only show repositories updated after the given time. This is a + timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: false + schema: + type: string + format: date-time + before-repo-date: + name: before + description: 'Only show repositories updated before the given time. This is + a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: + `YYYY-MM-DDTHH:MM:SSZ`.' + in: query + required: false + schema: + type: string + format: date-time + ssh-signing-key-id: + name: ssh_signing_key_id + description: The unique identifier of the SSH signing key. + in: path + required: true + schema: + type: integer + sort-starred: + name: sort + description: The property to sort the results by. `created` means when the repository + was starred. `updated` means when the repository was last pushed to. + in: query + required: false + schema: + type: string + enum: + - created + - updated + default: created + user-id: + name: user_id + description: The unique identifier of the user. + in: path + required: true + schema: + type: string + responses: + validation_failed_simple: + description: Validation failed, or the endpoint has been spammed. + content: + application/json: + schema: + "$ref": "#/components/schemas/validation-error-simple" + not_found: + description: Resource not found + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + bad_request: + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + application/scim+json: + schema: + "$ref": "#/components/schemas/scim-error" + validation_failed: + description: Validation failed, or the endpoint has been spammed. + content: + application/json: + schema: + "$ref": "#/components/schemas/validation-error" + accepted: + description: Accepted + content: + application/json: + schema: + type: object + examples: + default: + value: + not_modified: + description: Not modified + requires_authentication: + description: Requires authentication + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + forbidden: + description: Forbidden + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + internal_error: + description: Internal Error + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + conflict: + description: Conflict + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + no_content: + description: A header with no content is returned. + service_unavailable: + description: Service unavailable + content: + application/json: + schema: + type: object + properties: + code: + type: string + message: + type: string + documentation_url: + type: string + forbidden_gist: + description: Forbidden Gist + content: + application/json: + schema: + type: object + properties: + block: + type: object + properties: + reason: + type: string + created_at: + type: string + html_url: + type: string + nullable: true + message: + type: string + documentation_url: + type: string + moved_permanently: + description: Moved permanently + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + get_all_budgets: + description: Response when getting all budgets + content: + application/json: + schema: + "$ref": "#/components/schemas/get_all_budgets" + examples: + default: + "$ref": "#/components/examples/get_all_budgets" + budget: + description: Response when updating a budget + content: + application/json: + schema: + "$ref": "#/components/schemas/get-budget" + examples: + default: + "$ref": "#/components/examples/get-budget" + delete-budget: + description: Response when deleting a budget + content: + application/json: + schema: + "$ref": "#/components/schemas/delete-budget" + examples: + default: + "$ref": "#/components/examples/delete-budget" + billing_premium_request_usage_report_org: + description: Response when getting a billing premium request usage report + content: + application/json: + schema: + "$ref": "#/components/schemas/billing-premium-request-usage-report-org" + examples: + default: + "$ref": "#/components/examples/billing-premium-request-usage-report-org" + billing_usage_report_org: + description: Billing usage report response for an organization + content: + application/json: + schema: + "$ref": "#/components/schemas/billing-usage-report" + examples: + default: + "$ref": "#/components/examples/billing-usage-report" + billing_usage_summary_report_org: + description: Response when getting a billing usage summary + content: + application/json: + schema: + "$ref": "#/components/schemas/billing-usage-summary-report-org" + examples: + default: + "$ref": "#/components/examples/billing-usage-summary-report-org" + actions_runner_jitconfig: + description: Response + content: + application/json: + schema: + type: object + required: + - runner + - encoded_jit_config + properties: + runner: + "$ref": "#/components/schemas/runner" + encoded_jit_config: + type: string + description: The base64 encoded runner configuration. + examples: + default: + "$ref": "#/components/examples/runner-jitconfig" + actions_runner_labels: + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - labels + properties: + total_count: + type: integer + labels: + type: array + items: + "$ref": "#/components/schemas/runner-label" + examples: + default: + "$ref": "#/components/examples/runner-labels" + actions_runner_labels_readonly: + description: Response + content: + application/json: + schema: + type: object + required: + - total_count + - labels + properties: + total_count: + type: integer + labels: + type: array + items: + "$ref": "#/components/schemas/runner-label" + examples: + default: + "$ref": "#/components/examples/runner-labels-readonly" + usage_metrics_api_disabled: + description: Copilot Usage Merics API setting is disabled at the organization + or enterprise level. + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + package_es_list_error: + description: The value of `per_page` multiplied by `page` cannot be greater + than 10000. + temporary_redirect: + description: Temporary Redirect + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + gone: + description: Gone + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + code_scanning_forbidden_read: + description: Response if GitHub Advanced Security is not enabled for this repository + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + code_scanning_forbidden_write: + description: Response if the repository is archived or if GitHub Advanced Security + is not enabled for this repository + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + code_scanning_bad_request: + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + examples: + default: + "$ref": "#/components/examples/code-scanning-bad-request" + code_scanning_autofix_create_forbidden: + description: Response if the repository is archived, if GitHub Advanced Security + is not enabled for this repository or if rate limit is exceeded + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + unprocessable_analysis: + description: Response if analysis could not be processed + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + found: + description: Found + code_scanning_conflict: + description: Response if there is already a validation run in progress with + a different default setup configuration + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + code_scanning_invalid_state: + description: Response if the configuration change cannot be made because the + repository is not in the required state + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + dependency_review_forbidden: + description: Response for a private repository when GitHub Advanced Security + is not enabled, or if used against a fork + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + porter_maintenance: + description: Unavailable due to service under maintenance. + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + unacceptable: + description: Unacceptable + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + billing_premium_request_usage_report_user: + description: Response when getting a billing premium request usage report + content: + application/json: + schema: + "$ref": "#/components/schemas/billing-premium-request-usage-report-user" + examples: + default: + "$ref": "#/components/examples/billing-premium-request-usage-report-user" + billing_usage_report_user: + description: Response when getting a billing usage report + content: + application/json: + schema: + "$ref": "#/components/schemas/billing-usage-report-user" + examples: + default: + "$ref": "#/components/examples/billing-usage-report-user" + billing_usage_summary_report_user: + description: Response when getting a billing usage summary + content: + application/json: + schema: + "$ref": "#/components/schemas/billing-usage-summary-report-user" + examples: + default: + "$ref": "#/components/examples/billing-usage-summary-report-user" + headers: + link: + example: ; rel="next", ; + rel="last" + schema: + type: string + content-type: + example: text/html + schema: + type: string + x-common-marker-version: + example: 0.17.4 + schema: + type: string + x-rate-limit-limit: + example: 5000 + schema: + type: integer + x-rate-limit-remaining: + example: 4999 + schema: + type: integer + x-rate-limit-reset: + example: 1590701888 + schema: + type: integer + format: timestamp + location: + example: https://pipelines.actions.githubusercontent.com/OhgS4QRKqmgx7bKC27GKU83jnQjyeqG8oIMTge8eqtheppcmw8/_apis/pipelines/1/runs/176/signedlogcontent?urlExpires=2020-01-24T18%3A10%3A31.5729946Z&urlSigningMethod=HMACV1&urlSignature=agG73JakPYkHrh06seAkvmH7rBR4Ji4c2%2B6a2ejYh3E%3D + schema: + type: string diff --git a/tests/bench/specs/kubernetes.yaml b/tests/bench/specs/kubernetes.yaml new file mode 100644 index 0000000..7648d79 --- /dev/null +++ b/tests/bench/specs/kubernetes.yaml @@ -0,0 +1,95912 @@ +{ + "definitions": { + "io.k8s.api.admissionregistration.v1.AuditAnnotation": { + "description": "AuditAnnotation describes how to produce an audit annotation for an API request.", + "properties": { + "key": { + "description": "key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\nThe key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \"{ValidatingAdmissionPolicy name}/{key}\".\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded.\n\nRequired.", + "type": "string" + }, + "valueExpression": { + "description": "valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb.\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list.\n\nRequired.", + "type": "string" + } + }, + "required": [ + "key", + "valueExpression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ExpressionWarning": { + "description": "ExpressionWarning is a warning information that targets a specific expression.", + "properties": { + "fieldRef": { + "description": "fieldRef is the path to the field that refers to the expression. For example, the reference to the expression of the first item of validations is \"spec.validations[0].expression\"", + "type": "string" + }, + "warning": { + "description": "warning contains the content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.", + "type": "string" + } + }, + "required": [ + "fieldRef", + "warning" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.MatchCondition": { + "description": "MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.", + "properties": { + "expression": { + "description": "expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.", + "type": "string" + }, + "name": { + "description": "name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.MatchResources": { + "description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "properties": { + "excludeResourceRules": { + "description": "excludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"MatchResources\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "namespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "objectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "resourceRules": { + "description": "resourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1.MutatingWebhook": { + "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", + "properties": { + "admissionReviewVersions": { + "description": "admissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "clientConfig": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", + "description": "clientConfig defines how to communicate with the hook. Required" + }, + "failurePolicy": { + "description": "failurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchConditions": { + "description": "matchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "name": { + "description": "name is the name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "namespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "objectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "reinvocationPolicy": { + "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", + "type": "string" + }, + "rules": { + "description": "rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "sideEffects": { + "description": "sideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", + "type": "string" + }, + "timeoutSeconds": { + "description": "timeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "name", + "clientConfig", + "sideEffects", + "admissionReviewVersions" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { + "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "webhooks": { + "description": "webhooks is a list of webhooks and the affected resources and operations.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { + "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of MutatingWebhookConfiguration.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfigurationList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.NamedRuleWithOperations": { + "description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.", + "properties": { + "apiGroups": { + "description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "apiVersions": { + "description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "operations": { + "description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceNames": { + "description": "resourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1.ParamKind": { + "description": "ParamKind is a tuple of Group Kind and Version.", + "properties": { + "apiVersion": { + "description": "apiVersion is the API group version the resources belong to. In format of \"group/version\". Required.", + "type": "string" + }, + "kind": { + "description": "kind is the API kind the resources belong to. Required.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1.ParamRef": { + "description": "ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.", + "properties": { + "name": { + "description": "name is the name of the resource being referenced.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\n\nA single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\n\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\n\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.", + "type": "string" + }, + "parameterNotFoundAction": { + "description": "parameterNotFoundAction controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\n\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset." + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1.RuleWithOperations": { + "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", + "properties": { + "apiGroups": { + "description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "apiVersions": { + "description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "operations": { + "description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "properties": { + "name": { + "description": "name is the name of the service. Required", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the service. Required", + "type": "string" + }, + "path": { + "description": "path is an optional URL path which will be sent in any request to this service.", + "type": "string" + }, + "port": { + "description": "port is the port on the service that hosts the webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "namespace", + "name" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.TypeChecking": { + "description": "TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy", + "properties": { + "expressionWarnings": { + "description": "expressionWarnings contains the type checking warnings for each expression.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ExpressionWarning" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy": { + "description": "ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicySpec", + "description": "spec defines the desired behavior of the ValidatingAdmissionPolicy." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyStatus", + "description": "status represents the current status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding": { + "description": "ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding.\n\nThe CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingSpec", + "description": "spec defines the desired behavior of the ValidatingAdmissionPolicyBinding." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingList": { + "description": "ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of PolicyBinding.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingSpec": { + "description": "ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.", + "properties": { + "matchResources": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchResources", + "description": "matchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required." + }, + "paramRef": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ParamRef", + "description": "paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param." + }, + "policyName": { + "description": "policyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.", + "type": "string" + }, + "validationActions": { + "description": "validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions.\n\nFailures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n\nvalidationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action.\n\nThe supported actions values are:\n\n\"Deny\" specifies that a validation failure results in a denied request.\n\n\"Warn\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses.\n\n\"Audit\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n\nClients should expect to handle additional values by ignoring any values not recognized.\n\n\"Deny\" and \"Warn\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers.\n\nRequired.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "policyName", + "validationActions" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyList": { + "description": "ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ValidatingAdmissionPolicy.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicySpec": { + "description": "ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.", + "properties": { + "auditAnnotations": { + "description": "auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.AuditAnnotation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "failurePolicy": { + "description": "failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\n\nA policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n\nfailurePolicy does not define how validations that evaluate to false are handled.\n\nWhen failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced.\n\nAllowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchConditions": { + "description": "matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the policy is skipped", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "matchConstraints": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchResources", + "description": "matchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required." + }, + "paramKind": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ParamKind", + "description": "paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null." + }, + "validations": { + "description": "validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.Validation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "variables": { + "description": "variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.Variable" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyStatus": { + "description": "ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.", + "properties": { + "conditions": { + "description": "conditions represent the latest available observations of a policy's current state.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + }, + "observedGeneration": { + "description": "observedGeneration is the generation observed by the controller.", + "format": "int64", + "type": "integer" + }, + "typeChecking": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.TypeChecking", + "description": "typeChecking contains the results of type checking for each expression. Presence of this field indicates the completion of the type checking." + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { + "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", + "properties": { + "admissionReviewVersions": { + "description": "admissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "clientConfig": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", + "description": "clientConfig defines how to communicate with the hook. Required" + }, + "failurePolicy": { + "description": "failurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchConditions": { + "description": "matchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "name": { + "description": "name is the name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "namespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "objectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "rules": { + "description": "rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "sideEffects": { + "description": "sideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", + "type": "string" + }, + "timeoutSeconds": { + "description": "timeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "name", + "clientConfig", + "sideEffects", + "admissionReviewVersions" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { + "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "webhooks": { + "description": "webhooks is a list of webhooks and the affected resources and operations.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { + "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ValidatingWebhookConfiguration.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfigurationList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.Validation": { + "description": "Validation specifies the CEL expression which is used to apply the validation.", + "properties": { + "expression": { + "description": "expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.", + "type": "string" + }, + "message": { + "description": "message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\".", + "type": "string" + }, + "messageExpression": { + "description": "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \"object.x must be less than max (\"+string(params.max)+\")\"", + "type": "string" + }, + "reason": { + "description": "reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client.", + "type": "string" + } + }, + "required": [ + "expression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.Variable": { + "description": "Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.", + "properties": { + "expression": { + "description": "expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.", + "type": "string" + }, + "name": { + "description": "name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { + "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", + "properties": { + "caBundle": { + "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", + "format": "byte", + "type": "string" + }, + "service": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", + "description": "service is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." + }, + "url": { + "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1alpha1.ApplyConfiguration": { + "description": "ApplyConfiguration defines the desired configuration values of an object.", + "properties": { + "expression": { + "description": "expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec\n\nApply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field:\n\n\tObject{\n\t spec: Object.spec{\n\t serviceAccountName: \"example\"\n\t }\n\t}\n\nApply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration.\n\nCEL expressions have access to the object types needed to create apply configurations:\n\n- 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers')\n\nCEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1alpha1.JSONPatch": { + "description": "JSONPatch defines a JSON Patch.", + "properties": { + "expression": { + "description": "expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec\n\nexpression must return an array of JSONPatch values.\n\nFor example, this CEL expression returns a JSON patch to conditionally modify a value:\n\n\t [\n\t JSONPatch{op: \"test\", path: \"/spec/example\", value: \"Red\"},\n\t JSONPatch{op: \"replace\", path: \"/spec/example\", value: \"Green\"}\n\t ]\n\nTo define an object for the patch value, use Object types. For example:\n\n\t [\n\t JSONPatch{\n\t op: \"add\",\n\t path: \"/spec/selector\",\n\t value: Object.spec.selector{matchLabels: {\"environment\": \"test\"}}\n\t }\n\t ]\n\nTo use strings containing '/' and '~' as JSONPatch path keys, use \"jsonpatch.escapeKey\". For example:\n\n\t [\n\t JSONPatch{\n\t op: \"add\",\n\t path: \"/metadata/labels/\" + jsonpatch.escapeKey(\"example.com/environment\"),\n\t value: \"test\"\n\t },\n\t ]\n\nCEL expressions have access to the types needed to create JSON patches and objects:\n\n- 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'.\n See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string,\n integer, array, map or object. If set, the 'path' and 'from' fields must be set to a\n [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL\n function may be used to escape path keys containing '/' and '~'.\n- 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers')\n\nCEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nCEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as:\n\n- 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively).\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1alpha1.MatchCondition": { + "properties": { + "expression": { + "description": "expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.", + "type": "string" + }, + "name": { + "description": "name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1alpha1.MatchResources": { + "description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "properties": { + "excludeResourceRules": { + "description": "excludeResourceRules describes what operations on what resources/subresources the policy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"MatchResources\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, the admission policy does not consider requests to apps/v1beta1 or extensions/v1beta1 API groups.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, the admission policy **does** consider requests made to apps/v1beta1 or extensions/v1beta1 API groups. The API server translates the request to a matched resource API if necessary.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "namespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "objectSelector decides whether to run the policy based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the policy's expression (CEL), and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "resourceRules": { + "description": "resourceRules describes what operations on what resources/subresources the admission policy matches. The policy cares about an operation if it matches _any_ Rule.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicy": { + "description": "MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicySpec", + "description": "spec defines the desired behavior of the MutatingAdmissionPolicy." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicy", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBinding": { + "description": "MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters.\n\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget).\n\nAdding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingSpec", + "description": "spec defines the desired behavior of the MutatingAdmissionPolicyBinding." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicyBinding", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingList": { + "description": "MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of PolicyBinding.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBinding" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicyBindingList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingSpec": { + "description": "MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.", + "properties": { + "matchResources": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MatchResources", + "description": "matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT." + }, + "paramRef": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ParamRef", + "description": "paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param." + }, + "policyName": { + "description": "policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyList": { + "description": "MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ValidatingAdmissionPolicy.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicy" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicyList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicySpec": { + "description": "MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.", + "properties": { + "failurePolicy": { + "description": "failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\n\nA policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource.\n\nfailurePolicy does not define how validations that evaluate to false are handled.\n\nAllowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchConditions": { + "description": "matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the policy is skipped", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MatchCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "matchConstraints": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MatchResources", + "description": "matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required." + }, + "mutations": { + "description": "mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Mutation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "paramKind": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ParamKind", + "description": "paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null." + }, + "reinvocationPolicy": { + "description": "reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: These mutations will not be called more than once per binding in a single admission evaluation.\n\nIfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required.", + "type": "string" + }, + "variables": { + "description": "variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy.\n\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Variable" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1alpha1.Mutation": { + "description": "Mutation specifies the CEL expression which is used to apply the Mutation.", + "properties": { + "applyConfiguration": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ApplyConfiguration", + "description": "applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration." + }, + "jsonPatch": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.JSONPatch", + "description": "jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch." + }, + "patchType": { + "description": "patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.", + "type": "string" + } + }, + "required": [ + "patchType" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations": { + "description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.", + "properties": { + "apiGroups": { + "description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "apiVersions": { + "description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "operations": { + "description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceNames": { + "description": "resourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1alpha1.ParamKind": { + "description": "ParamKind is a tuple of Group Kind and Version.", + "properties": { + "apiVersion": { + "description": "apiVersion is the API group version the resources belong to. In format of \"group/version\". Required.", + "type": "string" + }, + "kind": { + "description": "kind is the API kind the resources belong to. Required.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1alpha1.ParamRef": { + "description": "ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.", + "properties": { + "name": { + "description": "name is the name of the resource being referenced.\n\n`name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\n\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\n\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.", + "type": "string" + }, + "parameterNotFoundAction": { + "description": "parameterNotFoundAction controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny` Default to `Deny`", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\n\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset." + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1alpha1.Variable": { + "description": "Variable is the definition of a variable that is used for composition.", + "properties": { + "expression": { + "description": "expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.", + "type": "string" + }, + "name": { + "description": "name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.ApplyConfiguration": { + "description": "ApplyConfiguration defines the desired configuration values of an object.", + "properties": { + "expression": { + "description": "expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec\n\nApply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field:\n\n\tObject{\n\t spec: Object.spec{\n\t serviceAccountName: \"example\"\n\t }\n\t}\n\nApply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration.\n\nCEL expressions have access to the object types needed to create apply configurations:\n\n- 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers')\n\nCEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.JSONPatch": { + "description": "JSONPatch defines a JSON Patch.", + "properties": { + "expression": { + "description": "expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec\n\nexpression must return an array of JSONPatch values.\n\nFor example, this CEL expression returns a JSON patch to conditionally modify a value:\n\n\t [\n\t JSONPatch{op: \"test\", path: \"/spec/example\", value: \"Red\"},\n\t JSONPatch{op: \"replace\", path: \"/spec/example\", value: \"Green\"}\n\t ]\n\nTo define an object for the patch value, use Object types. For example:\n\n\t [\n\t JSONPatch{\n\t op: \"add\",\n\t path: \"/spec/selector\",\n\t value: Object.spec.selector{matchLabels: {\"environment\": \"test\"}}\n\t }\n\t ]\n\nTo use strings containing '/' and '~' as JSONPatch path keys, use \"jsonpatch.escapeKey\". For example:\n\n\t [\n\t JSONPatch{\n\t op: \"add\",\n\t path: \"/metadata/labels/\" + jsonpatch.escapeKey(\"example.com/environment\"),\n\t value: \"test\"\n\t },\n\t ]\n\nCEL expressions have access to the types needed to create JSON patches and objects:\n\n- 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'.\n See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string,\n integer, array, map or object. If set, the 'path' and 'from' fields must be set to a\n [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL\n function may be used to escape path keys containing '/' and '~'.\n- 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers')\n\nCEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nCEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as:\n\n- 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively).\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.MatchCondition": { + "description": "MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.", + "properties": { + "expression": { + "description": "expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.", + "type": "string" + }, + "name": { + "description": "name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.MatchResources": { + "description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "properties": { + "excludeResourceRules": { + "description": "excludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"MatchResources\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "namespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "objectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "resourceRules": { + "description": "resourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicy": { + "description": "MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicySpec", + "description": "spec defines the desired behavior of the MutatingAdmissionPolicy." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicy", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBinding": { + "description": "MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters.\n\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget).\n\nAdding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBindingSpec", + "description": "spec defines the desired behavior of the MutatingAdmissionPolicyBinding." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicyBinding", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBindingList": { + "description": "MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of PolicyBinding.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBinding" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicyBindingList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBindingSpec": { + "description": "MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.", + "properties": { + "matchResources": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MatchResources", + "description": "matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT." + }, + "paramRef": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ParamRef", + "description": "paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param." + }, + "policyName": { + "description": "policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyList": { + "description": "MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ValidatingAdmissionPolicy.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicy" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingAdmissionPolicyList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicySpec": { + "description": "MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.", + "properties": { + "failurePolicy": { + "description": "failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\n\nA policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource.\n\nfailurePolicy does not define how validations that evaluate to false are handled.\n\nAllowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchConditions": { + "description": "matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the policy is skipped", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MatchCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "matchConstraints": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MatchResources", + "description": "matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required." + }, + "mutations": { + "description": "mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.Mutation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "paramKind": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ParamKind", + "description": "paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null." + }, + "reinvocationPolicy": { + "description": "reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: These mutations will not be called more than once per binding in a single admission evaluation.\n\nIfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required.", + "type": "string" + }, + "variables": { + "description": "variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy.\n\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.Variable" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.Mutation": { + "description": "Mutation specifies the CEL expression which is used to apply the Mutation.", + "properties": { + "applyConfiguration": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ApplyConfiguration", + "description": "applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration." + }, + "jsonPatch": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.JSONPatch", + "description": "jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch." + }, + "patchType": { + "description": "patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.", + "type": "string" + } + }, + "required": [ + "patchType" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations": { + "description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.", + "properties": { + "apiGroups": { + "description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "apiVersions": { + "description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "operations": { + "description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceNames": { + "description": "resourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1beta1.ParamKind": { + "description": "ParamKind is a tuple of Group Kind and Version.", + "properties": { + "apiVersion": { + "description": "apiVersion is the API group version the resources belong to. In format of \"group/version\". Required.", + "type": "string" + }, + "kind": { + "description": "kind is the API kind the resources belong to. Required.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1beta1.ParamRef": { + "description": "ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.", + "properties": { + "name": { + "description": "name is the name of the resource being referenced.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\n\nA single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\n\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\n\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.", + "type": "string" + }, + "parameterNotFoundAction": { + "description": "parameterNotFoundAction controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\n\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset." + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1beta1.Variable": { + "description": "Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.", + "properties": { + "expression": { + "description": "expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.", + "type": "string" + }, + "name": { + "description": "name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion": { + "description": "An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.", + "properties": { + "apiServerID": { + "description": "The ID of the reporting API server.", + "type": "string" + }, + "decodableVersions": { + "description": "The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "encodingVersion": { + "description": "The API server encodes the object to this version when persisting it in the backend (e.g., etcd).", + "type": "string" + }, + "servedVersions": { + "description": "The API server can serve these versions. DecodableVersions must include all ServedVersions.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "type": "object" + }, + "io.k8s.api.apiserverinternal.v1alpha1.StorageVersion": { + "description": "Storage version of a specific resource.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "The name is .." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec", + "description": "Spec is an empty spec. It is here to comply with Kubernetes API style." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus", + "description": "API server instances report the version they can decode and the version they encode objects to when persisting objects in the backend." + } + }, + "required": [ + "spec", + "status" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "internal.apiserver.k8s.io", + "kind": "StorageVersion", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition": { + "description": "Describes the state of the storageVersion at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "observedGeneration": { + "description": "If set, this represents the .metadata.generation that the condition was set based upon.", + "format": "int64", + "type": "integer" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of the condition.", + "type": "string" + } + }, + "required": [ + "type", + "status", + "reason", + "message" + ], + "type": "object" + }, + "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionList": { + "description": "A list of StorageVersions.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items holds a list of StorageVersion", + "items": { + "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "internal.apiserver.k8s.io", + "kind": "StorageVersionList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec": { + "description": "StorageVersionSpec is an empty spec.", + "type": "object" + }, + "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus": { + "description": "API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.", + "properties": { + "commonEncodingVersion": { + "description": "If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.", + "type": "string" + }, + "conditions": { + "description": "The latest available observations of the storageVersion's state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + }, + "storageVersions": { + "description": "The reported versions per API server instance.", + "items": { + "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "apiServerID" + ], + "x-kubernetes-list-type": "map" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.ControllerRevision": { + "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "data": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "Data is the serialized representation of the state." + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "revision": { + "description": "Revision indicates the revision of the state represented by Data.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "revision" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.ControllerRevisionList": { + "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of ControllerRevisions", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevisionList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSet": { + "description": "DaemonSet represents the configuration of a daemon set.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", + "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", + "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSetCondition": { + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of DaemonSet condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DaemonSetList": { + "description": "DaemonSetList is a collection of daemon sets.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "A list of daemon sets.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DaemonSetList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSetSpec": { + "description": "DaemonSetSpec is the specification of a daemon set.", + "properties": { + "minReadySeconds": { + "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", + "format": "int32", + "type": "integer" + }, + "revisionHistoryLimit": { + "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is \"Always\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" + }, + "updateStrategy": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", + "description": "An update strategy to replace existing DaemonSet pods with new pods." + } + }, + "required": [ + "selector", + "template" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DaemonSetStatus": { + "description": "DaemonSetStatus represents the current status of a daemon set.", + "properties": { + "collisionCount": { + "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a DaemonSet's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentNumberScheduled": { + "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "format": "int32", + "type": "integer" + }, + "desiredNumberScheduled": { + "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "format": "int32", + "type": "integer" + }, + "numberAvailable": { + "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "format": "int32", + "type": "integer" + }, + "numberMisscheduled": { + "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "format": "int32", + "type": "integer" + }, + "numberReady": { + "description": "numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.", + "format": "int32", + "type": "integer" + }, + "numberUnavailable": { + "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "The most recent generation observed by the daemon set controller.", + "format": "int64", + "type": "integer" + }, + "updatedNumberScheduled": { + "description": "The total number of nodes that are running updated daemon pod", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "currentNumberScheduled", + "numberMisscheduled", + "desiredNumberScheduled", + "numberReady" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { + "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", + "properties": { + "rollingUpdate": { + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", + "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." + }, + "type": { + "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.Deployment": { + "description": "Deployment enables declarative updates for Pods and ReplicaSets.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", + "description": "Specification of the desired behavior of the Deployment." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", + "description": "Most recently observed status of the Deployment." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DeploymentCondition": { + "description": "DeploymentCondition describes the state of a deployment at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "lastUpdateTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time this condition was updated." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of deployment condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DeploymentList": { + "description": "DeploymentList is a list of Deployments.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of Deployments.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DeploymentList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DeploymentSpec": { + "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", + "properties": { + "minReadySeconds": { + "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "format": "int32", + "type": "integer" + }, + "paused": { + "description": "Indicates that the deployment is paused.", + "type": "boolean" + }, + "progressDeadlineSeconds": { + "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", + "format": "int32", + "type": "integer" + }, + "revisionHistoryLimit": { + "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." + }, + "strategy": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", + "description": "The deployment strategy to use to replace existing pods with new ones.", + "x-kubernetes-patch-strategy": "retainKeys" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \"Always\"." + } + }, + "required": [ + "selector", + "template" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DeploymentStatus": { + "description": "DeploymentStatus is the most recently observed status of the Deployment.", + "properties": { + "availableReplicas": { + "description": "Total number of available non-terminating pods (ready for at least minReadySeconds) targeted by this deployment.", + "format": "int32", + "type": "integer" + }, + "collisionCount": { + "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a deployment's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "observedGeneration": { + "description": "The generation observed by the deployment controller.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "Total number of non-terminating pods targeted by this Deployment with a Ready Condition.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Total number of non-terminating pods targeted by this deployment (their labels match the selector).", + "format": "int32", + "type": "integer" + }, + "terminatingReplicas": { + "description": "Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase.\n\nThis is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).", + "format": "int32", + "type": "integer" + }, + "unavailableReplicas": { + "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", + "format": "int32", + "type": "integer" + }, + "updatedReplicas": { + "description": "Total number of non-terminating pods targeted by this deployment that have the desired template spec.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.DeploymentStrategy": { + "description": "DeploymentStrategy describes how to replace existing pods with new ones.", + "properties": { + "rollingUpdate": { + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", + "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." + }, + "type": { + "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.ReplicaSet": { + "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", + "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", + "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.ReplicaSetCondition": { + "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of replica set condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.ReplicaSetList": { + "description": "ReplicaSetList is a collection of ReplicaSets.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ReplicaSetList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.ReplicaSetSpec": { + "description": "ReplicaSetSpec is the specification of a ReplicaSet.", + "properties": { + "minReadySeconds": { + "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the number of desired pods. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#pod-template" + } + }, + "required": [ + "selector" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.ReplicaSetStatus": { + "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", + "properties": { + "availableReplicas": { + "description": "The number of available non-terminating pods (ready for at least minReadySeconds) for this replica set.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a replica set's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "fullyLabeledReplicas": { + "description": "The number of non-terminating pods that have labels matching the labels of the pod template of the replicaset.", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "The number of non-terminating pods targeted by this ReplicaSet with a Ready Condition.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the most recently observed number of non-terminating pods. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset", + "format": "int32", + "type": "integer" + }, + "terminatingReplicas": { + "description": "The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase.\n\nThis is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { + "description": "Spec to control the desired behavior of daemon set rolling update.", + "properties": { + "maxSurge": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption." + }, + "maxUnavailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.RollingUpdateDeployment": { + "description": "Spec to control the desired behavior of rolling update.", + "properties": { + "maxSurge": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." + }, + "maxUnavailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { + "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", + "properties": { + "maxUnavailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time." + }, + "partition": { + "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSet": { + "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\n\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", + "description": "Spec defines the desired identities of pods in this set." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", + "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.StatefulSetCondition": { + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of statefulset condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetList": { + "description": "StatefulSetList is a collection of StatefulSets.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of stateful sets.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "StatefulSetList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.StatefulSetOrdinals": { + "description": "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.", + "properties": { + "start": { + "description": "start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\n [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\nIf unset, defaults to 0. Replica indices will be in the range:\n [0, .spec.replicas).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy": { + "description": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.", + "properties": { + "whenDeleted": { + "description": "WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.", + "type": "string" + }, + "whenScaled": { + "description": "WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetSpec": { + "description": "A StatefulSetSpec is the specification of a StatefulSet.", + "properties": { + "minReadySeconds": { + "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "format": "int32", + "type": "integer" + }, + "ordinals": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetOrdinals", + "description": "ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \"0\" index to the first replica and increments the index by one for each additional replica requested." + }, + "persistentVolumeClaimRetentionPolicy": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy", + "description": "persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down." + }, + "podManagementPolicy": { + "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", + "type": "string" + }, + "replicas": { + "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", + "format": "int32", + "type": "integer" + }, + "revisionHistoryLimit": { + "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "serviceName": { + "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", + "type": "string" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format -. For example, a pod in a StatefulSet named \"web\" with index number \"3\" would be named \"web-3\". The only allowed template.spec.restartPolicy value is \"Always\"." + }, + "updateStrategy": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", + "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." + }, + "volumeClaimTemplates": { + "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "selector", + "template" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetStatus": { + "description": "StatefulSetStatus represents the current state of a StatefulSet.", + "properties": { + "availableReplicas": { + "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.", + "format": "int32", + "type": "integer" + }, + "collisionCount": { + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a statefulset's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentReplicas": { + "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", + "format": "int32", + "type": "integer" + }, + "currentRevision": { + "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "replicas is the number of Pods created by the StatefulSet controller.", + "format": "int32", + "type": "integer" + }, + "updateRevision": { + "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "type": "string" + }, + "updatedReplicas": { + "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { + "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", + "properties": { + "rollingUpdate": { + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", + "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." + }, + "type": { + "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.BoundObjectReference": { + "description": "BoundObjectReference is a reference to an object that a token is bound to.", + "properties": { + "apiVersion": { + "description": "apiVersion is API version of the referent.", + "type": "string" + }, + "kind": { + "description": "kind of the referent. Valid kinds are 'Pod' and 'Secret'.", + "type": "string" + }, + "name": { + "description": "name of the referent.", + "type": "string" + }, + "uid": { + "description": "uid of the referent.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.SelfSubjectReview": { + "description": "SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.SelfSubjectReviewStatus", + "description": "status is filled in by the server with the user attributes." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authentication.k8s.io", + "kind": "SelfSubjectReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authentication.v1.SelfSubjectReviewStatus": { + "description": "SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.", + "properties": { + "userInfo": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", + "description": "userInfo is a set of attributes belonging to the user making this request." + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenRequest": { + "description": "TokenRequest requests a token for a given service account.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestSpec", + "description": "spec holds information about the request being evaluated" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestStatus", + "description": "status is filled in by the server and indicates whether the token can be authenticated." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authentication.k8s.io", + "kind": "TokenRequest", + "version": "v1" + } + ] + }, + "io.k8s.api.authentication.v1.TokenRequestSpec": { + "description": "TokenRequestSpec contains client provided parameters of a token request.", + "properties": { + "audiences": { + "description": "audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "boundObjectRef": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.BoundObjectReference", + "description": "boundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation." + }, + "expirationSeconds": { + "description": "expirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "audiences" + ], + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenRequestStatus": { + "description": "TokenRequestStatus is the result of a token request.", + "properties": { + "expirationTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "expirationTimestamp is the time of expiration of the returned token." + }, + "token": { + "description": "token is the opaque bearer token.", + "type": "string" + } + }, + "required": [ + "token", + "expirationTimestamp" + ], + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenReview": { + "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", + "description": "spec holds information about the request being evaluated" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", + "description": "status is filled in by the server and indicates whether the request can be authenticated." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authentication.k8s.io", + "kind": "TokenReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authentication.v1.TokenReviewSpec": { + "description": "TokenReviewSpec is a description of the token authentication request.", + "properties": { + "audiences": { + "description": "audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "token": { + "description": "token is the opaque bearer token.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenReviewStatus": { + "description": "TokenReviewStatus is the result of the token authentication request.", + "properties": { + "audiences": { + "description": "audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "authenticated": { + "description": "authenticated indicates that the token was associated with a known user.", + "type": "boolean" + }, + "error": { + "description": "error indicates that the token couldn't be checked", + "type": "string" + }, + "user": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", + "description": "user is the UserInfo associated with the provided token." + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.UserInfo": { + "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "extra is any additional information provided by the authenticator.", + "type": "object" + }, + "groups": { + "description": "groups is the names of groups this user is a part of.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "uid": { + "description": "uid is a unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", + "type": "string" + }, + "username": { + "description": "username is the name that uniquely identifies this user among all active users.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.FieldSelectorAttributes": { + "description": "FieldSelectorAttributes indicates a field limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.", + "properties": { + "rawSelector": { + "description": "rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.", + "type": "string" + }, + "requirements": { + "description": "requirements is the parsed interpretation of a field selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldSelectorRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.LabelSelectorAttributes": { + "description": "LabelSelectorAttributes indicates a label limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.", + "properties": { + "rawSelector": { + "description": "rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.", + "type": "string" + }, + "requirements": { + "description": "requirements is the parsed interpretation of a label selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { + "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.NonResourceAttributes": { + "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", + "properties": { + "path": { + "description": "Path is the URL path of the request", + "type": "string" + }, + "verb": { + "description": "Verb is the standard HTTP verb", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.NonResourceRule": { + "description": "NonResourceRule holds information that describes a rule for the non-resource", + "properties": { + "nonResourceURLs": { + "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "verbs": { + "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1.ResourceAttributes": { + "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", + "properties": { + "fieldSelector": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.FieldSelectorAttributes", + "description": "fieldSelector describes the limitation on access based on field. It can only limit access, not broaden it." + }, + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "labelSelector": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LabelSelectorAttributes", + "description": "labelSelector describes the limitation on access based on labels. It can only limit access, not broaden it." + }, + "name": { + "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", + "type": "string" + }, + "resource": { + "description": "Resource is one of the existing resource types. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is one of the existing resource types. \"\" means none.", + "type": "string" + }, + "verb": { + "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.ResourceRule": { + "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "properties": { + "apiGroups": { + "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "verbs": { + "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { + "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated. user and groups must be empty" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { + "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "nonResourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", + "description": "NonResourceAttributes describes information for a non-resource access request" + }, + "resourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", + "description": "ResourceAuthorizationAttributes describes information for a resource access request" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { + "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", + "description": "Spec holds information about the request being evaluated." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", + "description": "Status is filled in by the server and indicates the set of actions a user can perform." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { + "description": "SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.", + "properties": { + "namespace": { + "description": "Namespace to evaluate rules for. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.SubjectAccessReview": { + "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { + "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", + "type": "object" + }, + "groups": { + "description": "Groups is the groups you're testing for.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "nonResourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", + "description": "NonResourceAttributes describes information for a non-resource access request" + }, + "resourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", + "description": "ResourceAuthorizationAttributes describes information for a resource access request" + }, + "uid": { + "description": "UID information about the requesting user.", + "type": "string" + }, + "user": { + "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { + "description": "SubjectAccessReviewStatus", + "properties": { + "allowed": { + "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "type": "boolean" + }, + "denied": { + "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", + "type": "boolean" + }, + "evaluationError": { + "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", + "type": "string" + }, + "reason": { + "description": "Reason is optional. It indicates why a request was allowed or denied.", + "type": "string" + } + }, + "required": [ + "allowed" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { + "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", + "properties": { + "evaluationError": { + "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", + "type": "string" + }, + "incomplete": { + "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", + "type": "boolean" + }, + "nonResourceRules": { + "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "items": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceRules": { + "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "items": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "resourceRules", + "nonResourceRules", + "incomplete" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { + "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", + "properties": { + "apiVersion": { + "description": "apiVersion is the API version of the referent", + "type": "string" + }, + "kind": { + "description": "kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { + "description": "configuration of a horizontal pod autoscaler.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", + "description": "spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", + "description": "status is the current information about the autoscaler." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + ] + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { + "description": "list of horizontal pod autoscaler objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of horizontal pod autoscaler objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscalerList", + "version": "v1" + } + ] + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { + "description": "specification of a horizontal pod autoscaler.", + "properties": { + "maxReplicas": { + "description": "maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", + "format": "int32", + "type": "integer" + }, + "minReplicas": { + "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", + "format": "int32", + "type": "integer" + }, + "scaleTargetRef": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", + "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." + }, + "targetCPUUtilizationPercentage": { + "description": "targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "scaleTargetRef", + "maxReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { + "description": "current status of a horizontal pod autoscaler", + "properties": { + "currentCPUUtilizationPercentage": { + "description": "currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", + "format": "int32", + "type": "integer" + }, + "currentReplicas": { + "description": "currentReplicas is the current number of replicas of pods managed by this autoscaler.", + "format": "int32", + "type": "integer" + }, + "desiredReplicas": { + "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler.", + "format": "int32", + "type": "integer" + }, + "lastScaleTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." + }, + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed by this autoscaler.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currentReplicas", + "desiredReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v1.Scale": { + "description": "Scale represents a scaling request for a resource.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec", + "description": "spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", + "description": "status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + ] + }, + "io.k8s.api.autoscaling.v1.ScaleSpec": { + "description": "ScaleSpec describes the attributes of a scale subresource.", + "properties": { + "replicas": { + "description": "replicas is the desired number of instances for the scaled object.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v1.ScaleStatus": { + "description": "ScaleStatus represents the current status of a scale subresource.", + "properties": { + "replicas": { + "description": "replicas is the actual number of observed instances of the scaled object.", + "format": "int32", + "type": "integer" + }, + "selector": { + "description": "selector is the label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/", + "type": "string" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ContainerResourceMetricSource": { + "description": "ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "properties": { + "container": { + "description": "container is the name of the container in the pods of the scaling target", + "type": "string" + }, + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "name", + "target", + "container" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus": { + "description": "ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "properties": { + "container": { + "description": "container is the name of the container in the pods of the scaling target", + "type": "string" + }, + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + } + }, + "required": [ + "name", + "current", + "container" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.CrossVersionObjectReference": { + "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", + "properties": { + "apiVersion": { + "description": "apiVersion is the API version of the referent", + "type": "string" + }, + "kind": { + "description": "kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ExternalMetricSource": { + "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", + "properties": { + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "metric", + "target" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ExternalMetricStatus": { + "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + } + }, + "required": [ + "metric", + "current" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.HPAScalingPolicy": { + "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", + "properties": { + "periodSeconds": { + "description": "periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "type is used to specify the scaling policy.", + "type": "string" + }, + "value": { + "description": "value contains the amount of change which is permitted by the policy. It must be greater than zero", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "type", + "value", + "periodSeconds" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.HPAScalingRules": { + "description": "HPAScalingRules configures the scaling behavior for one direction via scaling Policy Rules and a configurable metric tolerance.\n\nScaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.\n\nThe tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.)", + "properties": { + "policies": { + "description": "policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingPolicy" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "selectPolicy": { + "description": "selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.", + "type": "string" + }, + "stabilizationWindowSeconds": { + "description": "stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", + "format": "int32", + "type": "integer" + }, + "tolerance": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to the desired number of replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not set, the default cluster-wide tolerance is applied (by default 10%).\n\nFor example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi.\n\nThis is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled." + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler": { + "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec", + "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus", + "description": "status is the current information about the autoscaler." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2" + } + ] + }, + "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior": { + "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", + "properties": { + "scaleDown": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules", + "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." + }, + "scaleUp": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules", + "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition": { + "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the last time the condition transitioned from one status to another" + }, + "message": { + "description": "message is a human-readable explanation containing details about the transition", + "type": "string" + }, + "reason": { + "description": "reason is the reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "status is the status of the condition (True, False, Unknown)", + "type": "string" + }, + "type": { + "description": "type describes the current condition", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerList": { + "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of horizontal pod autoscaler objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscalerList", + "version": "v2" + } + ] + }, + "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec": { + "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", + "properties": { + "behavior": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior", + "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." + }, + "maxReplicas": { + "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", + "format": "int32", + "type": "integer" + }, + "metrics": { + "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricSpec" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "minReplicas": { + "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", + "format": "int32", + "type": "integer" + }, + "scaleTargetRef": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference", + "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." + } + }, + "required": [ + "scaleTargetRef", + "maxReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus": { + "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", + "properties": { + "conditions": { + "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentMetrics": { + "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "currentReplicas": { + "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", + "format": "int32", + "type": "integer" + }, + "desiredReplicas": { + "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", + "format": "int32", + "type": "integer" + }, + "lastScaleTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." + }, + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed by this autoscaler.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "desiredReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.MetricIdentifier": { + "description": "MetricIdentifier defines the name and optionally selector for a metric", + "properties": { + "name": { + "description": "name is the name of the given metric", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.MetricSpec": { + "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", + "properties": { + "containerResource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricSource", + "description": "containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "external": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricSource", + "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." + }, + "object": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricSource", + "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." + }, + "pods": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.PodsMetricSource", + "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." + }, + "resource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricSource", + "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "type": { + "description": "type is the type of metric source. It should be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.MetricStatus": { + "description": "MetricStatus describes the last-read state of a single metric.", + "properties": { + "containerResource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus", + "description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "external": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricStatus", + "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." + }, + "object": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricStatus", + "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." + }, + "pods": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.PodsMetricStatus", + "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." + }, + "resource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricStatus", + "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "type": { + "description": "type is the type of metric source. It will be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.MetricTarget": { + "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", + "properties": { + "averageUtilization": { + "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", + "format": "int32", + "type": "integer" + }, + "averageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" + }, + "type": { + "description": "type represents whether the metric type is Utilization, Value, or AverageValue", + "type": "string" + }, + "value": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "value is the target value of the metric (as a quantity)." + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.MetricValueStatus": { + "description": "MetricValueStatus holds the current value for a metric", + "properties": { + "averageUtilization": { + "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", + "format": "int32", + "type": "integer" + }, + "averageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" + }, + "value": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "value is the current value of the metric (as a quantity)." + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ObjectMetricSource": { + "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "properties": { + "describedObject": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference", + "description": "describedObject specifies the descriptions of a object,such as kind,name apiVersion" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "describedObject", + "target", + "metric" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ObjectMetricStatus": { + "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "describedObject": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference", + "description": "DescribedObject specifies the descriptions of a object,such as kind,name apiVersion" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + } + }, + "required": [ + "metric", + "current", + "describedObject" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.PodsMetricSource": { + "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", + "properties": { + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "metric", + "target" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.PodsMetricStatus": { + "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + } + }, + "required": [ + "metric", + "current" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ResourceMetricSource": { + "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "properties": { + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "name", + "target" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2.ResourceMetricStatus": { + "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + } + }, + "required": [ + "name", + "current" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.CronJob": { + "description": "CronJob represents the configuration of a single cron job.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.batch.v1.CronJobSpec", + "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.batch.v1.CronJobStatus", + "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "CronJob", + "version": "v1" + } + ] + }, + "io.k8s.api.batch.v1.CronJobList": { + "description": "CronJobList is a collection of cron jobs.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of CronJobs.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "CronJobList", + "version": "v1" + } + ] + }, + "io.k8s.api.batch.v1.CronJobSpec": { + "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", + "properties": { + "concurrencyPolicy": { + "description": "Specifies how to treat concurrent executions of a Job. Valid values are:\n\n- \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", + "type": "string" + }, + "failedJobsHistoryLimit": { + "description": "The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.", + "format": "int32", + "type": "integer" + }, + "jobTemplate": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobTemplateSpec", + "description": "Specifies the job that will be created when executing a CronJob." + }, + "schedule": { + "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", + "type": "string" + }, + "startingDeadlineSeconds": { + "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", + "format": "int64", + "type": "integer" + }, + "successfulJobsHistoryLimit": { + "description": "The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.", + "format": "int32", + "type": "integer" + }, + "suspend": { + "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", + "type": "boolean" + }, + "timeZone": { + "description": "The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones", + "type": "string" + } + }, + "required": [ + "schedule", + "jobTemplate" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.CronJobStatus": { + "description": "CronJobStatus represents the current state of a cron job.", + "properties": { + "active": { + "description": "A list of pointers to currently running jobs.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "lastScheduleTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Information when was the last time the job was successfully scheduled." + }, + "lastSuccessfulTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Information when was the last time the job successfully completed." + } + }, + "type": "object" + }, + "io.k8s.api.batch.v1.Job": { + "description": "Job represents the configuration of a single job.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", + "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", + "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "Job", + "version": "v1" + } + ] + }, + "io.k8s.api.batch.v1.JobCondition": { + "description": "JobCondition describes current state of a job.", + "properties": { + "lastProbeTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition was checked." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transit from one status to another." + }, + "message": { + "description": "Human readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "(brief) reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of job condition, Complete or Failed.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.JobList": { + "description": "JobList is a collection of jobs.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of Jobs.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "JobList", + "version": "v1" + } + ] + }, + "io.k8s.api.batch.v1.JobSpec": { + "description": "JobSpec describes how the job execution will look like.", + "properties": { + "activeDeadlineSeconds": { + "description": "Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.", + "format": "int64", + "type": "integer" + }, + "backoffLimit": { + "description": "Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647.", + "format": "int32", + "type": "integer" + }, + "backoffLimitPerIndex": { + "description": "Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable.", + "format": "int32", + "type": "integer" + }, + "completionMode": { + "description": "completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`.\n\n`NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other.\n\n`Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\n\nMore completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.", + "type": "string" + }, + "completions": { + "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "format": "int32", + "type": "integer" + }, + "managedBy": { + "description": "ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first \"/\" must be a valid subdomain as defined by RFC 1123. All characters trailing the first \"/\" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable.", + "type": "string" + }, + "manualSelector": { + "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", + "type": "boolean" + }, + "maxFailedIndexes": { + "description": "Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this number the entire Job is marked as Failed and its execution is terminated. When left as null the job continues execution of all of its indexes and is marked with the `Complete` Job condition. It can only be specified when backoffLimitPerIndex is set. It can be null or up to completions. It is required and must be less than or equal to 10^4 when is completions greater than 10^5.", + "format": "int32", + "type": "integer" + }, + "parallelism": { + "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "format": "int32", + "type": "integer" + }, + "podFailurePolicy": { + "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicy", + "description": "Specifies the policy of handling failed pods. In particular, it allows to specify the set of actions and conditions which need to be satisfied to take the associated action. If empty, the default behaviour applies - the counter of failed pods, represented by the jobs's .status.failed field, is incremented and it is checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure." + }, + "podReplacementPolicy": { + "description": "podReplacementPolicy specifies when to create replacement Pods. Possible values are: - TerminatingOrFailed means that we recreate pods\n when they are terminating (has a metadata.deletionTimestamp) or failed.\n- Failed means to wait until a previously created Pod is fully terminated (has phase\n Failed or Succeeded) before creating a replacement Pod.\n\nWhen using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use.", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "successPolicy": { + "$ref": "#/definitions/io.k8s.api.batch.v1.SuccessPolicy", + "description": "successPolicy specifies the policy when the Job can be declared as succeeded. If empty, the default behavior applies - the Job is declared as succeeded only when the number of succeeded pods equals to the completions. When the field is specified, it must be immutable and works only for the Indexed Jobs. Once the Job meets the SuccessPolicy, the lingering pods are terminated." + }, + "suspend": { + "description": "suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.", + "type": "boolean" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Describes the pod that will be created when executing a job. The only allowed template.spec.restartPolicy values are \"Never\" or \"OnFailure\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" + }, + "ttlSecondsAfterFinished": { + "description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.JobStatus": { + "description": "JobStatus represents the current state of a Job.", + "properties": { + "active": { + "description": "The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs.", + "format": "int32", + "type": "integer" + }, + "completedIndexes": { + "description": "completedIndexes holds the completed indexes when .spec.completionMode = \"Indexed\" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\".", + "type": "string" + }, + "completionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is set when the job finishes successfully, and only then. The value cannot be updated or removed. The value indicates the same or later point in time as the startTime field." + }, + "conditions": { + "description": "The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true.\n\nA job is considered finished when it is in a terminal condition, either \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions. Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions. The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" + }, + "type": "array", + "x-kubernetes-list-type": "atomic", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "failed": { + "description": "The number of pods which reached phase Failed. The value increases monotonically.", + "format": "int32", + "type": "integer" + }, + "failedIndexes": { + "description": "FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". The set of failed indexes cannot overlap with the set of completed indexes.", + "type": "string" + }, + "ready": { + "description": "The number of active pods which have a Ready condition and are not terminating (without a deletionTimestamp).", + "format": "int32", + "type": "integer" + }, + "startTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.\n\nOnce set, the field can only be removed when the job is suspended. The field cannot be modified while the job is unsuspended or finished." + }, + "succeeded": { + "description": "The number of pods which reached phase Succeeded. The value increases monotonically for a given spec. However, it may decrease in reaction to scale down of elastic indexed jobs.", + "format": "int32", + "type": "integer" + }, + "terminating": { + "description": "The number of pods which are terminating (in phase Pending or Running and have a deletionTimestamp).\n\nThis field is beta-level. The job controller populates the field when the feature gate JobPodReplacementPolicy is enabled (enabled by default).", + "format": "int32", + "type": "integer" + }, + "uncountedTerminatedPods": { + "$ref": "#/definitions/io.k8s.api.batch.v1.UncountedTerminatedPods", + "description": "uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\n\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status:\n\n1. Add the pod UID to the arrays in this field. 2. Remove the pod finalizer. 3. Remove the pod UID from the arrays while increasing the corresponding\n counter.\n\nOld jobs might not be tracked using this field, in which case the field remains null. The structure is empty for finished jobs." + } + }, + "type": "object" + }, + "io.k8s.api.batch.v1.JobTemplateSpec": { + "description": "JobTemplateSpec describes the data a Job should have when created from a template", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", + "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object" + }, + "io.k8s.api.batch.v1.PodFailurePolicy": { + "description": "PodFailurePolicy describes how failed pods influence the backoffLimit.", + "properties": { + "rules": { + "description": "A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement": { + "description": "PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.", + "properties": { + "containerName": { + "description": "Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.", + "type": "string" + }, + "operator": { + "description": "Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are:\n\n- In: the requirement is satisfied if at least one container exit code\n (might be multiple if there are multiple containers not restricted\n by the 'containerName' field) is in the set of specified values.\n- NotIn: the requirement is satisfied if at least one container exit code\n (might be multiple if there are multiple containers not restricted\n by the 'containerName' field) is not in the set of specified values.\nAdditional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.", + "type": "string" + }, + "values": { + "description": "Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "operator", + "values" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern": { + "description": "PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.", + "properties": { + "status": { + "description": "Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.", + "type": "string" + }, + "type": { + "description": "Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.PodFailurePolicyRule": { + "description": "PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule.", + "properties": { + "action": { + "description": "Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are:\n\n- FailJob: indicates that the pod's job is marked as Failed and all\n running pods are terminated.\n- FailIndex: indicates that the pod's index is marked as Failed and will\n not be restarted.\n- Ignore: indicates that the counter towards the .backoffLimit is not\n incremented and a replacement pod is created.\n- Count: indicates that the pod is handled in the default way - the\n counter towards the .backoffLimit is incremented.\nAdditional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.", + "type": "string" + }, + "onExitCodes": { + "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement", + "description": "Represents the requirement on the container exit codes." + }, + "onPodConditions": { + "description": "Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.SuccessPolicy": { + "description": "SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.", + "properties": { + "rules": { + "description": "rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SuccessCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.SuccessPolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.SuccessPolicyRule": { + "description": "SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified.", + "properties": { + "succeededCount": { + "description": "succeededCount specifies the minimal required size of the actual set of the succeeded indexes for the Job. When succeededCount is used along with succeededIndexes, the check is constrained only to the set of indexes specified by succeededIndexes. For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\", and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded because only \"1\" and \"3\" indexes are considered in that rules. When this field is null, this doesn't default to any value and is never evaluated at any time. When specified it needs to be a positive integer.", + "format": "int32", + "type": "integer" + }, + "succeededIndexes": { + "description": "succeededIndexes specifies the set of indexes which need to be contained in the actual set of the succeeded indexes for the Job. The list of indexes must be within 0 to \".spec.completions-1\" and must not contain duplicates. At least one element is required. The indexes are represented as intervals separated by commas. The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen. The number are listed in represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". When this field is null, this field doesn't default to any value and is never evaluated at any time.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.batch.v1.UncountedTerminatedPods": { + "description": "UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.", + "properties": { + "failed": { + "description": "failed holds UIDs of failed Pods.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "succeeded": { + "description": "succeeded holds UIDs of succeeded Pods.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "type": "object" + }, + "io.k8s.api.certificates.v1.CertificateSigningRequest": { + "description": "CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\n\nKubelets use this API to obtain:\n 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestSpec", + "description": "spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestStatus", + "description": "status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + ] + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestCondition": { + "description": "CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." + }, + "lastUpdateTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastUpdateTime is the time of the last update to this condition" + }, + "message": { + "description": "message contains a human readable message with details about the request state", + "type": "string" + }, + "reason": { + "description": "reason indicates a brief reason for the request state", + "type": "string" + }, + "status": { + "description": "status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".", + "type": "string" + }, + "type": { + "description": "type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\nAn \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\n\nA \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\n\nA \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\n\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\n\nOnly one condition of a given type is allowed.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestList": { + "description": "CertificateSigningRequestList is a collection of CertificateSigningRequest objects", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a collection of CertificateSigningRequest objects", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequestList", + "version": "v1" + } + ] + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestSpec": { + "description": "CertificateSigningRequestSpec contains the certificate request.", + "properties": { + "expirationSeconds": { + "description": "expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\n\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\n\nCertificate signers may not honor this field for various reasons:\n\n 1. Old signer that is unaware of the field (such as the in-tree\n implementations prior to v1.22)\n 2. Signer whose configured maximum is shorter than the requested duration\n 3. Signer whose configured minimum is longer than the requested duration\n\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.", + "format": "int32", + "type": "integer" + }, + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "type": "object" + }, + "groups": { + "description": "groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "request": { + "description": "request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.", + "format": "byte", + "type": "string" + }, + "signerName": { + "description": "signerName indicates the requested signer, and is a qualified name.\n\nList/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\nWell-known Kubernetes signers are:\n 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\nCustom signerNames can also be specified. The signer defines:\n 1. Trust distribution: how trust (CA bundles) are distributed.\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n 4. Required, permitted, or forbidden key usages / extended key usages.\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n 6. Whether or not requests for CA certificates are allowed.", + "type": "string" + }, + "uid": { + "description": "uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "type": "string" + }, + "usages": { + "description": "usages specifies a set of key usages requested in the issued certificate.\n\nRequests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\nRequests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\nValid values are:\n \"signing\", \"digital signature\", \"content commitment\",\n \"key encipherment\", \"key agreement\", \"data encipherment\",\n \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n \"server auth\", \"client auth\",\n \"code signing\", \"email protection\", \"s/mime\",\n \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "username": { + "description": "username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "type": "string" + } + }, + "required": [ + "request", + "signerName" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestStatus": { + "description": "CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.", + "properties": { + "certificate": { + "description": "certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\nValidation requirements:\n 1. certificate must contain one or more PEM blocks.\n 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n to allow for explanatory text as described in section 5.2 of RFC7468.\n\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\nThe certificate is encoded in PEM format.\n\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\n base64(\n -----BEGIN CERTIFICATE-----\n ...\n -----END CERTIFICATE-----\n )", + "format": "byte", + "type": "string" + }, + "conditions": { + "description": "conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + } + }, + "type": "object" + }, + "io.k8s.api.certificates.v1alpha1.ClusterTrustBundle": { + "description": "ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates).\n\nClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to.\n\nIt can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata contains the object metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec", + "description": "spec contains the signer (if any) and trust anchors." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "ClusterTrustBundle", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.certificates.v1alpha1.ClusterTrustBundleList": { + "description": "ClusterTrustBundleList is a collection of ClusterTrustBundle objects", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a collection of ClusterTrustBundle objects", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata contains the list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "ClusterTrustBundleList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec": { + "description": "ClusterTrustBundleSpec contains the signer and trust anchors.", + "properties": { + "signerName": { + "description": "signerName indicates the associated signer, if any.\n\nIn order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName= verb=attest.\n\nIf signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`.\n\nIf signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix.\n\nList/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.", + "type": "string" + }, + "trustBundle": { + "description": "trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\n\nThe data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers.\n\nUsers of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.", + "type": "string" + } + }, + "required": [ + "trustBundle" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1beta1.ClusterTrustBundle": { + "description": "ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates).\n\nClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to.\n\nIt can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata contains the object metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.ClusterTrustBundleSpec", + "description": "spec contains the signer (if any) and trust anchors." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "ClusterTrustBundle", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.certificates.v1beta1.ClusterTrustBundleList": { + "description": "ClusterTrustBundleList is a collection of ClusterTrustBundle objects", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a collection of ClusterTrustBundle objects", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.ClusterTrustBundle" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata contains the list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "ClusterTrustBundleList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.certificates.v1beta1.ClusterTrustBundleSpec": { + "description": "ClusterTrustBundleSpec contains the signer and trust anchors.", + "properties": { + "signerName": { + "description": "signerName indicates the associated signer, if any.\n\nIn order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName= verb=attest.\n\nIf signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`.\n\nIf signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix.\n\nList/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.", + "type": "string" + }, + "trustBundle": { + "description": "trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\n\nThe data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers.\n\nUsers of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.", + "type": "string" + } + }, + "required": [ + "trustBundle" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1beta1.PodCertificateRequest": { + "description": "PodCertificateRequest encodes a pod requesting a certificate from a given signer.\n\nKubelets use this API to implement podCertificate projected volumes", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata contains the object metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.PodCertificateRequestSpec", + "description": "spec contains the details about the certificate being requested." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.PodCertificateRequestStatus", + "description": "status contains the issued certificate, and a standard set of conditions." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "PodCertificateRequest", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.certificates.v1beta1.PodCertificateRequestList": { + "description": "PodCertificateRequestList is a collection of PodCertificateRequest objects", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a collection of PodCertificateRequest objects", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.PodCertificateRequest" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata contains the list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "PodCertificateRequestList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.certificates.v1beta1.PodCertificateRequestSpec": { + "description": "PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation.", + "properties": { + "maxExpirationSeconds": { + "description": "maxExpirationSeconds is the maximum lifetime permitted for the certificate.\n\nIf omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days).\n\nThe signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.", + "format": "int32", + "type": "integer" + }, + "nodeName": { + "description": "nodeName is the name of the node the pod is assigned to.", + "type": "string" + }, + "nodeUID": { + "description": "nodeUID is the UID of the node the pod is assigned to.", + "type": "string" + }, + "pkixPublicKey": { + "description": "pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to.\n\nThe key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future.\n\nSigner implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.", + "format": "byte", + "type": "string" + }, + "podName": { + "description": "podName is the name of the pod into which the certificate will be mounted.", + "type": "string" + }, + "podUID": { + "description": "podUID is the UID of the pod into which the certificate will be mounted.", + "type": "string" + }, + "proofOfPossession": { + "description": "proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey.\n\nIt is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`.\n\nkube-apiserver validates the proof of possession during creation of the PodCertificateRequest.\n\nIf the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options).\n\nIf the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1)\n\nIf the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign).", + "format": "byte", + "type": "string" + }, + "serviceAccountName": { + "description": "serviceAccountName is the name of the service account the pod is running as.", + "type": "string" + }, + "serviceAccountUID": { + "description": "serviceAccountUID is the UID of the service account the pod is running as.", + "type": "string" + }, + "signerName": { + "description": "signerName indicates the requested signer.\n\nAll signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented.", + "type": "string" + }, + "unverifiedUserAnnotations": { + "additionalProperties": { + "type": "string" + }, + "description": "unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way.\n\nEntries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field.\n\nSigners should document the keys and values they support. Signers should deny requests that contain keys they do not recognize.", + "type": "object" + } + }, + "required": [ + "signerName", + "podName", + "podUID", + "serviceAccountName", + "serviceAccountUID", + "nodeName", + "nodeUID", + "pkixPublicKey", + "proofOfPossession" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1beta1.PodCertificateRequestStatus": { + "description": "PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued.", + "properties": { + "beginRefreshAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable.\n\nThis field is only a hint. Kubelet may start refreshing before or after this time if necessary." + }, + "certificateChain": { + "description": "certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\nValidation requirements:\n 1. certificateChain must consist of one or more PEM-formatted certificates.\n 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as\n described in section 4 of RFC5280.\n\nIf more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers.", + "type": "string" + }, + "conditions": { + "description": "conditions applied to the request.\n\nThe types \"Issued\", \"Denied\", and \"Failed\" have special handling. At most one of these conditions may be present, and they must have status \"True\".\n\nIf the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "notAfter": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain." + }, + "notBefore": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain." + } + }, + "type": "object" + }, + "io.k8s.api.coordination.v1.Lease": { + "description": "Lease defines a lease concept.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", + "description": "spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + ] + }, + "io.k8s.api.coordination.v1.LeaseList": { + "description": "LeaseList is a list of Lease objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "LeaseList", + "version": "v1" + } + ] + }, + "io.k8s.api.coordination.v1.LeaseSpec": { + "description": "LeaseSpec is a specification of a Lease.", + "properties": { + "acquireTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "acquireTime is a time when the current lease was acquired." + }, + "holderIdentity": { + "description": "holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.", + "type": "string" + }, + "leaseDurationSeconds": { + "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.", + "format": "int32", + "type": "integer" + }, + "leaseTransitions": { + "description": "leaseTransitions is the number of transitions of a lease between holders.", + "format": "int32", + "type": "integer" + }, + "preferredHolder": { + "description": "PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.", + "type": "string" + }, + "renewTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "renewTime is a time when the current holder of a lease has last updated the lease." + }, + "strategy": { + "description": "Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.coordination.v1alpha2.LeaseCandidate": { + "description": "LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.coordination.v1alpha2.LeaseCandidateSpec", + "description": "spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "LeaseCandidate", + "version": "v1alpha2" + } + ] + }, + "io.k8s.api.coordination.v1alpha2.LeaseCandidateList": { + "description": "LeaseCandidateList is a list of Lease objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.coordination.v1alpha2.LeaseCandidate" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "LeaseCandidateList", + "version": "v1alpha2" + } + ] + }, + "io.k8s.api.coordination.v1alpha2.LeaseCandidateSpec": { + "description": "LeaseCandidateSpec is a specification of a Lease.", + "properties": { + "binaryVersion": { + "description": "BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.", + "type": "string" + }, + "emulationVersion": { + "description": "EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is \"OldestEmulationVersion\"", + "type": "string" + }, + "leaseName": { + "description": "LeaseName is the name of the lease for which this candidate is contending. This field is immutable.", + "type": "string" + }, + "pingTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime." + }, + "renewTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates." + }, + "strategy": { + "description": "Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved.", + "type": "string" + } + }, + "required": [ + "leaseName", + "binaryVersion", + "strategy" + ], + "type": "object" + }, + "io.k8s.api.coordination.v1beta1.LeaseCandidate": { + "description": "LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseCandidateSpec", + "description": "spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "LeaseCandidate", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.coordination.v1beta1.LeaseCandidateList": { + "description": "LeaseCandidateList is a list of Lease objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseCandidate" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "LeaseCandidateList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.coordination.v1beta1.LeaseCandidateSpec": { + "description": "LeaseCandidateSpec is a specification of a Lease.", + "properties": { + "binaryVersion": { + "description": "BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.", + "type": "string" + }, + "emulationVersion": { + "description": "EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is \"OldestEmulationVersion\"", + "type": "string" + }, + "leaseName": { + "description": "LeaseName is the name of the lease for which this candidate is contending. The limits on this field are the same as on Lease.name. Multiple lease candidates may reference the same Lease.name. This field is immutable.", + "type": "string" + }, + "pingTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime." + }, + "renewTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates." + }, + "strategy": { + "description": "Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved.", + "type": "string" + } + }, + "required": [ + "leaseName", + "binaryVersion", + "strategy" + ], + "type": "object" + }, + "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": { + "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "string" + }, + "partition": { + "description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).", + "format": "int32", + "type": "integer" + }, + "readOnly": { + "description": "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "boolean" + }, + "volumeID": { + "description": "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "string" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Affinity": { + "description": "Affinity is a group of affinity scheduling rules.", + "properties": { + "nodeAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", + "description": "Describes node affinity scheduling rules for the pod." + }, + "podAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", + "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." + }, + "podAntiAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", + "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.AppArmorProfile": { + "description": "AppArmorProfile defines a pod or container's AppArmor settings.", + "properties": { + "localhostProfile": { + "description": "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\".", + "type": "string" + }, + "type": { + "description": "type indicates which kind of AppArmor profile will be applied. Valid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "localhostProfile": "LocalhostProfile" + } + } + ] + }, + "io.k8s.api.core.v1.AttachedVolume": { + "description": "AttachedVolume describes a volume attached to a node", + "properties": { + "devicePath": { + "description": "DevicePath represents the device path where the volume should be available", + "type": "string" + }, + "name": { + "description": "Name of the attached volume", + "type": "string" + } + }, + "required": [ + "name", + "devicePath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.AzureDiskVolumeSource": { + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "properties": { + "cachingMode": { + "description": "cachingMode is the Host Caching mode: None, Read Only, Read Write.", + "type": "string" + }, + "diskName": { + "description": "diskName is the Name of the data disk in the blob storage", + "type": "string" + }, + "diskURI": { + "description": "diskURI is the URI of data disk in the blob storage", + "type": "string" + }, + "fsType": { + "description": "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "kind": { + "description": "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", + "type": "string" + }, + "readOnly": { + "description": "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + } + }, + "required": [ + "diskName", + "diskURI" + ], + "type": "object" + }, + "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "properties": { + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "secretName is the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "secretNamespace": { + "description": "secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", + "type": "string" + }, + "shareName": { + "description": "shareName is the azure Share Name", + "type": "string" + } + }, + "required": [ + "secretName", + "shareName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.AzureFileVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "properties": { + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "secretName is the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "shareName": { + "description": "shareName is the azure share Name", + "type": "string" + } + }, + "required": [ + "secretName", + "shareName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Binding": { + "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "The target object that you want to bind to the standard object." + } + }, + "required": [ + "target" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Binding", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.CSIPersistentVolumeSource": { + "description": "Represents storage that is managed by an external CSI volume driver", + "properties": { + "controllerExpandSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." + }, + "controllerPublishSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." + }, + "driver": { + "description": "driver is the name of the driver to use for this volume. Required.", + "type": "string" + }, + "fsType": { + "description": "fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", + "type": "string" + }, + "nodeExpandSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed." + }, + "nodePublishSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." + }, + "nodeStageSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." + }, + "readOnly": { + "description": "readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", + "type": "boolean" + }, + "volumeAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "volumeAttributes of the volume to publish.", + "type": "object" + }, + "volumeHandle": { + "description": "volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.", + "type": "string" + } + }, + "required": [ + "driver", + "volumeHandle" + ], + "type": "object" + }, + "io.k8s.api.core.v1.CSIVolumeSource": { + "description": "Represents a source location of a volume to mount, managed by an external CSI driver", + "properties": { + "driver": { + "description": "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + "type": "string" + }, + "fsType": { + "description": "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", + "type": "string" + }, + "nodePublishSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + }, + "readOnly": { + "description": "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", + "type": "boolean" + }, + "volumeAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + "type": "object" + } + }, + "required": [ + "driver" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Capabilities": { + "description": "Adds and removes POSIX capabilities from running containers.", + "properties": { + "add": { + "description": "Added capabilities", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "drop": { + "description": "Removed capabilities", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.CephFSPersistentVolumeSource": { + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", + "properties": { + "monitors": { + "description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "path": { + "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "boolean" + }, + "secretFile": { + "description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + }, + "user": { + "description": "user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + } + }, + "required": [ + "monitors" + ], + "type": "object" + }, + "io.k8s.api.core.v1.CephFSVolumeSource": { + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", + "properties": { + "monitors": { + "description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "path": { + "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "boolean" + }, + "secretFile": { + "description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + }, + "user": { + "description": "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + } + }, + "required": [ + "monitors" + ], + "type": "object" + }, + "io.k8s.api.core.v1.CinderPersistentVolumeSource": { + "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack." + }, + "volumeID": { + "description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.CinderVolumeSource": { + "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." + }, + "volumeID": { + "description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ClientIPConfig": { + "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", + "properties": { + "timeoutSeconds": { + "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ClusterTrustBundleProjection": { + "description": "ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.", + "properties": { + "labelSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \"match nothing\". If set but empty, interpreted as \"match everything\"." + }, + "name": { + "description": "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", + "type": "string" + }, + "optional": { + "description": "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", + "type": "boolean" + }, + "path": { + "description": "Relative path from the volume root to write the bundle.", + "type": "string" + }, + "signerName": { + "description": "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ComponentCondition": { + "description": "Information about the condition of a component.", + "properties": { + "error": { + "description": "Condition error code for a component. For example, a health check error code.", + "type": "string" + }, + "message": { + "description": "Message about the condition for a component. For example, information about a health check.", + "type": "string" + }, + "status": { + "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", + "type": "string" + }, + "type": { + "description": "Type of condition for a component. Valid value: \"Healthy\"", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ComponentStatus": { + "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "conditions": { + "description": "List of component conditions observed", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ComponentStatus", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ComponentStatusList": { + "description": "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ComponentStatus objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ComponentStatusList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMap": { + "description": "ConfigMap holds configuration data for pods to consume.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "binaryData": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", + "type": "object" + }, + "data": { + "additionalProperties": { + "type": "string" + }, + "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", + "type": "object" + }, + "immutable": { + "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.", + "type": "boolean" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMapEnvSource": { + "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", + "properties": { + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ConfigMapKeySelector": { + "description": "Selects a key from a ConfigMap.", + "properties": { + "key": { + "description": "The key to select.", + "type": "string" + }, + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap or its key must be defined", + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.ConfigMapList": { + "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of ConfigMaps.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ConfigMapList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { + "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration", + "properties": { + "kubeletConfigKey": { + "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", + "type": "string" + }, + "name": { + "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", + "type": "string" + }, + "resourceVersion": { + "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", + "type": "string" + }, + "uid": { + "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", + "type": "string" + } + }, + "required": [ + "namespace", + "name", + "kubeletConfigKey" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ConfigMapProjection": { + "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", + "properties": { + "items": { + "description": "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "optional specify whether the ConfigMap or its keys must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ConfigMapVolumeSource": { + "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "items": { + "description": "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "optional specify whether the ConfigMap or its keys must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Container": { + "description": "A single application container that you want to run within a pod.", + "properties": { + "args": { + "description": "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "command": { + "description": "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "env": { + "description": "List of environment variables to set in the container. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "envFrom": { + "description": "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "image": { + "description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", + "type": "string" + }, + "imagePullPolicy": { + "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", + "type": "string" + }, + "lifecycle": { + "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", + "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." + }, + "livenessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "name": { + "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", + "type": "string" + }, + "ports": { + "description": "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "containerPort", + "protocol" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "containerPort", + "x-kubernetes-patch-strategy": "merge" + }, + "readinessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "resizePolicy": { + "description": "Resources resize policy for the container. This field cannot be set on ephemeral containers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerResizePolicy" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" + }, + "restartPolicy": { + "description": "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.", + "type": "string" + }, + "restartPolicyRules": { + "description": "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerRestartRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "securityContext": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", + "description": "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" + }, + "startupProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "stdin": { + "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", + "type": "boolean" + }, + "stdinOnce": { + "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", + "type": "boolean" + }, + "terminationMessagePath": { + "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", + "type": "string" + }, + "terminationMessagePolicy": { + "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", + "type": "string" + }, + "tty": { + "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", + "type": "boolean" + }, + "volumeDevices": { + "description": "volumeDevices is the list of block devices to be used by the container.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "devicePath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "devicePath", + "x-kubernetes-patch-strategy": "merge" + }, + "volumeMounts": { + "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" + }, + "workingDir": { + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerExtendedResourceRequest": { + "description": "ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name.", + "properties": { + "containerName": { + "description": "The name of the container requesting resources.", + "type": "string" + }, + "requestName": { + "description": "The name of the request in the special ResourceClaim which corresponds to the extended resource.", + "type": "string" + }, + "resourceName": { + "description": "The name of the extended resource in that container which gets backed by DRA.", + "type": "string" + } + }, + "required": [ + "containerName", + "resourceName", + "requestName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerImage": { + "description": "Describe a container image", + "properties": { + "names": { + "description": "Names by which this image is known. e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "sizeBytes": { + "description": "The size of the image in bytes.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ContainerPort": { + "description": "ContainerPort represents a network port in a single container.", + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.", + "format": "int32", + "type": "integer" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", + "type": "string" + }, + "protocol": { + "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", + "type": "string" + } + }, + "required": [ + "containerPort" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerResizePolicy": { + "description": "ContainerResizePolicy represents resource resize policy for the container.", + "properties": { + "resourceName": { + "description": "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.", + "type": "string" + }, + "restartPolicy": { + "description": "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.", + "type": "string" + } + }, + "required": [ + "resourceName", + "restartPolicy" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerRestartRule": { + "description": "ContainerRestartRule describes how a container exit is handled.", + "properties": { + "action": { + "description": "Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.", + "type": "string" + }, + "exitCodes": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerRestartRuleOnExitCodes", + "description": "Represents the exit codes to check on container exits." + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerRestartRuleOnExitCodes": { + "description": "ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes.", + "properties": { + "operator": { + "description": "Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the\n set of specified values.\n- NotIn: the requirement is satisfied if the container exit code is\n not in the set of specified values.", + "type": "string" + }, + "values": { + "description": "Specifies the set of values to check for container exit codes. At most 255 elements are allowed.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "operator" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerState": { + "description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", + "properties": { + "running": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", + "description": "Details about a running container" + }, + "terminated": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", + "description": "Details about a terminated container" + }, + "waiting": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", + "description": "Details about a waiting container" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ContainerStateRunning": { + "description": "ContainerStateRunning is a running state of a container.", + "properties": { + "startedAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time at which the container was last (re-)started" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ContainerStateTerminated": { + "description": "ContainerStateTerminated is a terminated state of a container.", + "properties": { + "containerID": { + "description": "Container's ID in the format '://'", + "type": "string" + }, + "exitCode": { + "description": "Exit status from the last termination of the container", + "format": "int32", + "type": "integer" + }, + "finishedAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time at which the container last terminated" + }, + "message": { + "description": "Message regarding the last termination of the container", + "type": "string" + }, + "reason": { + "description": "(brief) reason from the last termination of the container", + "type": "string" + }, + "signal": { + "description": "Signal from the last termination of the container", + "format": "int32", + "type": "integer" + }, + "startedAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time at which previous execution of the container started" + } + }, + "required": [ + "exitCode" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerStateWaiting": { + "description": "ContainerStateWaiting is a waiting state of a container.", + "properties": { + "message": { + "description": "Message regarding why the container is not yet running.", + "type": "string" + }, + "reason": { + "description": "(brief) reason the container is not yet running.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ContainerStatus": { + "description": "ContainerStatus contains details for the current status of this container.", + "properties": { + "allocatedResources": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.", + "type": "object" + }, + "allocatedResourcesStatus": { + "description": "AllocatedResourcesStatus represents the status of various resources allocated for this Pod.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "containerID": { + "description": "ContainerID is the ID of the container in the format '://'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \"containerd\").", + "type": "string" + }, + "image": { + "description": "Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.", + "type": "string" + }, + "imageID": { + "description": "ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.", + "type": "string" + }, + "lastState": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", + "description": "LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0." + }, + "name": { + "description": "Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.", + "type": "string" + }, + "ready": { + "description": "Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field).\n\nThe value is typically used to determine whether a container is ready to accept traffic.", + "type": "boolean" + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized." + }, + "restartCount": { + "description": "RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.", + "format": "int32", + "type": "integer" + }, + "started": { + "description": "Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.", + "type": "boolean" + }, + "state": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", + "description": "State holds details about the container's current condition." + }, + "stopSignal": { + "description": "StopSignal reports the effective stop signal for this container", + "type": "string" + }, + "user": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerUser", + "description": "User represents user identity information initially attached to the first process of the container" + }, + "volumeMounts": { + "description": "Status of volume mounts.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMountStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" + } + }, + "required": [ + "name", + "ready", + "restartCount", + "image", + "imageID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerUser": { + "description": "ContainerUser represents user identity information", + "properties": { + "linux": { + "$ref": "#/definitions/io.k8s.api.core.v1.LinuxContainerUser", + "description": "Linux holds user identity information initially attached to the first process of the containers in Linux. Note that the actual running identity can be changed if the process has enough privilege to do so." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.DaemonEndpoint": { + "description": "DaemonEndpoint contains information about a single Daemon endpoint.", + "properties": { + "Port": { + "description": "Port number of the given endpoint.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.DownwardAPIProjection": { + "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", + "properties": { + "items": { + "description": "Items is a list of DownwardAPIVolume file", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.DownwardAPIVolumeFile": { + "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", + "properties": { + "fieldRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", + "description": "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported." + }, + "mode": { + "description": "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", + "type": "string" + }, + "resourceFieldRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.DownwardAPIVolumeSource": { + "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "items": { + "description": "Items is a list of downward API volume file", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EmptyDirVolumeSource": { + "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + "properties": { + "medium": { + "description": "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "type": "string" + }, + "sizeLimit": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EndpointAddress": { + "description": "EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.", + "properties": { + "hostname": { + "description": "The Hostname of this endpoint", + "type": "string" + }, + "ip": { + "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).", + "type": "string" + }, + "nodeName": { + "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", + "type": "string" + }, + "targetRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "Reference to object providing the endpoint." + } + }, + "required": [ + "ip" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.EndpointPort": { + "description": "EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.", + "properties": { + "appProtocol": { + "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.", + "type": "string" + }, + "name": { + "description": "The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.", + "type": "string" + }, + "port": { + "description": "The port number of the endpoint.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", + "type": "string" + } + }, + "required": [ + "port" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.EndpointSubset": { + "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\n\nDeprecated: This API is deprecated in v1.33+.", + "properties": { + "addresses": { + "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "notReadyAddresses": { + "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ports": { + "description": "Port numbers available on the related IP addresses.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Endpoints": { + "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n\n\t Name: \"mysvc\",\n\t Subsets: [\n\t {\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t },\n\t {\n\t Addresses: [{\"ip\": \"10.10.3.3\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n\t },\n\t]\n\nEndpoints is a legacy API and does not contain information about all Service features. Use discoveryv1.EndpointSlice for complete information about Service endpoints.\n\nDeprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "subsets": { + "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EndpointsList": { + "description": "EndpointsList is a list of endpoints. Deprecated: This API is deprecated in v1.33+.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of endpoints.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "EndpointsList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EnvFromSource": { + "description": "EnvFromSource represents the source of a set of ConfigMaps or Secrets", + "properties": { + "configMapRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", + "description": "The ConfigMap to select from" + }, + "prefix": { + "description": "Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='.", + "type": "string" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", + "description": "The Secret to select from" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EnvVar": { + "description": "EnvVar represents an environment variable present in a Container.", + "properties": { + "name": { + "description": "Name of the environment variable. May consist of any printable ASCII characters except '='.", + "type": "string" + }, + "value": { + "description": "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", + "type": "string" + }, + "valueFrom": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", + "description": "Source for the environment variable's value. Cannot be used if value is not empty." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.EnvVarSource": { + "description": "EnvVarSource represents a source for the value of an EnvVar.", + "properties": { + "configMapKeyRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", + "description": "Selects a key of a ConfigMap." + }, + "fieldRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", + "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." + }, + "fileKeyRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.FileKeySelector", + "description": "FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled." + }, + "resourceFieldRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." + }, + "secretKeyRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", + "description": "Selects a key of a secret in the pod's namespace" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EphemeralContainer": { + "description": "An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\n\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.", + "properties": { + "args": { + "description": "Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "command": { + "description": "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "env": { + "description": "List of environment variables to set in the container. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "envFrom": { + "description": "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "image": { + "description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images", + "type": "string" + }, + "imagePullPolicy": { + "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", + "type": "string" + }, + "lifecycle": { + "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", + "description": "Lifecycle is not allowed for ephemeral containers." + }, + "livenessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Probes are not allowed for ephemeral containers." + }, + "name": { + "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", + "type": "string" + }, + "ports": { + "description": "Ports are not allowed for ephemeral containers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "containerPort", + "protocol" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "containerPort", + "x-kubernetes-patch-strategy": "merge" + }, + "readinessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Probes are not allowed for ephemeral containers." + }, + "resizePolicy": { + "description": "Resources resize policy for the container.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerResizePolicy" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." + }, + "restartPolicy": { + "description": "Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.", + "type": "string" + }, + "restartPolicyRules": { + "description": "Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerRestartRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "securityContext": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", + "description": "Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext." + }, + "startupProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Probes are not allowed for ephemeral containers." + }, + "stdin": { + "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", + "type": "boolean" + }, + "stdinOnce": { + "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", + "type": "boolean" + }, + "targetContainerName": { + "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.", + "type": "string" + }, + "terminationMessagePath": { + "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", + "type": "string" + }, + "terminationMessagePolicy": { + "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", + "type": "string" + }, + "tty": { + "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", + "type": "boolean" + }, + "volumeDevices": { + "description": "volumeDevices is the list of block devices to be used by the container.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "devicePath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "devicePath", + "x-kubernetes-patch-strategy": "merge" + }, + "volumeMounts": { + "description": "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" + }, + "workingDir": { + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.EphemeralVolumeSource": { + "description": "Represents an ephemeral volume that is handled by a normal storage driver.", + "properties": { + "volumeClaimTemplate": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate", + "description": "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Event": { + "description": "Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", + "properties": { + "action": { + "description": "What action was taken/failed regarding to the Regarding object.", + "type": "string" + }, + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "count": { + "description": "The number of times this event has occurred.", + "format": "int32", + "type": "integer" + }, + "eventTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "Time when this Event was first observed." + }, + "firstTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" + }, + "involvedObject": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "The object that this event is about." + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "lastTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The time at which the most recent occurrence of this event was recorded." + }, + "message": { + "description": "A human-readable description of the status of this operation.", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "reason": { + "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", + "type": "string" + }, + "related": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "Optional secondary object for more complex actions." + }, + "reportingComponent": { + "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", + "type": "string" + }, + "reportingInstance": { + "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", + "type": "string" + }, + "series": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", + "description": "Data about the Event series this event represents or nil if it's a singleton Event." + }, + "source": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", + "description": "The component reporting this event. Should be a short machine understandable string." + }, + "type": { + "description": "Type of this event (Normal, Warning), new types could be added in the future", + "type": "string" + } + }, + "required": [ + "metadata", + "involvedObject" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Event", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EventList": { + "description": "EventList is a list of events.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of events", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "EventList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EventSeries": { + "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", + "properties": { + "count": { + "description": "Number of occurrences in this series up to the last heartbeat time", + "format": "int32", + "type": "integer" + }, + "lastObservedTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "Time of the last occurrence observed" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EventSource": { + "description": "EventSource contains information for an event.", + "properties": { + "component": { + "description": "Component from which the event is generated.", + "type": "string" + }, + "host": { + "description": "Node name on which the event is generated.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ExecAction": { + "description": "ExecAction describes a \"run in container\" action.", + "properties": { + "command": { + "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.FCVolumeSource": { + "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "lun": { + "description": "lun is Optional: FC target lun number", + "format": "int32", + "type": "integer" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "targetWWNs": { + "description": "targetWWNs is Optional: FC target worldwide names (WWNs)", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "wwids": { + "description": "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.FileKeySelector": { + "description": "FileKeySelector selects a key of the env file.", + "properties": { + "key": { + "description": "The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.", + "type": "string" + }, + "optional": { + "description": "Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers.\n\nIf optional is set to false and the specified key does not exist, an error will be returned during Pod creation.", + "type": "boolean" + }, + "path": { + "description": "The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.", + "type": "string" + }, + "volumeName": { + "description": "The name of the volume mount containing the env file.", + "type": "string" + } + }, + "required": [ + "volumeName", + "path", + "key" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.FlexPersistentVolumeSource": { + "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", + "properties": { + "driver": { + "description": "driver is the name of the driver to use for this volume.", + "type": "string" + }, + "fsType": { + "description": "fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", + "type": "string" + }, + "options": { + "additionalProperties": { + "type": "string" + }, + "description": "options is Optional: this field holds extra command options if any.", + "type": "object" + }, + "readOnly": { + "description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + } + }, + "required": [ + "driver" + ], + "type": "object" + }, + "io.k8s.api.core.v1.FlexVolumeSource": { + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", + "properties": { + "driver": { + "description": "driver is the name of the driver to use for this volume.", + "type": "string" + }, + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", + "type": "string" + }, + "options": { + "additionalProperties": { + "type": "string" + }, + "description": "options is Optional: this field holds extra command options if any.", + "type": "object" + }, + "readOnly": { + "description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + } + }, + "required": [ + "driver" + ], + "type": "object" + }, + "io.k8s.api.core.v1.FlockerVolumeSource": { + "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", + "properties": { + "datasetName": { + "description": "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", + "type": "string" + }, + "datasetUUID": { + "description": "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": { + "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "string" + }, + "partition": { + "description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "format": "int32", + "type": "integer" + }, + "pdName": { + "description": "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "boolean" + } + }, + "required": [ + "pdName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.GRPCAction": { + "description": "GRPCAction specifies an action involving a GRPC service.", + "properties": { + "port": { + "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", + "format": "int32", + "type": "integer" + }, + "service": { + "description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\nIf this is not specified, the default behavior is defined by gRPC.", + "type": "string" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.GitRepoVolumeSource": { + "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", + "properties": { + "directory": { + "description": "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", + "type": "string" + }, + "repository": { + "description": "repository is the URL", + "type": "string" + }, + "revision": { + "description": "revision is the commit hash for the specified revision.", + "type": "string" + } + }, + "required": [ + "repository" + ], + "type": "object" + }, + "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "properties": { + "endpoints": { + "description": "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "endpointsNamespace": { + "description": "endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "path": { + "description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "boolean" + } + }, + "required": [ + "endpoints", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.GlusterfsVolumeSource": { + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "properties": { + "endpoints": { + "description": "endpoints is the endpoint name that details Glusterfs topology.", + "type": "string" + }, + "path": { + "description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "boolean" + } + }, + "required": [ + "endpoints", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "properties": { + "host": { + "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", + "type": "string" + }, + "httpHeaders": { + "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "path": { + "description": "Path to access on the HTTP server.", + "type": "string" + }, + "port": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." + }, + "scheme": { + "description": "Scheme to use for connecting to the host. Defaults to HTTP.", + "type": "string" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.HTTPHeader": { + "description": "HTTPHeader describes a custom header to be used in HTTP probes", + "properties": { + "name": { + "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", + "type": "string" + }, + "value": { + "description": "The header field value", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "io.k8s.api.core.v1.HostAlias": { + "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", + "properties": { + "hostnames": { + "description": "Hostnames for the above IP address.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ip": { + "description": "IP address of the host file entry.", + "type": "string" + } + }, + "required": [ + "ip" + ], + "type": "object" + }, + "io.k8s.api.core.v1.HostIP": { + "description": "HostIP represents a single IP address allocated to the host.", + "properties": { + "ip": { + "description": "IP is the IP address assigned to the host", + "type": "string" + } + }, + "required": [ + "ip" + ], + "type": "object" + }, + "io.k8s.api.core.v1.HostPathVolumeSource": { + "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", + "properties": { + "path": { + "description": "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "type": "string" + }, + "type": { + "description": "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ISCSIPersistentVolumeSource": { + "description": "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", + "properties": { + "chapAuthDiscovery": { + "description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", + "type": "boolean" + }, + "chapAuthSession": { + "description": "chapAuthSession defines whether support iSCSI Session CHAP authentication", + "type": "boolean" + }, + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", + "type": "string" + }, + "initiatorName": { + "description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", + "type": "string" + }, + "iqn": { + "description": "iqn is Target iSCSI Qualified Name.", + "type": "string" + }, + "iscsiInterface": { + "description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", + "type": "string" + }, + "lun": { + "description": "lun is iSCSI Target Lun number.", + "format": "int32", + "type": "integer" + }, + "portals": { + "description": "portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication" + }, + "targetPortal": { + "description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "string" + } + }, + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ISCSIVolumeSource": { + "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", + "properties": { + "chapAuthDiscovery": { + "description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", + "type": "boolean" + }, + "chapAuthSession": { + "description": "chapAuthSession defines whether support iSCSI Session CHAP authentication", + "type": "boolean" + }, + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", + "type": "string" + }, + "initiatorName": { + "description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", + "type": "string" + }, + "iqn": { + "description": "iqn is the target iSCSI Qualified Name.", + "type": "string" + }, + "iscsiInterface": { + "description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", + "type": "string" + }, + "lun": { + "description": "lun represents iSCSI Target Lun number.", + "format": "int32", + "type": "integer" + }, + "portals": { + "description": "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication" + }, + "targetPortal": { + "description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "string" + } + }, + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ImageVolumeSource": { + "description": "ImageVolumeSource represents a image volume resource.", + "properties": { + "pullPolicy": { + "description": "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", + "type": "string" + }, + "reference": { + "description": "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ImageVolumeStatus": { + "description": "ImageVolumeStatus represents the image-based volume status.", + "properties": { + "imageRef": { + "description": "ImageRef is the digest of the image used for this volume. It should have a value that's similar to the pod's status.containerStatuses[i].imageID. The ImageRef length should not exceed 256 characters.", + "type": "string" + } + }, + "required": [ + "imageRef" + ], + "type": "object" + }, + "io.k8s.api.core.v1.KeyToPath": { + "description": "Maps a string key to a path within a volume.", + "properties": { + "key": { + "description": "key is the key to project.", + "type": "string" + }, + "mode": { + "description": "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", + "type": "string" + } + }, + "required": [ + "key", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Lifecycle": { + "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", + "properties": { + "postStart": { + "$ref": "#/definitions/io.k8s.api.core.v1.LifecycleHandler", + "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" + }, + "preStop": { + "$ref": "#/definitions/io.k8s.api.core.v1.LifecycleHandler", + "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" + }, + "stopSignal": { + "description": "StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.LifecycleHandler": { + "description": "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.", + "properties": { + "exec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", + "description": "Exec specifies a command to execute in the container." + }, + "httpGet": { + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", + "description": "HTTPGet specifies an HTTP GET request to perform." + }, + "sleep": { + "$ref": "#/definitions/io.k8s.api.core.v1.SleepAction", + "description": "Sleep represents a duration that the container should sleep." + }, + "tcpSocket": { + "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", + "description": "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.LimitRange": { + "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", + "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.LimitRangeItem": { + "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", + "properties": { + "default": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Default resource requirement limit value by resource name if resource limit is omitted.", + "type": "object" + }, + "defaultRequest": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", + "type": "object" + }, + "max": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Max usage constraints on this kind by resource name.", + "type": "object" + }, + "maxLimitRequestRatio": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", + "type": "object" + }, + "min": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Min usage constraints on this kind by resource name.", + "type": "object" + }, + "type": { + "description": "Type of resource that this limit applies to.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.core.v1.LimitRangeList": { + "description": "LimitRangeList is a list of LimitRange items.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "LimitRangeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.LimitRangeSpec": { + "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", + "properties": { + "limits": { + "description": "Limits is the list of LimitRangeItem objects that are enforced.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "limits" + ], + "type": "object" + }, + "io.k8s.api.core.v1.LinuxContainerUser": { + "description": "LinuxContainerUser represents user identity information in Linux containers", + "properties": { + "gid": { + "description": "GID is the primary gid initially attached to the first process in the container", + "format": "int64", + "type": "integer" + }, + "supplementalGroups": { + "description": "SupplementalGroups are the supplemental groups initially attached to the first process in the container", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "uid": { + "description": "UID is the primary uid initially attached to the first process in the container", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "uid", + "gid" + ], + "type": "object" + }, + "io.k8s.api.core.v1.LoadBalancerIngress": { + "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", + "properties": { + "hostname": { + "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", + "type": "string" + }, + "ip": { + "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", + "type": "string" + }, + "ipMode": { + "description": "IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to \"VIP\" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing.", + "type": "string" + }, + "ports": { + "description": "Ports is a list of records of service ports If used, every port defined in the service should have an entry in it", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PortStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.LoadBalancerStatus": { + "description": "LoadBalancerStatus represents the status of a load-balancer.", + "properties": { + "ingress": { + "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.LocalObjectReference": { + "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "properties": { + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.LocalVolumeSource": { + "description": "Local represents directly-attached storage with node affinity", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.", + "type": "string" + }, + "path": { + "description": "path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ModifyVolumeStatus": { + "description": "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation", + "properties": { + "status": { + "description": "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + "type": "string" + }, + "targetVolumeAttributesClassName": { + "description": "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NFSVolumeSource": { + "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + "properties": { + "path": { + "description": "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "boolean" + }, + "server": { + "description": "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "string" + } + }, + "required": [ + "server", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Namespace": { + "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", + "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", + "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Namespace", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NamespaceCondition": { + "description": "NamespaceCondition contains details about state of namespace.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "Human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "Unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of namespace controller condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NamespaceList": { + "description": "NamespaceList is a list of Namespaces.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NamespaceList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NamespaceSpec": { + "description": "NamespaceSpec describes the attributes on a Namespace.", + "properties": { + "finalizers": { + "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NamespaceStatus": { + "description": "NamespaceStatus is information about the current status of a Namespace.", + "properties": { + "conditions": { + "description": "Represents the latest available observations of a namespace's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "phase": { + "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Node": { + "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", + "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", + "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Node", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NodeAddress": { + "description": "NodeAddress contains information for the node's address.", + "properties": { + "address": { + "description": "The node address.", + "type": "string" + }, + "type": { + "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", + "type": "string" + } + }, + "required": [ + "type", + "address" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NodeAffinity": { + "description": "Node affinity is a group of node affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeCondition": { + "description": "NodeCondition contains condition information for a node.", + "properties": { + "lastHeartbeatTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time we got an update on a given condition." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transit from one status to another." + }, + "message": { + "description": "Human readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "(brief) reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of node condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NodeConfigSource": { + "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22", + "properties": { + "configMap": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", + "description": "ConfigMap is a reference to a Node's ConfigMap" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeConfigStatus": { + "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", + "properties": { + "active": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." + }, + "assigned": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." + }, + "error": { + "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", + "type": "string" + }, + "lastKnownGood": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeDaemonEndpoints": { + "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", + "properties": { + "kubeletEndpoint": { + "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", + "description": "Endpoint on which Kubelet is listening." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeFeatures": { + "description": "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.", + "properties": { + "supplementalGroupsPolicy": { + "description": "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeList": { + "description": "NodeList is the whole list of all Nodes which have been registered with master.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of nodes", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NodeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NodeRuntimeHandler": { + "description": "NodeRuntimeHandler is a set of runtime handler information.", + "properties": { + "features": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeRuntimeHandlerFeatures", + "description": "Supported features." + }, + "name": { + "description": "Runtime handler name. Empty for the default runtime handler.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeRuntimeHandlerFeatures": { + "description": "NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.", + "properties": { + "recursiveReadOnlyMounts": { + "description": "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.", + "type": "boolean" + }, + "userNamespaces": { + "description": "UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeSelector": { + "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", + "properties": { + "nodeSelectorTerms": { + "description": "Required. A list of node selector terms. The terms are ORed.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "nodeSelectorTerms" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.NodeSelectorRequirement": { + "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "properties": { + "key": { + "description": "The label key that the selector applies to.", + "type": "string" + }, + "operator": { + "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", + "type": "string" + }, + "values": { + "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "key", + "operator" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NodeSelectorTerm": { + "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", + "properties": { + "matchExpressions": { + "description": "A list of node selector requirements by node's labels.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "matchFields": { + "description": "A list of node selector requirements by node's fields.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.NodeSpec": { + "description": "NodeSpec describes the attributes that a node is created with.", + "properties": { + "configSource": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed." + }, + "externalID": { + "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", + "type": "string" + }, + "podCIDR": { + "description": "PodCIDR represents the pod IP range assigned to the node.", + "type": "string" + }, + "podCIDRs": { + "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set", + "x-kubernetes-patch-strategy": "merge" + }, + "providerID": { + "description": "ID of the node assigned by the cloud provider in the format: ://", + "type": "string" + }, + "taints": { + "description": "If specified, the node's taints.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Taint" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "unschedulable": { + "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeStatus": { + "description": "NodeStatus is information about the current status of a node.", + "properties": { + "addresses": { + "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "allocatable": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", + "type": "object" + }, + "capacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity", + "type": "object" + }, + "conditions": { + "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "config": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", + "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." + }, + "daemonEndpoints": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", + "description": "Endpoints of daemons running on the Node." + }, + "declaredFeatures": { + "description": "DeclaredFeatures represents the features related to feature gates that are declared by the node.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "features": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeFeatures", + "description": "Features describes the set of features implemented by the CRI implementation." + }, + "images": { + "description": "List of container images on this node", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "nodeInfo": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", + "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info" + }, + "phase": { + "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", + "type": "string" + }, + "runtimeHandlers": { + "description": "The available runtime handlers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeRuntimeHandler" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "volumesAttached": { + "description": "List of volumes that are attached to the node.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "volumesInUse": { + "description": "List of attachable volumes in use (mounted) by the node.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeSwapStatus": { + "description": "NodeSwapStatus represents swap memory information.", + "properties": { + "capacity": { + "description": "Total amount of swap memory in bytes.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeSystemInfo": { + "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", + "properties": { + "architecture": { + "description": "The Architecture reported by the node", + "type": "string" + }, + "bootID": { + "description": "Boot ID reported by the node.", + "type": "string" + }, + "containerRuntimeVersion": { + "description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).", + "type": "string" + }, + "kernelVersion": { + "description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).", + "type": "string" + }, + "kubeProxyVersion": { + "description": "Deprecated: KubeProxy Version reported by the node.", + "type": "string" + }, + "kubeletVersion": { + "description": "Kubelet Version reported by the node.", + "type": "string" + }, + "machineID": { + "description": "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html", + "type": "string" + }, + "operatingSystem": { + "description": "The Operating System reported by the node", + "type": "string" + }, + "osImage": { + "description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).", + "type": "string" + }, + "swap": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSwapStatus", + "description": "Swap Info reported by the node." + }, + "systemUUID": { + "description": "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid", + "type": "string" + } + }, + "required": [ + "machineID", + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "kubeProxyVersion", + "operatingSystem", + "architecture" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ObjectFieldSelector": { + "description": "ObjectFieldSelector selects an APIVersioned field of an object.", + "properties": { + "apiVersion": { + "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", + "type": "string" + }, + "fieldPath": { + "description": "Path of the field to select in the specified API version.", + "type": "string" + } + }, + "required": [ + "fieldPath" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.ObjectReference": { + "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "fieldPath": { + "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", + "type": "string" + }, + "kind": { + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "type": "string" + }, + "resourceVersion": { + "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "uid": { + "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.PersistentVolume": { + "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", + "description": "spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", + "description": "status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaim": { + "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", + "description": "spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", + "description": "status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { + "description": "PersistentVolumeClaimCondition contains details about state of pvc", + "properties": { + "lastProbeTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastProbeTime is the time we probed the condition." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the time the condition transitioned from one status to another." + }, + "message": { + "description": "message is the human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"Resizing\" that means the underlying persistent volume is being resized.", + "type": "string" + }, + "status": { + "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required", + "type": "string" + }, + "type": { + "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeClaimList": { + "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeClaimList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaimSpec": { + "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", + "properties": { + "accessModes": { + "description": "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "dataSource": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "description": "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." + }, + "dataSourceRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedObjectReference", + "description": "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\n allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n preserves all values, and generates an error if a disallowed value is\n specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeResourceRequirements", + "description": "resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is a label query over volumes to consider for binding." + }, + "storageClassName": { + "description": "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", + "type": "string" + }, + "volumeAttributesClassName": { + "description": "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/", + "type": "string" + }, + "volumeMode": { + "description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", + "type": "string" + }, + "volumeName": { + "description": "volumeName is the binding reference to the PersistentVolume backing this claim.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { + "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", + "properties": { + "accessModes": { + "description": "accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "allocatedResourceStatuses": { + "additionalProperties": { + "type": "string" + }, + "description": "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.", + "type": "object", + "x-kubernetes-map-type": "granular" + }, + "allocatedResources": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.", + "type": "object" + }, + "capacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "capacity represents the actual resources of the underlying volume.", + "type": "object" + }, + "conditions": { + "description": "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentVolumeAttributesClassName": { + "description": "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim", + "type": "string" + }, + "modifyVolumeStatus": { + "$ref": "#/definitions/io.k8s.api.core.v1.ModifyVolumeStatus", + "description": "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted." + }, + "phase": { + "description": "phase represents the current phase of PersistentVolumeClaim.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { + "description": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", + "description": "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." + } + }, + "required": [ + "spec" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { + "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + "properties": { + "claimName": { + "description": "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "type": "string" + }, + "readOnly": { + "description": "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + "type": "boolean" + } + }, + "required": [ + "claimName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeList": { + "description": "PersistentVolumeList is a list of PersistentVolume items.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeSpec": { + "description": "PersistentVolumeSpec is the specification of a persistent volume.", + "properties": { + "accessModes": { + "description": "accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "awsElasticBlockStore": { + "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", + "description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + }, + "azureDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", + "description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver." + }, + "azureFile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", + "description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver." + }, + "capacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", + "type": "object" + }, + "cephfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", + "description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported." + }, + "cinder": { + "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", + "description": "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + }, + "claimRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding", + "x-kubernetes-map-type": "granular" + }, + "csi": { + "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", + "description": "csi represents storage that is handled by an external CSI driver." + }, + "fc": { + "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", + "description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + }, + "flexVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", + "description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead." + }, + "flocker": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", + "description": "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported." + }, + "gcePersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", + "description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + }, + "glusterfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", + "description": "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + }, + "hostPath": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", + "description": "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + }, + "iscsi": { + "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", + "description": "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin." + }, + "local": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", + "description": "local represents directly-attached storage with node affinity" + }, + "mountOptions": { + "description": "mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "nfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", + "description": "nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + }, + "nodeAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", + "description": "nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled." + }, + "persistentVolumeReclaimPolicy": { + "description": "persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", + "type": "string" + }, + "photonPersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", + "description": "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported." + }, + "portworxVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", + "description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver." + }, + "quobyte": { + "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", + "description": "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported." + }, + "rbd": { + "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", + "description": "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md" + }, + "scaleIO": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", + "description": "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported." + }, + "storageClassName": { + "description": "storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", + "type": "string" + }, + "storageos": { + "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", + "description": "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md" + }, + "volumeAttributesClassName": { + "description": "Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process.", + "type": "string" + }, + "volumeMode": { + "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", + "type": "string" + }, + "vsphereVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", + "description": "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeStatus": { + "description": "PersistentVolumeStatus is the current status of a persistent volume.", + "properties": { + "lastPhaseTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions." + }, + "message": { + "description": "message is a human-readable message indicating details about why the volume is in this state.", + "type": "string" + }, + "phase": { + "description": "phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", + "type": "string" + }, + "reason": { + "description": "reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { + "description": "Represents a Photon Controller persistent disk resource.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "pdID": { + "description": "pdID is the ID that identifies Photon Controller persistent disk", + "type": "string" + } + }, + "required": [ + "pdID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Pod": { + "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", + "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", + "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Pod", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodAffinity": { + "description": "Pod affinity is a group of inter pod affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodAffinityTerm": { + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running", + "properties": { + "labelSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods." + }, + "matchLabelKeys": { + "description": "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "mismatchLabelKeys": { + "description": "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces." + }, + "namespaces": { + "description": "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "topologyKey": { + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", + "type": "string" + } + }, + "required": [ + "topologyKey" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodAntiAffinity": { + "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting \"weight\" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodCertificateProjection": { + "description": "PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem.", + "properties": { + "certificateChainPath": { + "description": "Write the certificate chain at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.", + "type": "string" + }, + "credentialBundlePath": { + "description": "Write the credential bundle at this path in the projected volume.\n\nThe credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key.\n\nThe remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates).\n\nUsing credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key.", + "type": "string" + }, + "keyPath": { + "description": "Write the key at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.", + "type": "string" + }, + "keyType": { + "description": "The type of keypair Kubelet will generate for the pod.\n\nValid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".", + "type": "string" + }, + "maxExpirationSeconds": { + "description": "maxExpirationSeconds is the maximum lifetime permitted for the certificate.\n\nKubelet copies this value verbatim into the PodCertificateRequests it generates for this projection.\n\nIf omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days).\n\nThe signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.", + "format": "int32", + "type": "integer" + }, + "signerName": { + "description": "Kubelet's generated CSRs will be addressed to this signer.", + "type": "string" + }, + "userAnnotations": { + "additionalProperties": { + "type": "string" + }, + "description": "userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way.\n\nThese values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates.\n\nEntries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field.\n\nSigners should document the keys and values they support. Signers should deny requests that contain keys they do not recognize.", + "type": "object" + } + }, + "required": [ + "signerName", + "keyType" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodCondition": { + "description": "PodCondition contains details for the current condition of this pod.", + "properties": { + "lastProbeTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time we probed the condition." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "Human-readable message indicating details about last transition.", + "type": "string" + }, + "observedGeneration": { + "description": "If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field.", + "format": "int64", + "type": "integer" + }, + "reason": { + "description": "Unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "string" + }, + "type": { + "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodDNSConfig": { + "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", + "properties": { + "nameservers": { + "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "options": { + "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "searches": { + "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodDNSConfigOption": { + "description": "PodDNSConfigOption defines DNS resolver options of a pod.", + "properties": { + "name": { + "description": "Name is this DNS resolver option's name. Required.", + "type": "string" + }, + "value": { + "description": "Value is this DNS resolver option's value.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodExtendedResourceClaimStatus": { + "description": "PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler.", + "properties": { + "requestMappings": { + "description": "RequestMappings identifies the mapping of to device request in the generated ResourceClaim.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerExtendedResourceRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceClaimName": { + "description": "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.", + "type": "string" + } + }, + "required": [ + "requestMappings", + "resourceClaimName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodIP": { + "description": "PodIP represents a single IP address allocated to the pod.", + "properties": { + "ip": { + "description": "IP is the IP address assigned to the pod", + "type": "string" + } + }, + "required": [ + "ip" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodList": { + "description": "PodList is a list of Pods.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodOS": { + "description": "PodOS defines the OS parameters of a pod.", + "properties": { + "name": { + "description": "Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodReadinessGate": { + "description": "PodReadinessGate contains the reference to a pod condition", + "properties": { + "conditionType": { + "description": "ConditionType refers to a condition in the pod's condition list with matching type.", + "type": "string" + } + }, + "required": [ + "conditionType" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodResourceClaim": { + "description": "PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod.\n\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.", + "properties": { + "name": { + "description": "Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.", + "type": "string" + }, + "resourceClaimName": { + "description": "ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.", + "type": "string" + }, + "resourceClaimTemplateName": { + "description": "ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\n\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\n\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodResourceClaimStatus": { + "description": "PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.", + "properties": { + "name": { + "description": "Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.", + "type": "string" + }, + "resourceClaimName": { + "description": "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodSchedulingGate": { + "description": "PodSchedulingGate is associated to a Pod to guard its scheduling.", + "properties": { + "name": { + "description": "Name of the scheduling gate. Each scheduling gate must have a unique name field.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodSecurityContext": { + "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", + "properties": { + "appArmorProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AppArmorProfile", + "description": "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows." + }, + "fsGroup": { + "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + "format": "int64", + "type": "integer" + }, + "fsGroupChangePolicy": { + "description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.", + "type": "string" + }, + "runAsGroup": { + "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + "format": "int64", + "type": "integer" + }, + "runAsNonRoot": { + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "boolean" + }, + "runAsUser": { + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + "format": "int64", + "type": "integer" + }, + "seLinuxChangePolicy": { + "description": "seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are \"MountOption\" and \"Recursive\".\n\n\"Recursive\" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\n\n\"MountOption\" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. \"MountOption\" value is allowed only when SELinuxMount feature gate is enabled.\n\nIf not specified and SELinuxMount feature gate is enabled, \"MountOption\" is used. If not specified and SELinuxMount feature gate is disabled, \"MountOption\" is used for ReadWriteOncePod volumes and \"Recursive\" for all other volumes.\n\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\n\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows.", + "type": "string" + }, + "seLinuxOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", + "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows." + }, + "seccompProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", + "description": "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows." + }, + "supplementalGroups": { + "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "supplementalGroupsPolicy": { + "description": "Defines how supplemental groups of the first container processes are calculated. Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + "type": "string" + }, + "sysctls": { + "description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "windowsOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", + "description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodSpec": { + "description": "PodSpec is a description of a pod.", + "properties": { + "activeDeadlineSeconds": { + "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", + "format": "int64", + "type": "integer" + }, + "affinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", + "description": "If specified, the pod's scheduling constraints" + }, + "automountServiceAccountToken": { + "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", + "type": "boolean" + }, + "containers": { + "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Container" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "dnsConfig": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", + "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." + }, + "dnsPolicy": { + "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", + "type": "string" + }, + "enableServiceLinks": { + "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", + "type": "boolean" + }, + "ephemeralContainers": { + "description": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "hostAliases": { + "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "ip" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "hostIPC": { + "description": "Use the host's ipc namespace. Optional: Default to false.", + "type": "boolean" + }, + "hostNetwork": { + "description": "Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.", + "type": "boolean" + }, + "hostPID": { + "description": "Use the host's pid namespace. Optional: Default to false.", + "type": "boolean" + }, + "hostUsers": { + "description": "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.", + "type": "boolean" + }, + "hostname": { + "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", + "type": "string" + }, + "hostnameOverride": { + "description": "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.", + "type": "string" + }, + "imagePullSecrets": { + "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "initContainers": { + "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Container" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "nodeName": { + "description": "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename", + "type": "string" + }, + "nodeSelector": { + "additionalProperties": { + "type": "string" + }, + "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "os": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodOS", + "description": "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup" + }, + "overhead": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md", + "type": "object" + }, + "preemptionPolicy": { + "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.", + "type": "string" + }, + "priority": { + "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", + "format": "int32", + "type": "integer" + }, + "priorityClassName": { + "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", + "type": "string" + }, + "readinessGates": { + "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceClaims": { + "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is a stable field but requires that the DynamicResourceAllocation feature gate is enabled.\n\nThis field is immutable.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\", \"memory\" and \"hugepages-\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate." + }, + "restartPolicy": { + "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", + "type": "string" + }, + "runtimeClassName": { + "description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class", + "type": "string" + }, + "schedulerName": { + "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", + "type": "string" + }, + "schedulingGates": { + "description": "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodSchedulingGate" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "securityContext": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", + "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." + }, + "serviceAccount": { + "description": "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", + "type": "string" + }, + "serviceAccountName": { + "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", + "type": "string" + }, + "setHostnameAsFQDN": { + "description": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.", + "type": "boolean" + }, + "shareProcessNamespace": { + "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", + "type": "boolean" + }, + "subdomain": { + "description": "If specified, the fully qualified Pod hostname will be \"...svc.\". If not specified, the pod will not have a domainname at all.", + "type": "string" + }, + "terminationGracePeriodSeconds": { + "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.", + "format": "int64", + "type": "integer" + }, + "tolerations": { + "description": "If specified, the pod's tolerations.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "topologySpreadConstraints": { + "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "topologyKey", + "whenUnsatisfiable" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge" + }, + "volumes": { + "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Volume" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" + }, + "workloadRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.WorkloadReference", + "description": "WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies." + } + }, + "required": [ + "containers" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodStatus": { + "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", + "properties": { + "allocatedResources": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod.", + "type": "object" + }, + "conditions": { + "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "containerStatuses": { + "description": "Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ephemeralContainerStatuses": { + "description": "Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "extendedResourceClaimStatus": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodExtendedResourceClaimStatus", + "description": "Status of extended resource claim backed by DRA." + }, + "hostIP": { + "description": "hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod", + "type": "string" + }, + "hostIPs": { + "description": "hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostIP" + }, + "type": "array", + "x-kubernetes-list-type": "atomic", + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "initContainerStatuses": { + "description": "Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "message": { + "description": "A human readable message indicating details about why the pod is in this condition.", + "type": "string" + }, + "nominatedNodeName": { + "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", + "type": "string" + }, + "observedGeneration": { + "description": "If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field.", + "format": "int64", + "type": "integer" + }, + "phase": { + "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", + "type": "string" + }, + "podIP": { + "description": "podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", + "type": "string" + }, + "podIPs": { + "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "ip" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "qosClass": { + "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes", + "type": "string" + }, + "reason": { + "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", + "type": "string" + }, + "resize": { + "description": "Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\" Deprecated: Resize status is moved to two pod conditions PodResizePending and PodResizeInProgress. PodResizePending will track states where the spec has been resized, but the Kubelet has not yet allocated the resources. PodResizeInProgress will track in-progress resizes, and should be present whenever allocated resources != acknowledged resources.", + "type": "string" + }, + "resourceClaimStatuses": { + "description": "Status of resource claims.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaimStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources" + }, + "startTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodTemplate": { + "description": "PodTemplate describes a template for creating copies of a predefined pod.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodTemplateList": { + "description": "PodTemplateList is a list of PodTemplates.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of pod templates", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodTemplateList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodTemplateSpec": { + "description": "PodTemplateSpec describes the data a pod should have when created from a template", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", + "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PortStatus": { + "description": "PortStatus represents the error condition of a service port", + "properties": { + "error": { + "description": "Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\n CamelCase names\n- cloud provider specific error values must have names that comply with the\n format foo.example.com/CamelCase.", + "type": "string" + }, + "port": { + "description": "Port is the port number of the service port of which status is recorded here", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"", + "type": "string" + } + }, + "required": [ + "port", + "protocol" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PortworxVolumeSource": { + "description": "PortworxVolumeSource represents a Portworx volume resource.", + "properties": { + "fsType": { + "description": "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "volumeID": { + "description": "volumeID uniquely identifies a Portworx volume", + "type": "string" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PreferredSchedulingTerm": { + "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", + "properties": { + "preference": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", + "description": "A node selector term, associated with the corresponding weight." + }, + "weight": { + "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "weight", + "preference" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Probe": { + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "properties": { + "exec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", + "description": "Exec specifies a command to execute in the container." + }, + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "format": "int32", + "type": "integer" + }, + "grpc": { + "$ref": "#/definitions/io.k8s.api.core.v1.GRPCAction", + "description": "GRPC specifies a GRPC HealthCheckRequest." + }, + "httpGet": { + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", + "description": "HTTPGet specifies an HTTP GET request to perform." + }, + "initialDelaySeconds": { + "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "format": "int32", + "type": "integer" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "format": "int32", + "type": "integer" + }, + "successThreshold": { + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", + "format": "int32", + "type": "integer" + }, + "tcpSocket": { + "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", + "description": "TCPSocket specifies a connection to a TCP port." + }, + "terminationGracePeriodSeconds": { + "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", + "format": "int64", + "type": "integer" + }, + "timeoutSeconds": { + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ProjectedVolumeSource": { + "description": "Represents a projected volume source", + "properties": { + "defaultMode": { + "description": "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "sources": { + "description": "sources is the list of volume projections. Each entry in this list handles one source.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.QuobyteVolumeSource": { + "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", + "properties": { + "group": { + "description": "group to map volume access to Default is no group", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", + "type": "boolean" + }, + "registry": { + "description": "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", + "type": "string" + }, + "tenant": { + "description": "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", + "type": "string" + }, + "user": { + "description": "user to map volume access to Defaults to serivceaccount user", + "type": "string" + }, + "volume": { + "description": "volume is a string that references an already created Quobyte volume by name.", + "type": "string" + } + }, + "required": [ + "registry", + "volume" + ], + "type": "object" + }, + "io.k8s.api.core.v1.RBDPersistentVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "type": "string" + }, + "image": { + "description": "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "keyring": { + "description": "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "monitors": { + "description": "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "pool": { + "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + }, + "user": { + "description": "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + }, + "required": [ + "monitors", + "image" + ], + "type": "object" + }, + "io.k8s.api.core.v1.RBDVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "type": "string" + }, + "image": { + "description": "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "keyring": { + "description": "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "monitors": { + "description": "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "pool": { + "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + }, + "user": { + "description": "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + }, + "required": [ + "monitors", + "image" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ReplicationController": { + "description": "ReplicationController represents the configuration of a replication controller.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", + "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", + "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ReplicationControllerCondition": { + "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of replication controller condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ReplicationControllerList": { + "description": "ReplicationControllerList is a collection of replication controllers.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ReplicationControllerList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ReplicationControllerSpec": { + "description": "ReplicationControllerSpec is the specification of a replication controller.", + "properties": { + "minReadySeconds": { + "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", + "format": "int32", + "type": "integer" + }, + "selector": { + "additionalProperties": { + "type": "string" + }, + "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. The only allowed template.spec.restartPolicy value is \"Always\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ReplicationControllerStatus": { + "description": "ReplicationControllerStatus represents the current status of a replication controller.", + "properties": { + "availableReplicas": { + "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a replication controller's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "fullyLabeledReplicas": { + "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "The number of ready replicas for this replication controller.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ResourceClaim": { + "description": "ResourceClaim references one entry in PodSpec.ResourceClaims.", + "properties": { + "name": { + "description": "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + "type": "string" + }, + "request": { + "description": "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ResourceFieldSelector": { + "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", + "properties": { + "containerName": { + "description": "Container name: required for volumes, optional for env vars", + "type": "string" + }, + "divisor": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Specifies the output format of the exposed resources, defaults to \"1\"" + }, + "resource": { + "description": "Required: resource to select", + "type": "string" + } + }, + "required": [ + "resource" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.ResourceHealth": { + "description": "ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680.", + "properties": { + "health": { + "description": "Health of the resource. can be one of:\n - Healthy: operates as normal\n - Unhealthy: reported unhealthy. We consider this a temporary health issue\n since we do not have a mechanism today to distinguish\n temporary and permanent issues.\n - Unknown: The status cannot be determined.\n For example, Device Plugin got unregistered and hasn't been re-registered since.\n\nIn future we may want to introduce the PermanentlyUnhealthy Status.", + "type": "string" + }, + "resourceID": { + "description": "ResourceID is the unique identifier of the resource. See the ResourceID type for more information.", + "type": "string" + } + }, + "required": [ + "resourceID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ResourceQuota": { + "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", + "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", + "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ResourceQuotaList": { + "description": "ResourceQuotaList is a list of ResourceQuota items.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ResourceQuotaList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ResourceQuotaSpec": { + "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", + "properties": { + "hard": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", + "type": "object" + }, + "scopeSelector": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", + "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." + }, + "scopes": { + "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ResourceQuotaStatus": { + "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", + "properties": { + "hard": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", + "type": "object" + }, + "used": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Used is the current observed total usage of the resource in the namespace.", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "properties": { + "claims": { + "description": "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\n\nThis field depends on the DynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceClaim" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map" + }, + "limits": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object" + }, + "requests": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ResourceStatus": { + "description": "ResourceStatus represents the status of a single resource allocated to a Pod.", + "properties": { + "name": { + "description": "Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be \"claim:/\". When this status is reported about a container, the \"claim_name\" and \"request\" must match one of the claims of this container.", + "type": "string" + }, + "resources": { + "description": "List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceHealth" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "resourceID" + ], + "x-kubernetes-list-type": "map" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.SELinuxOptions": { + "description": "SELinuxOptions are the labels to be applied to the container", + "properties": { + "level": { + "description": "Level is SELinux level label that applies to the container.", + "type": "string" + }, + "role": { + "description": "Role is a SELinux role label that applies to the container.", + "type": "string" + }, + "type": { + "description": "Type is a SELinux type label that applies to the container.", + "type": "string" + }, + "user": { + "description": "User is a SELinux user label that applies to the container.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { + "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"", + "type": "string" + }, + "gateway": { + "description": "gateway is the host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + }, + "sslEnabled": { + "description": "sslEnabled is the flag to enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", + "type": "string" + }, + "storagePool": { + "description": "storagePool is the ScaleIO Storage Pool associated with the protection domain.", + "type": "string" + }, + "system": { + "description": "system is the name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + }, + "required": [ + "gateway", + "system", + "secretRef" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ScaleIOVolumeSource": { + "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".", + "type": "string" + }, + "gateway": { + "description": "gateway is the host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", + "type": "string" + }, + "readOnly": { + "description": "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + }, + "sslEnabled": { + "description": "sslEnabled Flag enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", + "type": "string" + }, + "storagePool": { + "description": "storagePool is the ScaleIO Storage Pool associated with the protection domain.", + "type": "string" + }, + "system": { + "description": "system is the name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + }, + "required": [ + "gateway", + "system", + "secretRef" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ScopeSelector": { + "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", + "properties": { + "matchExpressions": { + "description": "A list of scope selector requirements by scope of the resources.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { + "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", + "properties": { + "operator": { + "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", + "type": "string" + }, + "scopeName": { + "description": "The name of the scope that the selector applies to.", + "type": "string" + }, + "values": { + "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "scopeName", + "operator" + ], + "type": "object" + }, + "io.k8s.api.core.v1.SeccompProfile": { + "description": "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.", + "properties": { + "localhostProfile": { + "description": "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \"Localhost\". Must NOT be set for any other type.", + "type": "string" + }, + "type": { + "description": "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "localhostProfile": "LocalhostProfile" + } + } + ] + }, + "io.k8s.api.core.v1.Secret": { + "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "data": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", + "type": "object" + }, + "immutable": { + "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.", + "type": "boolean" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "stringData": { + "additionalProperties": { + "type": "string" + }, + "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.", + "type": "object" + }, + "type": { + "description": "Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Secret", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.SecretEnvSource": { + "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", + "properties": { + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the Secret must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.SecretKeySelector": { + "description": "SecretKeySelector selects a key of a Secret.", + "properties": { + "key": { + "description": "The key of the secret to select from. Must be a valid secret key.", + "type": "string" + }, + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the Secret or its key must be defined", + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.SecretList": { + "description": "SecretList is a list of Secret.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "SecretList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.SecretProjection": { + "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", + "properties": { + "items": { + "description": "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "optional field specify whether the Secret or its key must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.SecretReference": { + "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", + "properties": { + "name": { + "description": "name is unique within a namespace to reference a secret resource.", + "type": "string" + }, + "namespace": { + "description": "namespace defines the space within which the secret name must be unique.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.SecretVolumeSource": { + "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "items": { + "description": "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "optional": { + "description": "optional field specify whether the Secret or its keys must be defined", + "type": "boolean" + }, + "secretName": { + "description": "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.SecurityContext": { + "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", + "properties": { + "allowPrivilegeEscalation": { + "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", + "type": "boolean" + }, + "appArmorProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AppArmorProfile", + "description": "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows." + }, + "capabilities": { + "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", + "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows." + }, + "privileged": { + "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", + "type": "boolean" + }, + "procMount": { + "description": "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", + "type": "string" + }, + "readOnlyRootFilesystem": { + "description": "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", + "type": "boolean" + }, + "runAsGroup": { + "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + "format": "int64", + "type": "integer" + }, + "runAsNonRoot": { + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "boolean" + }, + "runAsUser": { + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + "format": "int64", + "type": "integer" + }, + "seLinuxOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", + "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows." + }, + "seccompProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", + "description": "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows." + }, + "windowsOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", + "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Service": { + "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", + "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", + "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Service", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceAccount": { + "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "automountServiceAccountToken": { + "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", + "type": "boolean" + }, + "imagePullSecrets": { + "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "secrets": { + "description": "Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\". The \"kubernetes.io/enforce-mountable-secrets\" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceAccountList": { + "description": "ServiceAccountList is a list of ServiceAccount objects", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceAccountList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceAccountTokenProjection": { + "description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).", + "properties": { + "audience": { + "description": "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", + "type": "string" + }, + "expirationSeconds": { + "description": "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", + "format": "int64", + "type": "integer" + }, + "path": { + "description": "path is the path relative to the mount point of the file to project the token into.", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ServiceList": { + "description": "ServiceList holds a list of services.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of services", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServicePort": { + "description": "ServicePort contains information on service's port.", + "properties": { + "appProtocol": { + "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.", + "type": "string" + }, + "name": { + "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", + "type": "string" + }, + "nodePort": { + "description": "The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", + "format": "int32", + "type": "integer" + }, + "port": { + "description": "The port that will be exposed by this service.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", + "type": "string" + }, + "targetPort": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ServiceSpec": { + "description": "ServiceSpec describes the attributes that a user creates on a service.", + "properties": { + "allocateLoadBalancerNodePorts": { + "description": "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.", + "type": "boolean" + }, + "clusterIP": { + "description": "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "type": "string" + }, + "clusterIPs": { + "description": "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "externalIPs": { + "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "externalName": { + "description": "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".", + "type": "string" + }, + "externalTrafficPolicy": { + "description": "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.", + "type": "string" + }, + "healthCheckNodePort": { + "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.", + "format": "int32", + "type": "integer" + }, + "internalTrafficPolicy": { + "description": "InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).", + "type": "string" + }, + "ipFamilies": { + "description": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ipFamilyPolicy": { + "description": "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", + "type": "string" + }, + "loadBalancerClass": { + "description": "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.", + "type": "string" + }, + "loadBalancerIP": { + "description": "Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.", + "type": "string" + }, + "loadBalancerSourceRanges": { + "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ports": { + "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "port", + "protocol" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "port", + "x-kubernetes-patch-strategy": "merge" + }, + "publishNotReadyAddresses": { + "description": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", + "type": "boolean" + }, + "selector": { + "additionalProperties": { + "type": "string" + }, + "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "sessionAffinity": { + "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "type": "string" + }, + "sessionAffinityConfig": { + "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", + "description": "sessionAffinityConfig contains the configurations of session affinity." + }, + "trafficDistribution": { + "description": "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are in the same zone.", + "type": "string" + }, + "type": { + "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ServiceStatus": { + "description": "ServiceStatus represents the current status of a service.", + "properties": { + "conditions": { + "description": "Current service state", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "loadBalancer": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", + "description": "LoadBalancer contains the current status of the load-balancer, if one is present." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.SessionAffinityConfig": { + "description": "SessionAffinityConfig represents the configurations of session affinity.", + "properties": { + "clientIP": { + "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", + "description": "clientIP contains the configurations of Client IP based session affinity." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.SleepAction": { + "description": "SleepAction describes a \"sleep\" action.", + "properties": { + "seconds": { + "description": "Seconds is the number of seconds to sleep.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "seconds" + ], + "type": "object" + }, + "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + }, + "volumeName": { + "description": "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + "type": "string" + }, + "volumeNamespace": { + "description": "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.StorageOSVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + }, + "volumeName": { + "description": "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + "type": "string" + }, + "volumeNamespace": { + "description": "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Sysctl": { + "description": "Sysctl defines a kernel parameter to be set", + "properties": { + "name": { + "description": "Name of a property to set", + "type": "string" + }, + "value": { + "description": "Value of a property to set", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "io.k8s.api.core.v1.TCPSocketAction": { + "description": "TCPSocketAction describes an action based on opening a socket", + "properties": { + "host": { + "description": "Optional: Host name to connect to, defaults to the pod IP.", + "type": "string" + }, + "port": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Taint": { + "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", + "properties": { + "effect": { + "description": "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.", + "type": "string" + }, + "key": { + "description": "Required. The taint key to be applied to a node.", + "type": "string" + }, + "timeAdded": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "TimeAdded represents the time at which the taint was added." + }, + "value": { + "description": "The taint value corresponding to the taint key.", + "type": "string" + } + }, + "required": [ + "key", + "effect" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Toleration": { + "description": "The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator .", + "properties": { + "effect": { + "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + "type": "string" + }, + "key": { + "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + "type": "string" + }, + "operator": { + "description": "Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).", + "type": "string" + }, + "tolerationSeconds": { + "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + "format": "int64", + "type": "integer" + }, + "value": { + "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { + "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", + "properties": { + "key": { + "description": "The label key that the selector applies to.", + "type": "string" + }, + "values": { + "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "key", + "values" + ], + "type": "object" + }, + "io.k8s.api.core.v1.TopologySelectorTerm": { + "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", + "properties": { + "matchLabelExpressions": { + "description": "A list of topology selector requirements by labels.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.TopologySpreadConstraint": { + "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", + "properties": { + "labelSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." + }, + "matchLabelKeys": { + "description": "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.\n\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "maxSkew": { + "description": "MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", + "format": "int32", + "type": "integer" + }, + "minDomains": { + "description": "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", + "format": "int32", + "type": "integer" + }, + "nodeAffinityPolicy": { + "description": "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy.", + "type": "string" + }, + "nodeTaintsPolicy": { + "description": "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy.", + "type": "string" + }, + "topologyKey": { + "description": "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field.", + "type": "string" + }, + "whenUnsatisfiable": { + "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", + "type": "string" + } + }, + "required": [ + "maxSkew", + "topologyKey", + "whenUnsatisfiable" + ], + "type": "object" + }, + "io.k8s.api.core.v1.TypedLocalObjectReference": { + "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", + "properties": { + "apiGroup": { + "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + "type": "string" + }, + "kind": { + "description": "Kind is the type of resource being referenced", + "type": "string" + }, + "name": { + "description": "Name is the name of resource being referenced", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.core.v1.TypedObjectReference": { + "description": "TypedObjectReference contains enough information to let you locate the typed referenced object", + "properties": { + "apiGroup": { + "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + "type": "string" + }, + "kind": { + "description": "Kind is the type of resource being referenced", + "type": "string" + }, + "name": { + "description": "Name is the name of resource being referenced", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Volume": { + "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", + "properties": { + "awsElasticBlockStore": { + "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", + "description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + }, + "azureDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", + "description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver." + }, + "azureFile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", + "description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver." + }, + "cephfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", + "description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported." + }, + "cinder": { + "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", + "description": "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + }, + "configMap": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", + "description": "configMap represents a configMap that should populate this volume" + }, + "csi": { + "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", + "description": "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers." + }, + "downwardAPI": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", + "description": "downwardAPI represents downward API about the pod that should populate this volume" + }, + "emptyDir": { + "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", + "description": "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + }, + "ephemeral": { + "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource", + "description": "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time." + }, + "fc": { + "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", + "description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + }, + "flexVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", + "description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead." + }, + "flocker": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", + "description": "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported." + }, + "gcePersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", + "description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + }, + "gitRepo": { + "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", + "description": "gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + }, + "glusterfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", + "description": "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported." + }, + "hostPath": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", + "description": "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + }, + "image": { + "$ref": "#/definitions/io.k8s.api.core.v1.ImageVolumeSource", + "description": "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type." + }, + "iscsi": { + "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", + "description": "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi" + }, + "name": { + "description": "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "nfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", + "description": "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + }, + "persistentVolumeClaim": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", + "description": "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "photonPersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", + "description": "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported." + }, + "portworxVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", + "description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver." + }, + "projected": { + "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", + "description": "projected items for all in one resources secrets, configmaps, and downward API" + }, + "quobyte": { + "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", + "description": "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported." + }, + "rbd": { + "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", + "description": "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported." + }, + "scaleIO": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", + "description": "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported." + }, + "secret": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", + "description": "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + }, + "storageos": { + "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", + "description": "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported." + }, + "vsphereVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", + "description": "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.VolumeDevice": { + "description": "volumeDevice describes a mapping of a raw block device within a container.", + "properties": { + "devicePath": { + "description": "devicePath is the path inside of the container that the device will be mapped to.", + "type": "string" + }, + "name": { + "description": "name must match the name of a persistentVolumeClaim in the pod", + "type": "string" + } + }, + "required": [ + "name", + "devicePath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.VolumeMount": { + "description": "VolumeMount describes a mounting of a Volume within a container.", + "properties": { + "mountPath": { + "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", + "type": "string" + }, + "mountPropagation": { + "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + "type": "string" + }, + "name": { + "description": "This must match the Name of a Volume.", + "type": "string" + }, + "readOnly": { + "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", + "type": "boolean" + }, + "recursiveReadOnly": { + "description": "RecursiveReadOnly specifies whether read-only mounts should be handled recursively.\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).\n\nIf this field is not specified, it is treated as an equivalent of Disabled.", + "type": "string" + }, + "subPath": { + "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", + "type": "string" + }, + "subPathExpr": { + "description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", + "type": "string" + } + }, + "required": [ + "name", + "mountPath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.VolumeMountStatus": { + "description": "VolumeMountStatus shows status of volume mounts.", + "properties": { + "mountPath": { + "description": "MountPath corresponds to the original VolumeMount.", + "type": "string" + }, + "name": { + "description": "Name corresponds to the name of the original VolumeMount.", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly corresponds to the original VolumeMount.", + "type": "boolean" + }, + "recursiveReadOnly": { + "description": "RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.", + "type": "string" + }, + "volumeStatus": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeStatus", + "description": "volumeStatus represents volume-type-specific status about the mounted volume." + } + }, + "required": [ + "name", + "mountPath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.VolumeNodeAffinity": { + "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", + "properties": { + "required": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", + "description": "required specifies hard node constraints that must be met." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.VolumeProjection": { + "description": "Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.", + "properties": { + "clusterTrustBundle": { + "$ref": "#/definitions/io.k8s.api.core.v1.ClusterTrustBundleProjection", + "description": "ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file.\n\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\n\nClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.\n\nKubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time." + }, + "configMap": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", + "description": "configMap information about the configMap data to project" + }, + "downwardAPI": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", + "description": "downwardAPI information about the downwardAPI data to project" + }, + "podCertificate": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodCertificateProjection", + "description": "Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server.\n\nKubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec.\n\nKubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp.\n\nKubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields.\n\nThe credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order).\n\nPrefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent.\n\nThe named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues." + }, + "secret": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", + "description": "secret information about the secret data to project" + }, + "serviceAccountToken": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", + "description": "serviceAccountToken is information about the serviceAccountToken data to project" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.VolumeResourceRequirements": { + "description": "VolumeResourceRequirements describes the storage resource requirements for a volume.", + "properties": { + "limits": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object" + }, + "requests": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.VolumeStatus": { + "description": "VolumeStatus represents the status of a mounted volume. At most one of its members must be specified.", + "properties": { + "image": { + "$ref": "#/definitions/io.k8s.api.core.v1.ImageVolumeStatus", + "description": "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { + "description": "Represents a vSphere volume resource.", + "properties": { + "fsType": { + "description": "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "storagePolicyID": { + "description": "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", + "type": "string" + }, + "storagePolicyName": { + "description": "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", + "type": "string" + }, + "volumePath": { + "description": "volumePath is the path that identifies vSphere volume vmdk", + "type": "string" + } + }, + "required": [ + "volumePath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.WeightedPodAffinityTerm": { + "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", + "properties": { + "podAffinityTerm": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", + "description": "Required. A pod affinity term, associated with the corresponding weight." + }, + "weight": { + "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "weight", + "podAffinityTerm" + ], + "type": "object" + }, + "io.k8s.api.core.v1.WindowsSecurityContextOptions": { + "description": "WindowsSecurityContextOptions contain Windows-specific options and credentials.", + "properties": { + "gmsaCredentialSpec": { + "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + "type": "string" + }, + "gmsaCredentialSpecName": { + "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + "type": "string" + }, + "hostProcess": { + "description": "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + "type": "boolean" + }, + "runAsUserName": { + "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.WorkloadReference": { + "description": "WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics.", + "properties": { + "name": { + "description": "Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain.", + "type": "string" + }, + "podGroup": { + "description": "PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label.", + "type": "string" + }, + "podGroupReplicaKey": { + "description": "PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label.", + "type": "string" + } + }, + "required": [ + "name", + "podGroup" + ], + "type": "object" + }, + "io.k8s.api.discovery.v1.Endpoint": { + "description": "Endpoint represents a single logical \"backend\" implementing a service.", + "properties": { + "addresses": { + "description": "addresses of this endpoint. For EndpointSlices of addressType \"IPv4\" or \"IPv6\", the values are IP addresses in canonical form. The syntax and semantics of other addressType values are not defined. This must contain at least one address but no more than 100. EndpointSlices generated by the EndpointSlice controller will always have exactly 1 address. No semantics are defined for additional addresses beyond the first, and kube-proxy does not look at them.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "conditions": { + "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointConditions", + "description": "conditions contains information about the current status of the endpoint." + }, + "deprecatedTopology": { + "additionalProperties": { + "type": "string" + }, + "description": "deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24). While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead.", + "type": "object" + }, + "hints": { + "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointHints", + "description": "hints contains information associated with how an endpoint should be consumed." + }, + "hostname": { + "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.", + "type": "string" + }, + "nodeName": { + "description": "nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.", + "type": "string" + }, + "targetRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." + }, + "zone": { + "description": "zone is the name of the Zone this endpoint exists in.", + "type": "string" + } + }, + "required": [ + "addresses" + ], + "type": "object" + }, + "io.k8s.api.discovery.v1.EndpointConditions": { + "description": "EndpointConditions represents the current condition of an endpoint.", + "properties": { + "ready": { + "description": "ready indicates that this endpoint is ready to receive traffic, according to whatever system is managing the endpoint. A nil value should be interpreted as \"true\". In general, an endpoint should be marked ready if it is serving and not terminating, though this can be overridden in some cases, such as when the associated Service has set the publishNotReadyAddresses flag.", + "type": "boolean" + }, + "serving": { + "description": "serving indicates that this endpoint is able to receive traffic, according to whatever system is managing the endpoint. For endpoints backed by pods, the EndpointSlice controller will mark the endpoint as serving if the pod's Ready condition is True. A nil value should be interpreted as \"true\".", + "type": "boolean" + }, + "terminating": { + "description": "terminating indicates that this endpoint is terminating. A nil value should be interpreted as \"false\".", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.discovery.v1.EndpointHints": { + "description": "EndpointHints provides hints describing how an endpoint should be consumed.", + "properties": { + "forNodes": { + "description": "forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries.", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1.ForNode" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "forZones": { + "description": "forZones indicates the zone(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries.", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1.ForZone" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.discovery.v1.EndpointPort": { + "description": "EndpointPort represents a Port used by an EndpointSlice", + "properties": { + "appProtocol": { + "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.", + "type": "string" + }, + "name": { + "description": "name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", + "type": "string" + }, + "port": { + "description": "port represents the port number of the endpoint. If the EndpointSlice is derived from a Kubernetes service, this must be set to the service's target port. EndpointSlices used for other purposes may have a nil port.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.discovery.v1.EndpointSlice": { + "description": "EndpointSlice represents a set of service endpoints. Most EndpointSlices are created by the EndpointSlice controller to represent the Pods selected by Service objects. For a given service there may be multiple EndpointSlice objects which must be joined to produce the full set of endpoints; you can find all of the slices for a given service by listing EndpointSlices in the service's namespace whose `kubernetes.io/service-name` label contains the service's name.", + "properties": { + "addressType": { + "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. (Deprecated) The EndpointSlice controller only generates, and kube-proxy only processes, slices of addressType \"IPv4\" and \"IPv6\". No semantics are defined for the \"FQDN\" type.", + "type": "string" + }, + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "endpoints": { + "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1.Endpoint" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "ports": { + "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. Each slice may include a maximum of 100 ports. Services always have at least 1 port, so EndpointSlices generated by the EndpointSlice controller will likewise always have at least 1 port. EndpointSlices used for other purposes may have an empty ports list.", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointPort" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "addressType" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1" + } + ] + }, + "io.k8s.api.discovery.v1.EndpointSliceList": { + "description": "EndpointSliceList represents a list of endpoint slices", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of endpoint slices", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "discovery.k8s.io", + "kind": "EndpointSliceList", + "version": "v1" + } + ] + }, + "io.k8s.api.discovery.v1.ForNode": { + "description": "ForNode provides information about which nodes should consume this endpoint.", + "properties": { + "name": { + "description": "name represents the name of the node.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.discovery.v1.ForZone": { + "description": "ForZone provides information about which zones should consume this endpoint.", + "properties": { + "name": { + "description": "name represents the name of the zone.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.events.v1.Event": { + "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", + "properties": { + "action": { + "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field cannot be empty for new Events and it can have at most 128 characters.", + "type": "string" + }, + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "deprecatedCount": { + "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", + "format": "int32", + "type": "integer" + }, + "deprecatedFirstTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "deprecatedLastTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "deprecatedSource": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", + "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "eventTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "eventTime is the time when this Event was first observed. It is required." + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "note": { + "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", + "type": "string" + }, + "reason": { + "description": "reason is why the action was taken. It is human-readable. This field cannot be empty for new Events and it can have at most 128 characters.", + "type": "string" + }, + "regarding": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." + }, + "related": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." + }, + "reportingController": { + "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", + "type": "string" + }, + "reportingInstance": { + "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", + "type": "string" + }, + "series": { + "$ref": "#/definitions/io.k8s.api.events.v1.EventSeries", + "description": "series is data about the Event series this event represents or nil if it's a singleton Event." + }, + "type": { + "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable. This field cannot be empty for new Events.", + "type": "string" + } + }, + "required": [ + "eventTime" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + ] + }, + "io.k8s.api.events.v1.EventList": { + "description": "EventList is a list of Event objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "events.k8s.io", + "kind": "EventList", + "version": "v1" + } + ] + }, + "io.k8s.api.events.v1.EventSeries": { + "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.", + "properties": { + "count": { + "description": "count is the number of occurrences in this series up to the last heartbeat time.", + "format": "int32", + "type": "integer" + }, + "lastObservedTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." + } + }, + "required": [ + "count", + "lastObservedTime" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.ExemptPriorityLevelConfiguration": { + "description": "ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.", + "properties": { + "lendablePercent": { + "description": "`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )", + "format": "int32", + "type": "integer" + }, + "nominalConcurrencyShares": { + "description": "`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values:\n\nNominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\n\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.FlowDistinguisherMethod": { + "description": "FlowDistinguisherMethod specifies the method of a flow distinguisher.", + "properties": { + "type": { + "description": "`type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.FlowSchema": { + "description": "FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchemaSpec", + "description": "`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchemaStatus", + "description": "`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1" + } + ] + }, + "io.k8s.api.flowcontrol.v1.FlowSchemaCondition": { + "description": "FlowSchemaCondition describes conditions for a FlowSchema.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." + }, + "message": { + "description": "`message` is a human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", + "type": "string" + }, + "type": { + "description": "`type` is the type of the condition. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.FlowSchemaList": { + "description": "FlowSchemaList is a list of FlowSchema objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "`items` is a list of FlowSchemas.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchemaList", + "version": "v1" + } + ] + }, + "io.k8s.api.flowcontrol.v1.FlowSchemaSpec": { + "description": "FlowSchemaSpec describes how the FlowSchema's specification looks like.", + "properties": { + "distinguisherMethod": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowDistinguisherMethod", + "description": "`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string." + }, + "matchingPrecedence": { + "description": "`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.", + "format": "int32", + "type": "integer" + }, + "priorityLevelConfiguration": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationReference", + "description": "`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required." + }, + "rules": { + "description": "`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PolicyRulesWithSubjects" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "priorityLevelConfiguration" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.FlowSchemaStatus": { + "description": "FlowSchemaStatus represents the current state of a FlowSchema.", + "properties": { + "conditions": { + "description": "`conditions` is a list of the current states of FlowSchema.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchemaCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.GroupSubject": { + "description": "GroupSubject holds detailed information for group-kind subject.", + "properties": { + "name": { + "description": "name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.LimitResponse": { + "description": "LimitResponse defines how to handle requests that can not be executed right now.", + "properties": { + "queuing": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.QueuingConfiguration", + "description": "`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\"Queue\"`." + }, + "type": { + "description": "`type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "queuing": "Queuing" + } + } + ] + }, + "io.k8s.api.flowcontrol.v1.LimitedPriorityLevelConfiguration": { + "description": "LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\n - How are requests for this priority level limited?\n - What should be done with requests that exceed the limit?", + "properties": { + "borrowingLimitPercent": { + "description": "`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\n\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.", + "format": "int32", + "type": "integer" + }, + "lendablePercent": { + "description": "`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )", + "format": "int32", + "type": "integer" + }, + "limitResponse": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.LimitResponse", + "description": "`limitResponse` indicates what to do with requests that can not be executed right now" + }, + "nominalConcurrencyShares": { + "description": "`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values:\n\nNominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\n\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level.\n\nIf not specified, this field defaults to a value of 30.\n\nSetting this field to zero supports the construction of a \"jail\" for this priority level that is used to hold some request(s)", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.NonResourcePolicyRule": { + "description": "NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.", + "properties": { + "nonResourceURLs": { + "description": "`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\n - \"/healthz\" is legal\n - \"/hea*\" is illegal\n - \"/hea\" is legal but matches nothing\n - \"/hea/*\" also matches nothing\n - \"/healthz/*\" matches all per-component health checks.\n\"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "verbs": { + "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "verbs", + "nonResourceURLs" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.PolicyRulesWithSubjects": { + "description": "PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.", + "properties": { + "nonResourceRules": { + "description": "`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.NonResourcePolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceRules": { + "description": "`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.ResourcePolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "subjects": { + "description": "subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.Subject" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "subjects" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration": { + "description": "PriorityLevelConfiguration represents the configuration of a priority level.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationSpec", + "description": "`spec` is the specification of the desired behavior of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationStatus", + "description": "`status` is the current status of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1" + } + ] + }, + "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationCondition": { + "description": "PriorityLevelConfigurationCondition defines the condition of priority level.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." + }, + "message": { + "description": "`message` is a human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", + "type": "string" + }, + "type": { + "description": "`type` is the type of the condition. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationList": { + "description": "PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "`items` is a list of request-priorities.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfigurationList", + "version": "v1" + } + ] + }, + "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationReference": { + "description": "PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.", + "properties": { + "name": { + "description": "`name` is the name of the priority level configuration being referenced Required.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationSpec": { + "description": "PriorityLevelConfigurationSpec specifies the configuration of a priority level.", + "properties": { + "exempt": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.ExemptPriorityLevelConfiguration", + "description": "`exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `\"Limited\"`. This field MAY be non-empty if `type` is `\"Exempt\"`. If empty and `type` is `\"Exempt\"` then the default values for `ExemptPriorityLevelConfiguration` apply." + }, + "limited": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.LimitedPriorityLevelConfiguration", + "description": "`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\"Limited\"`." + }, + "type": { + "description": "`type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "exempt": "Exempt", + "limited": "Limited" + } + } + ] + }, + "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationStatus": { + "description": "PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".", + "properties": { + "conditions": { + "description": "`conditions` is the current state of \"request-priority\".", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.QueuingConfiguration": { + "description": "QueuingConfiguration holds the configuration parameters for queuing", + "properties": { + "handSize": { + "description": "`handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.", + "format": "int32", + "type": "integer" + }, + "queueLengthLimit": { + "description": "`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.", + "format": "int32", + "type": "integer" + }, + "queues": { + "description": "`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.ResourcePolicyRule": { + "description": "ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.", + "properties": { + "apiGroups": { + "description": "`apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "clusterScope": { + "description": "`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.", + "type": "boolean" + }, + "namespaces": { + "description": "`namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \"*\". Note that \"*\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "resources": { + "description": "`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "verbs": { + "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "verbs", + "apiGroups", + "resources" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.ServiceAccountSubject": { + "description": "ServiceAccountSubject holds detailed information for service-account-kind subject.", + "properties": { + "name": { + "description": "`name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.", + "type": "string" + }, + "namespace": { + "description": "`namespace` is the namespace of matching ServiceAccount objects. Required.", + "type": "string" + } + }, + "required": [ + "namespace", + "name" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1.Subject": { + "description": "Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.", + "properties": { + "group": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.GroupSubject", + "description": "`group` matches based on user group name." + }, + "kind": { + "description": "`kind` indicates which one of the other fields is non-empty. Required", + "type": "string" + }, + "serviceAccount": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.ServiceAccountSubject", + "description": "`serviceAccount` matches ServiceAccounts." + }, + "user": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.UserSubject", + "description": "`user` matches based on username." + } + }, + "required": [ + "kind" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "kind", + "fields-to-discriminateBy": { + "group": "Group", + "serviceAccount": "ServiceAccount", + "user": "User" + } + } + ] + }, + "io.k8s.api.flowcontrol.v1.UserSubject": { + "description": "UserSubject holds detailed information for user-kind subject.", + "properties": { + "name": { + "description": "`name` is the username that matches, or \"*\" to match all usernames. Required.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.HTTPIngressPath": { + "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", + "properties": { + "backend": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", + "description": "backend defines the referenced service endpoint to which the traffic will be forwarded to." + }, + "path": { + "description": "path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \"Exact\" or \"Prefix\".", + "type": "string" + }, + "pathType": { + "description": "pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types.", + "type": "string" + } + }, + "required": [ + "pathType", + "backend" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.HTTPIngressRuleValue": { + "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", + "properties": { + "paths": { + "description": "paths is a collection of paths that map requests to backends.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.HTTPIngressPath" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.IPAddress": { + "description": "IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddressSpec", + "description": "spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IPAddress", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IPAddressList": { + "description": "IPAddressList contains a list of IPAddress.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of IPAddresses.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IPAddressList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IPAddressSpec": { + "description": "IPAddressSpec describe the attributes in an IP Address.", + "properties": { + "parentRef": { + "$ref": "#/definitions/io.k8s.api.networking.v1.ParentReference", + "description": "ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object." + } + }, + "required": [ + "parentRef" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.IPBlock": { + "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", + "properties": { + "cidr": { + "description": "cidr is a string representing the IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"", + "type": "string" + }, + "except": { + "description": "except is a slice of CIDRs that should not be included within an IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\" Except values will be rejected if they are outside the cidr range", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "cidr" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.Ingress": { + "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressSpec", + "description": "spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressStatus", + "description": "status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IngressBackend": { + "description": "IngressBackend describes all endpoints for a given service and port.", + "properties": { + "resource": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "description": "resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with \"Service\"." + }, + "service": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressServiceBackend", + "description": "service references a service as a backend. This is a mutually exclusive setting with \"Resource\"." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressClass": { + "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassSpec", + "description": "spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IngressClassList": { + "description": "IngressClassList is a collection of IngressClasses.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of IngressClasses.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressClassList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IngressClassParametersReference": { + "description": "IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.", + "properties": { + "apiGroup": { + "description": "apiGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + "type": "string" + }, + "kind": { + "description": "kind is the type of resource being referenced.", + "type": "string" + }, + "name": { + "description": "name is the name of resource being referenced.", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the resource being referenced. This field is required when scope is set to \"Namespace\" and must be unset when scope is set to \"Cluster\".", + "type": "string" + }, + "scope": { + "description": "scope represents if this refers to a cluster or namespace scoped resource. This may be set to \"Cluster\" (default) or \"Namespace\".", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.IngressClassSpec": { + "description": "IngressClassSpec provides information about the class of an Ingress.", + "properties": { + "controller": { + "description": "controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", + "type": "string" + }, + "parameters": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassParametersReference", + "description": "parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressList": { + "description": "IngressList is a collection of Ingress.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of Ingress.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IngressLoadBalancerIngress": { + "description": "IngressLoadBalancerIngress represents the status of a load-balancer ingress point.", + "properties": { + "hostname": { + "description": "hostname is set for load-balancer ingress points that are DNS based.", + "type": "string" + }, + "ip": { + "description": "ip is set for load-balancer ingress points that are IP based.", + "type": "string" + }, + "ports": { + "description": "ports provides information about the ports exposed by this LoadBalancer.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressPortStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressLoadBalancerStatus": { + "description": "IngressLoadBalancerStatus represents the status of a load-balancer.", + "properties": { + "ingress": { + "description": "ingress is a list containing ingress points for the load-balancer.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressLoadBalancerIngress" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressPortStatus": { + "description": "IngressPortStatus represents the error condition of a service port", + "properties": { + "error": { + "description": "error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\n CamelCase names\n- cloud provider specific error values must have names that comply with the\n format foo.example.com/CamelCase.", + "type": "string" + }, + "port": { + "description": "port is the port number of the ingress port.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "protocol is the protocol of the ingress port. The supported values are: \"TCP\", \"UDP\", \"SCTP\"", + "type": "string" + } + }, + "required": [ + "port", + "protocol" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.IngressRule": { + "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", + "properties": { + "host": { + "description": "host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n the IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\n\nhost can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.", + "type": "string" + }, + "http": { + "$ref": "#/definitions/io.k8s.api.networking.v1.HTTPIngressRuleValue" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressServiceBackend": { + "description": "IngressServiceBackend references a Kubernetes Service as a Backend.", + "properties": { + "name": { + "description": "name is the referenced service. The service must exist in the same namespace as the Ingress object.", + "type": "string" + }, + "port": { + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceBackendPort", + "description": "port of the referenced service. A port name or port number is required for a IngressServiceBackend." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.IngressSpec": { + "description": "IngressSpec describes the Ingress the user wishes to exist.", + "properties": { + "defaultBackend": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", + "description": "defaultBackend is the backend that should handle requests that don't match any rule. If Rules are not specified, DefaultBackend must be specified. If DefaultBackend is not set, the handling of requests that do not match any of the rules will be up to the Ingress controller." + }, + "ingressClassName": { + "description": "ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.", + "type": "string" + }, + "rules": { + "description": "rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "tls": { + "description": "tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressTLS" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressStatus": { + "description": "IngressStatus describe the current state of the Ingress.", + "properties": { + "loadBalancer": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressLoadBalancerStatus", + "description": "loadBalancer contains the current status of the load-balancer." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressTLS": { + "description": "IngressTLS describes the transport layer security associated with an ingress.", + "properties": { + "hosts": { + "description": "hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "secretName": { + "description": "secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the \"Host\" header is used for routing.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicy": { + "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", + "description": "spec represents the specification of the desired behavior for this NetworkPolicy." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8", + "properties": { + "ports": { + "description": "ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "to": { + "description": "to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.", + "properties": { + "from": { + "description": "from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ports": { + "description": "ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicyList": { + "description": "NetworkPolicyList is a list of NetworkPolicy objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "NetworkPolicyList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed", + "properties": { + "ipBlock": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", + "description": "ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector." + }, + "podSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "properties": { + "endPort": { + "description": "endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.", + "format": "int32", + "type": "integer" + }, + "port": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched." + }, + "protocol": { + "description": "protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicySpec": { + "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", + "properties": { + "egress": { + "description": "egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ingress": { + "description": "ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "podSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector." + }, + "policyTypes": { + "description": "policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.ParentReference": { + "description": "ParentReference describes a reference to a parent object.", + "properties": { + "group": { + "description": "Group is the group of the object being referenced.", + "type": "string" + }, + "name": { + "description": "Name is the name of the object being referenced.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the object being referenced.", + "type": "string" + }, + "resource": { + "description": "Resource is the resource of the object being referenced.", + "type": "string" + } + }, + "required": [ + "resource", + "name" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.ServiceBackendPort": { + "description": "ServiceBackendPort is the service port being referenced.", + "properties": { + "name": { + "description": "name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".", + "type": "string" + }, + "number": { + "description": "number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \"Name\".", + "format": "int32", + "type": "integer" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.networking.v1.ServiceCIDR": { + "description": "ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDRSpec", + "description": "spec is the desired state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDRStatus", + "description": "status represents the current state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "ServiceCIDR", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.ServiceCIDRList": { + "description": "ServiceCIDRList contains a list of ServiceCIDR objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of ServiceCIDRs.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "ServiceCIDRList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.ServiceCIDRSpec": { + "description": "ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.", + "properties": { + "cidrs": { + "description": "CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.ServiceCIDRStatus": { + "description": "ServiceCIDRStatus describes the current state of the ServiceCIDR.", + "properties": { + "conditions": { + "description": "conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.IPAddress": { + "description": "IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddressSpec", + "description": "spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IPAddress", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.IPAddressList": { + "description": "IPAddressList contains a list of IPAddress.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of IPAddresses.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IPAddressList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.IPAddressSpec": { + "description": "IPAddressSpec describe the attributes in an IP Address.", + "properties": { + "parentRef": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ParentReference", + "description": "ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object." + } + }, + "required": [ + "parentRef" + ], + "type": "object" + }, + "io.k8s.api.networking.v1beta1.ParentReference": { + "description": "ParentReference describes a reference to a parent object.", + "properties": { + "group": { + "description": "Group is the group of the object being referenced.", + "type": "string" + }, + "name": { + "description": "Name is the name of the object being referenced.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the object being referenced.", + "type": "string" + }, + "resource": { + "description": "Resource is the resource of the object being referenced.", + "type": "string" + } + }, + "required": [ + "resource", + "name" + ], + "type": "object" + }, + "io.k8s.api.networking.v1beta1.ServiceCIDR": { + "description": "ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDRSpec", + "description": "spec is the desired state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDRStatus", + "description": "status represents the current state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "ServiceCIDR", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.ServiceCIDRList": { + "description": "ServiceCIDRList contains a list of ServiceCIDR objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is the list of ServiceCIDRs.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "ServiceCIDRList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.ServiceCIDRSpec": { + "description": "ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.", + "properties": { + "cidrs": { + "description": "CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.ServiceCIDRStatus": { + "description": "ServiceCIDRStatus describes the current state of the ServiceCIDR.", + "properties": { + "conditions": { + "description": "conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.api.node.v1.Overhead": { + "description": "Overhead structure represents the resource overhead associated with running a pod.", + "properties": { + "podFixed": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "podFixed represents the fixed resource overhead associated with running a pod.", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.node.v1.RuntimeClass": { + "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "handler": { + "description": "handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "overhead": { + "$ref": "#/definitions/io.k8s.api.node.v1.Overhead", + "description": "overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see\n https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/" + }, + "scheduling": { + "$ref": "#/definitions/io.k8s.api.node.v1.Scheduling", + "description": "scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." + } + }, + "required": [ + "handler" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + ] + }, + "io.k8s.api.node.v1.RuntimeClassList": { + "description": "RuntimeClassList is a list of RuntimeClass objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "node.k8s.io", + "kind": "RuntimeClassList", + "version": "v1" + } + ] + }, + "io.k8s.api.node.v1.Scheduling": { + "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", + "properties": { + "nodeSelector": { + "additionalProperties": { + "type": "string" + }, + "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "tolerations": { + "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.policy.v1.Eviction": { + "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods//evictions.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "deleteOptions": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", + "description": "DeleteOptions may be provided" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "ObjectMeta describes the pod that is being evicted." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "Eviction", + "version": "v1" + } + ] + }, + "io.k8s.api.policy.v1.PodDisruptionBudget": { + "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetSpec", + "description": "Specification of the desired behavior of the PodDisruptionBudget." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetStatus", + "description": "Most recently observed status of the PodDisruptionBudget." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1" + } + ] + }, + "io.k8s.api.policy.v1.PodDisruptionBudgetList": { + "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of PodDisruptionBudgets", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "PodDisruptionBudgetList", + "version": "v1" + } + ] + }, + "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": { + "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", + "properties": { + "maxUnavailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." + }, + "minAvailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.", + "x-kubernetes-patch-strategy": "replace" + }, + "unhealthyPodEvictionPolicy": { + "description": "UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n\nValid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy.\n\nIfHealthyBudget policy means that running pods (status.phase=\"Running\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction.\n\nAlwaysAllow policy means that all running pods (status.phase=\"Running\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction.\n\nAdditional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.policy.v1.PodDisruptionBudgetStatus": { + "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", + "properties": { + "conditions": { + "description": "Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\n the number of allowed disruptions. Therefore no disruptions are\n allowed and the status of the condition will be False.\n- InsufficientPods: The number of pods are either at or below the number\n required by the PodDisruptionBudget. No disruptions are\n allowed and the status of the condition will be False.\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\n The condition will be True, and the number of allowed\n disruptions are provided by the disruptionsAllowed property.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentHealthy": { + "description": "current number of healthy pods", + "format": "int32", + "type": "integer" + }, + "desiredHealthy": { + "description": "minimum desired number of healthy pods", + "format": "int32", + "type": "integer" + }, + "disruptedPods": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", + "type": "object" + }, + "disruptionsAllowed": { + "description": "Number of pod disruptions that are currently allowed.", + "format": "int32", + "type": "integer" + }, + "expectedPods": { + "description": "total number of pods counted by this disruption budget", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "disruptionsAllowed", + "currentHealthy", + "desiredHealthy", + "expectedPods" + ], + "type": "object" + }, + "io.k8s.api.rbac.v1.AggregationRule": { + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.rbac.v1.ClusterRole": { + "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "properties": { + "aggregationRule": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." + }, + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "description": "Rules holds all the PolicyRules for this ClusterRole", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleBinding": { + "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "roleRef": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", + "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable." + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "roleRef" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleBindingList": { + "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of ClusterRoleBindings", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleList": { + "description": "ClusterRoleList is a collection of ClusterRoles", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of ClusterRoles", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.PolicyRule": { + "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", + "properties": { + "apiGroups": { + "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "nonResourceURLs": { + "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. '*' represents all resources.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "verbs": { + "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.rbac.v1.Role": { + "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "description": "Rules holds all the PolicyRules for this Role", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleBinding": { + "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "roleRef": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", + "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable." + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "roleRef" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleBindingList": { + "description": "RoleBindingList is a collection of RoleBindings", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of RoleBindings", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleList": { + "description": "RoleList is a collection of Roles", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of Roles", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleRef": { + "description": "RoleRef contains information that points to the role being used", + "properties": { + "apiGroup": { + "description": "APIGroup is the group for the resource being referenced", + "type": "string" + }, + "kind": { + "description": "Kind is the type of resource being referenced", + "type": "string" + }, + "name": { + "description": "Name is the name of resource being referenced", + "type": "string" + } + }, + "required": [ + "apiGroup", + "kind", + "name" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.rbac.v1.Subject": { + "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", + "properties": { + "apiGroup": { + "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", + "type": "string" + }, + "kind": { + "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", + "type": "string" + }, + "name": { + "description": "Name of the object being referenced.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.resource.v1.AllocatedDeviceStatus": { + "description": "AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.\n\nThe combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices.", + "properties": { + "conditions": { + "description": "Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.\n\nMust not contain more than 8 entries.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + }, + "data": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "Data contains arbitrary driver-specific data.\n\nThe length of the raw data must be smaller or equal to 10 Ki." + }, + "device": { + "description": "Device references one device instance via its name in the driver's resource pool. It must be a DNS label.", + "type": "string" + }, + "driver": { + "description": "Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters.", + "type": "string" + }, + "networkData": { + "$ref": "#/definitions/io.k8s.api.resource.v1.NetworkDeviceData", + "description": "NetworkData contains network-related information specific to the device." + }, + "pool": { + "description": "This name together with the driver name and the device name field identify which device was allocated (`//`).\n\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.", + "type": "string" + }, + "shareID": { + "description": "ShareID uniquely identifies an individual allocation share of the device.", + "type": "string" + } + }, + "required": [ + "driver", + "pool", + "device" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.AllocationResult": { + "description": "AllocationResult contains attributes of an allocated resource.", + "properties": { + "allocationTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown.\n\nThis is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate." + }, + "devices": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceAllocationResult", + "description": "Devices is the result of allocating devices." + }, + "nodeSelector": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", + "description": "NodeSelector defines where the allocated resources are available. If unset, they are available everywhere." + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.CELDeviceSelector": { + "description": "CELDeviceSelector contains a CEL expression for selecting a device.", + "properties": { + "expression": { + "description": "Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.\n\nThe expression's input is an object named \"device\", which carries the following properties:\n - driver (string): the name of the driver which defines this device.\n - attributes (map[string]object): the device's attributes, grouped by prefix\n (e.g. device.attributes[\"dra.example.com\"] evaluates to an object with all\n of the attributes which were prefixed by \"dra.example.com\".\n - capacity (map[string]object): the device's capacities, grouped by prefix.\n - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device\n (v1.34+ with the DRAConsumableCapacity feature enabled).\n\nExample: Consider a device with driver=\"dra.example.com\", which exposes two attributes named \"model\" and \"ext.example.com/family\" and which exposes one capacity named \"modules\". This input to this expression would have the following fields:\n\n device.driver\n device.attributes[\"dra.example.com\"].model\n device.attributes[\"ext.example.com\"].family\n device.capacity[\"dra.example.com\"].modules\n\nThe device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers.\n\nThe value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity.\n\nIf an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort.\n\nA robust expression should check for the existence of attributes before referencing them.\n\nFor ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:\n\n cel.bind(dra, device.attributes[\"dra.example.com\"], dra.someBool && dra.anotherBool)\n\nThe length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.", + "type": "string" + } + }, + "required": [ + "expression" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.CapacityRequestPolicy": { + "description": "CapacityRequestPolicy defines how requests consume device capacity.\n\nMust not set more than one ValidRequestValues.", + "properties": { + "default": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity." + }, + "validRange": { + "$ref": "#/definitions/io.k8s.api.resource.v1.CapacityRequestPolicyRange", + "description": "ValidRange defines an acceptable quantity value range in consuming requests.\n\nIf this field is set, Default must be defined and it must fall within the defined ValidRange.\n\nIf the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated.\n\nIf the request doesn't contain this capacity entry, Default value is used." + }, + "validValues": { + "description": "ValidValues defines a set of acceptable quantity values in consuming requests.\n\nMust not contain more than 10 entries. Must be sorted in ascending order.\n\nIf this field is set, Default must be defined and it must be included in ValidValues list.\n\nIf the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≤ max(validValues).\n\nIf the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.CapacityRequestPolicyRange": { + "description": "CapacityRequestPolicyRange defines a valid range for consumable capacity values.\n\n - If the requested amount is less than Min, it is rounded up to the Min value.\n - If Step is set and the requested amount is between Min and Max but not aligned with Step,\n it will be rounded up to the next value equal to Min + (n * Step).\n - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set).\n - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy,\n and the device cannot be allocated.", + "properties": { + "max": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Max defines the upper limit for capacity that can be requested.\n\nMax must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum." + }, + "min": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Min specifies the minimum capacity allowed for a consumption request.\n\nMin must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum." + }, + "step": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Step defines the step size between valid capacity amounts within the range.\n\nMax (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value." + } + }, + "required": [ + "min" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.CapacityRequirements": { + "description": "CapacityRequirements defines the capacity requirements for a specific device request.", + "properties": { + "requests": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Requests represent individual device resource requests for distinct resources, all of which must be provided by the device.\n\nThis value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0.\n\nWhen a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid value—because it exceeds what the requestPolicy allows— the device is considered ineligible for allocation.\n\nFor any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity\n (i.e., the whole device is claimed).\n- If a requestPolicy is set, the default consumed capacity is determined according to that policy.\n\nIf the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field.", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.Counter": { + "description": "Counter describes a quantity associated with a device.", + "properties": { + "value": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Value defines how much of a certain device counter is available." + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.CounterSet": { + "description": "CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool.\n\nThe counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.", + "properties": { + "counters": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.api.resource.v1.Counter" + }, + "description": "Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label.\n\nThe maximum number of counters is 32.", + "type": "object" + }, + "name": { + "description": "Name defines the name of the counter set. It must be a DNS label.", + "type": "string" + } + }, + "required": [ + "name", + "counters" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.Device": { + "description": "Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.", + "properties": { + "allNodes": { + "description": "AllNodes indicates that all nodes have access to the device.\n\nMust only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.", + "type": "boolean" + }, + "allowMultipleAllocations": { + "description": "AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests.\n\nIf AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.", + "type": "boolean" + }, + "attributes": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceAttribute" + }, + "description": "Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.\n\nThe maximum number of attributes and capacities combined is 32.", + "type": "object" + }, + "bindingConditions": { + "description": "BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod.\n\nThe maximum number of binding conditions is 4.\n\nThe conditions must be a valid condition type string.\n\nThis is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "bindingFailureConditions": { + "description": "BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to \"True\", a binding failure occurred.\n\nThe maximum number of binding failure conditions is 4.\n\nThe conditions must be a valid condition type string.\n\nThis is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "bindsToNode": { + "description": "BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made.\n\nThis is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.", + "type": "boolean" + }, + "capacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceCapacity" + }, + "description": "Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.\n\nThe maximum number of attributes and capacities combined is 32.", + "type": "object" + }, + "consumesCounters": { + "description": "ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.\n\nThere can only be a single entry per counterSet.\n\nThe maximum number of device counter consumptions per device is 2.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceCounterConsumption" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { + "description": "Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.", + "type": "string" + }, + "nodeName": { + "description": "NodeName identifies the node where the device is available.\n\nMust only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.", + "type": "string" + }, + "nodeSelector": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", + "description": "NodeSelector defines the nodes where the device is available.\n\nMust use exactly one term.\n\nMust only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set." + }, + "taints": { + "description": "If specified, these are the driver-defined taints.\n\nThe maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128.\n\nThis is an alpha field and requires enabling the DRADeviceTaints feature gate.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceTaint" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceAllocationConfiguration": { + "description": "DeviceAllocationConfiguration gets embedded in an AllocationResult.", + "properties": { + "opaque": { + "$ref": "#/definitions/io.k8s.api.resource.v1.OpaqueDeviceConfiguration", + "description": "Opaque provides driver-specific configuration parameters." + }, + "requests": { + "description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "source": { + "description": "Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.", + "type": "string" + } + }, + "required": [ + "source" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceAllocationResult": { + "description": "DeviceAllocationResult is the result of allocating devices.", + "properties": { + "config": { + "description": "This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag.\n\nThis includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceAllocationConfiguration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "results": { + "description": "Results lists all allocated devices.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceRequestAllocationResult" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceAttribute": { + "description": "DeviceAttribute must have exactly one field set.", + "properties": { + "bool": { + "description": "BoolValue is a true/false value.", + "type": "boolean" + }, + "int": { + "description": "IntValue is a number.", + "format": "int64", + "type": "integer" + }, + "string": { + "description": "StringValue is a string. Must not be longer than 64 characters.", + "type": "string" + }, + "version": { + "description": "VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceCapacity": { + "description": "DeviceCapacity describes a quantity associated with a device.", + "properties": { + "requestPolicy": { + "$ref": "#/definitions/io.k8s.api.resource.v1.CapacityRequestPolicy", + "description": "RequestPolicy defines how this DeviceCapacity must be consumed when the device is allowed to be shared by multiple allocations.\n\nThe Device must have allowMultipleAllocations set to true in order to set a requestPolicy.\n\nIf unset, capacity requests are unconstrained: requests can consume any amount of capacity, as long as the total consumed across all allocations does not exceed the device's defined capacity. If request is also unset, default is the full capacity value." + }, + "value": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Value defines how much of a certain capacity that device has.\n\nThis field reflects the fixed total capacity and does not change. The consumed amount is tracked separately by scheduler and does not affect this value." + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceClaim": { + "description": "DeviceClaim defines how to request devices with a ResourceClaim.", + "properties": { + "config": { + "description": "This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceClaimConfiguration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "constraints": { + "description": "These constraints must be satisfied by the set of devices that get allocated for the claim.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceConstraint" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "requests": { + "description": "Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceClaimConfiguration": { + "description": "DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.", + "properties": { + "opaque": { + "$ref": "#/definitions/io.k8s.api.resource.v1.OpaqueDeviceConfiguration", + "description": "Opaque provides driver-specific configuration parameters." + }, + "requests": { + "description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceClass": { + "description": "DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceClassSpec", + "description": "Spec defines what can be allocated and how to configure it.\n\nThis is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.\n\nChanging the spec automatically increments the metadata.generation number." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "DeviceClass", + "version": "v1" + } + ] + }, + "io.k8s.api.resource.v1.DeviceClassConfiguration": { + "description": "DeviceClassConfiguration is used in DeviceClass.", + "properties": { + "opaque": { + "$ref": "#/definitions/io.k8s.api.resource.v1.OpaqueDeviceConfiguration", + "description": "Opaque provides driver-specific configuration parameters." + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceClassList": { + "description": "DeviceClassList is a collection of classes.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of resource classes.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceClass" + }, + "type": "array" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "DeviceClassList", + "version": "v1" + } + ] + }, + "io.k8s.api.resource.v1.DeviceClassSpec": { + "description": "DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.", + "properties": { + "config": { + "description": "Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.\n\nThey are passed to the driver, but are not considered while allocating the claim.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceClassConfiguration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "extendedResourceName": { + "description": "ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked.\n\nThis is an alpha field.", + "type": "string" + }, + "selectors": { + "description": "Each selector must be satisfied by a device which is claimed via this class.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceSelector" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceConstraint": { + "description": "DeviceConstraint must have exactly one field set besides Requests.", + "properties": { + "distinctAttribute": { + "description": "DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices.\n\nThis acts as the inverse of MatchAttribute.\n\nThis constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation.\n\nThis is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs.", + "type": "string" + }, + "matchAttribute": { + "description": "MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.\n\nFor example, if you specified \"dra.example.com/numa\" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.\n\nMust include the domain qualifier.", + "type": "string" + }, + "requests": { + "description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the constraint applies to all subrequests.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceCounterConsumption": { + "description": "DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.", + "properties": { + "counterSet": { + "description": "CounterSet is the name of the set from which the counters defined will be consumed.", + "type": "string" + }, + "counters": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.api.resource.v1.Counter" + }, + "description": "Counters defines the counters that will be consumed by the device.\n\nThe maximum number of counters is 32.", + "type": "object" + } + }, + "required": [ + "counterSet", + "counters" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceRequest": { + "description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests.", + "properties": { + "exactly": { + "$ref": "#/definitions/io.k8s.api.resource.v1.ExactDeviceRequest", + "description": "Exactly specifies the details for a single request that must be met exactly for the request to be satisfied.\n\nOne of Exactly or FirstAvailable must be set." + }, + "firstAvailable": { + "description": "FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceSubRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { + "description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nReferences using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler.\n\nMust be a DNS label.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceRequestAllocationResult": { + "description": "DeviceRequestAllocationResult contains the allocation result for one request.", + "properties": { + "adminAccess": { + "description": "AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.\n\nThis is an beta field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.", + "type": "boolean" + }, + "bindingConditions": { + "description": "BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation.\n\nThis is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "bindingFailureConditions": { + "description": "BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation.\n\nThis is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "consumedCapacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount).\n\nThe total consumed capacity for each device must not exceed the DeviceCapacity's Value.\n\nThis field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero.", + "type": "object" + }, + "device": { + "description": "Device references one device instance via its name in the driver's resource pool. It must be a DNS label.", + "type": "string" + }, + "driver": { + "description": "Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters.", + "type": "string" + }, + "pool": { + "description": "This name together with the driver name and the device name field identify which device was allocated (`//`).\n\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.", + "type": "string" + }, + "request": { + "description": "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format
/.\n\nMultiple devices may have been allocated per request.", + "type": "string" + }, + "shareID": { + "description": "ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device.", + "type": "string" + }, + "tolerations": { + "description": "A copy of all tolerations specified in the request at the time when the device got allocated.\n\nThe maximum number of tolerations is 16.\n\nThis is an alpha field and requires enabling the DRADeviceTaints feature gate.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceToleration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "request", + "driver", + "pool", + "device" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceSelector": { + "description": "DeviceSelector must have exactly one field set.", + "properties": { + "cel": { + "$ref": "#/definitions/io.k8s.api.resource.v1.CELDeviceSelector", + "description": "CEL contains a CEL expression for selecting a device." + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceSubRequest": { + "description": "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device.", + "properties": { + "allocationMode": { + "description": "AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This subrequest is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.", + "type": "string" + }, + "capacity": { + "$ref": "#/definitions/io.k8s.api.resource.v1.CapacityRequirements", + "description": "Capacity define resource requirements against each capacity.\n\nIf this field is unset and the device supports multiple allocations, the default value will be applied to each capacity according to requestPolicy. For the capacity that has no requestPolicy, default is the full capacity value.\n\nApplies to each device allocation. If Count > 1, the request fails if there aren't enough devices that meet the requirements. If AllocationMode is set to All, the request fails if there are devices that otherwise match the request, and have this capacity, with a value >= the requested amount, but which cannot be allocated to this request." + }, + "count": { + "description": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.", + "format": "int64", + "type": "integer" + }, + "deviceClassName": { + "description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.", + "type": "string" + }, + "name": { + "description": "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format
/.\n\nMust be a DNS label.", + "type": "string" + }, + "selectors": { + "description": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceSelector" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "tolerations": { + "description": "If specified, the request's tolerations.\n\nTolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.\n\nIn addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.\n\nThe maximum number of tolerations is 16.\n\nThis is an alpha field and requires enabling the DRADeviceTaints feature gate.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1.DeviceToleration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "name", + "deviceClassName" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceTaint": { + "description": "The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.", + "properties": { + "effect": { + "description": "The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them.\n\nValid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.", + "type": "string" + }, + "key": { + "description": "The taint key to be applied to a device. Must be a label name.", + "type": "string" + }, + "timeAdded": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set." + }, + "value": { + "description": "The taint value corresponding to the taint key. Must be a label value.", + "type": "string" + } + }, + "required": [ + "key", + "effect" + ], + "type": "object" + }, + "io.k8s.api.resource.v1.DeviceToleration": { + "description": "The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple using the matching operator .", + "properties": { + "effect": { + "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.", + "type": "string" + }, + "key": { + "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.", + "type": "string" + }, + "operator": { + "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.", + "type": "string" + }, + "tolerationSeconds": { + "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as